Skip to main content
Glama

STRING MCP Server

Model Context Protocol (MCP) server providing access to the STRING protein-protein interaction database.

Features

9 tools for protein interaction analysis:

  • Mapping protein identifiers to STRING IDs

  • Retrieving protein interaction networks

  • Finding interaction partners

  • Functional enrichment analysis (GO, KEGG, pathways)

  • PPI enrichment testing

  • Cross-species homology mapping

  • Protein name resolution

Full endpoint documentation available in ENDPOINTS.md.

Related MCP server: UniProt MCP Server

Installation

From GitHub

npm install git+https://github.com/munch-group/string-mcp.git
cd node_modules/string-mcp
npm run build

From source

git clone https://github.com/munch-group/string-mcp.git
cd string-mcp
npm install
npm run build

Usage with Claude Desktop

# Using built version
claude mcp add string node /path/to/string-mcp/build/index.js

# Or from npm global install
claude mcp add string npx -y string-mcp

Configuration

Add to your Claude Desktop config:

{
  "mcpServers": {
    "string": {
      "command": "node",
      "args": ["/path/to/string-mcp/build/index.js"]
    }
  }
}

Common Species Taxon IDs

  • Human: 9606

  • Mouse: 10090

  • Rat: 10116

  • Fruit fly: 7227

  • C. elegans: 6239

  • Yeast: 4932

Building

npm run build

Dependencies

  • @mcp/rest-utils - Shared REST utilities

  • @modelcontextprotocol/sdk - MCP SDK

  • zod - Schema validation

License

ISC

Available Tools

9 tools
get_enrichmentC

Perform functional enrichment analysis for a set of proteins. Tests for over-representation in Gene Ontology terms, KEGG pathways, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoNCBI taxon ID
backgroundNoBackground proteins for enrichment (optional, newline or space-separated)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool performs enrichment analysis but doesn't describe what the analysis entails (e.g., statistical methods, output format, potential rate limits, or authentication needs). For a tool with 3 parameters and no annotations, this is a significant gap in explaining how the tool behaves beyond its basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, consisting of two concise sentences that directly state the tool's purpose and examples. Every sentence earns its place by conveying essential information without redundancy or unnecessary detail, making it efficient for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (functional enrichment analysis with 3 parameters), no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits, output format, and usage context, which are crucial for an AI agent to effectively invoke this tool. The description does not compensate for the absence of structured data, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the parameters (identifiers, species, background). The description adds no additional meaning beyond what the schema provides—it doesn't explain parameter interactions, typical values, or usage examples. Baseline 3 is appropriate as the schema handles the heavy lifting, but the description offers no compensatory insights.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Perform functional enrichment analysis for a set of proteins' with specific examples of what it tests (Gene Ontology terms, KEGG pathways). It uses a specific verb ('perform') and identifies the resource ('proteins'), but doesn't explicitly differentiate from sibling tools like 'get_ppi_enrichment' or 'get_network' which might involve similar biological data analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions what the tool does but doesn't indicate scenarios for its use, prerequisites, or comparisons with sibling tools like 'get_ppi_enrichment' or 'get_network' that might handle related protein analyses. This leaves the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_homologyC

Get homology information for proteins across species using STRING.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoSource species NCBI taxon ID
target_speciesNoTarget species NCBI taxon ID (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states what the tool does but doesn't disclose behavioral traits like whether this is a read-only operation, what format the homology information returns, potential rate limits, error conditions, or authentication requirements. The description is minimal and lacks operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded with the core purpose. Every word earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a tool that likely returns complex biological data, the description is incomplete. It doesn't explain what 'homology information' entails (e.g., sequence alignment scores, ortholog mappings), return format, or error handling. For a bioinformatics tool with 3 parameters, this leaves significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (like explaining what 'homology information' includes or how identifiers map to results). Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('homology information for proteins across species') with the specific method ('using STRING'). It distinguishes from some siblings like 'get_enrichment' or 'get_network' by focusing on homology, but doesn't explicitly differentiate from 'get_homology_best' which appears to be a related tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_homology_best' or other sibling tools. It mentions the STRING source but doesn't explain context, prerequisites, or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_homology_bestC

Get the best homology match for proteins in a target species.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoSource species NCBI taxon ID
target_speciesYesTarget species NCBI taxon ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool's function but doesn't reveal critical traits: whether it's read-only or mutative, what the output format looks like (e.g., structured data or raw text), error handling, rate limits, or authentication needs. For a tool with no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. Every word earns its place, making it easy to parse quickly. No fluff or redundancy is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a homology matching tool with 3 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'best' means algorithmically, the return format, error cases, or how it differs from siblings. For a tool with no structured output or behavioral hints, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the input schema, which has 100% coverage. It implies parameters like 'identifiers' and 'target_species' but doesn't explain their semantics further (e.g., what constitutes a 'best' match or how species IDs are used). With high schema coverage, the baseline is 3, and the description doesn't compensate with additional insights.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the best homology match for proteins in a target species.' It specifies the verb ('Get'), resource ('best homology match'), and scope ('for proteins in a target species'). However, it doesn't explicitly differentiate from sibling tools like 'get_homology' (which might return all matches rather than just the best), leaving room for improvement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_homology' or 'resolve_proteins', nor does it specify prerequisites, exclusions, or contextual triggers. This lack of usage context makes it harder for an AI agent to select the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_interaction_partnersA

Get all STRING interaction partners for your proteins. Returns a list of interacting proteins with confidence scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoNCBI taxon ID
limitNoMaximum number of interaction partners to return per query protein
required_scoreNoMinimum interaction confidence score (0-1000)
network_typeNoType of networkfunctional

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format (list with confidence scores) which is helpful, but doesn't address important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, error conditions, or how results are ordered/paginated. For a tool with 5 parameters and no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with zero waste. The first sentence states the core purpose, the second describes the return format. Every word earns its place, and the information is front-loaded with the most important details first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It covers the basic purpose and return format, but lacks behavioral details that would be crucial for an AI agent to use this tool effectively. The absence of output schema means the description should ideally provide more detail about the return structure, which it only does at a high level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions 'confidence scores' which relates to the required_score parameter, but doesn't provide additional context about parameter interactions or usage patterns. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get all STRING interaction partners'), the target resource ('for your proteins'), and the return format ('Returns a list of interacting proteins with confidence scores'). It distinguishes itself from siblings like get_network or get_ppi_enrichment by focusing specifically on retrieving interaction partners rather than broader network analysis or enrichment calculations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need interaction partners for proteins, but provides no explicit guidance on when to use this tool versus alternatives like get_network (which might provide broader network context) or get_ppi_enrichment (which focuses on enrichment analysis). No exclusion criteria or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_networkC

Retrieve protein-protein interaction network for given proteins. Returns network edges with confidence scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoNCBI taxon ID
required_scoreNoMinimum interaction confidence score (0-1000)
network_typeNoType of network (functional includes all evidence, physical only direct interactions)functional
add_nodesNoNumber of additional nodes to add to the network

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format but doesn't cover important aspects like whether this is a read-only operation (implied by 'retrieve'), potential rate limits, authentication requirements, error conditions, or how large networks are handled. The description is minimal and lacks behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - just two sentences that directly state the tool's purpose and return format. Every word earns its place with zero redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what format the network edges are returned in, how confidence scores should be interpreted, what happens with the 'add_nodes' parameter, or any limitations of the retrieval. The description leaves too many contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and resource ('protein-protein interaction network for given proteins'), and specifies the return format ('network edges with confidence scores'). It distinguishes from some siblings like 'get_string_ids' or 'resolve_proteins' by focusing on network retrieval, but doesn't explicitly differentiate from 'get_interaction_partners' which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_interaction_partners' or 'get_ppi_enrichment'. It mentions what the tool does but offers no context about appropriate use cases, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ppi_enrichmentB

Test if your protein set has more interactions than expected by chance. Returns enrichment p-value.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoNCBI taxon ID
required_scoreNoMinimum interaction confidence score (0-1000)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool performs a statistical test and returns a p-value, which implies a read-only, non-destructive operation. However, it lacks critical details: it doesn't specify computational requirements (e.g., timeouts for large protein sets), error conditions (e.g., invalid identifiers), or output format beyond 'p-value' (e.g., numeric range, significance thresholds). For a tool with no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and front-loaded: the first sentence directly states the tool's purpose, and the second sentence adds crucial output information. There's no wasted language, repetition, or unnecessary elaboration. Both sentences earn their place by providing essential context that isn't redundant with the schema or annotations, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (statistical testing with 3 parameters) and lack of annotations or output schema, the description is minimally adequate. It covers the core purpose and output but omits important context: it doesn't explain what 'enrichment' means in this domain (e.g., biological context), doesn't detail error handling or performance limits, and doesn't guide interpretation of the p-value result. For a tool with no structured output schema, more elaboration on return values would be beneficial, but it meets a basic threshold.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all three parameters (identifiers, species, required_score) with clear descriptions. The description adds no parameter-specific information beyond what's in the schema—it doesn't explain how identifiers are processed (e.g., validation rules) or contextualize the statistical implications of parameters like 'required_score'. Given the high schema coverage, a baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Test if your protein set has more interactions than expected by chance' specifies the action (test) and resource (protein set interactions). It distinguishes from siblings like 'get_interaction_partners' (which likely retrieves specific partners) by focusing on statistical enrichment testing rather than raw interaction data. However, it doesn't explicitly contrast with 'get_enrichment' (a sibling tool), leaving some ambiguity about differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions the output ('Returns enrichment p-value') but doesn't specify scenarios where this statistical test is appropriate compared to siblings like 'get_enrichment' (which may handle different enrichment types) or 'get_network' (which might visualize interactions). There's no mention of prerequisites, exclusions, or typical use cases, leaving the agent to infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_string_idsA

Map protein names, synonyms, and UniProt identifiers to STRING identifiers. Species parameter uses NCBI taxon IDs (e.g., 9606 for human, 10090 for mouse).

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or IDs, newline or space-separated (e.g., 'TP53 BRCA1' or 'P04637')
speciesNoNCBI taxon ID (e.g., 9606 for human, 10090 for mouse)
limitNoMaximum number of STRING identifiers to return per query protein
echo_queryNoInclude the submitted identifier in the output

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the mapping function and species parameter format but fails to describe key behaviors like error handling, rate limits, authentication needs, or what happens with ambiguous matches, leaving significant gaps for a tool with 4 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence and uses a second sentence to clarify the species parameter, with no wasted words. Every sentence adds necessary context efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is adequate for basic use but incomplete. It covers the mapping purpose and species format but lacks details on output format, error cases, or behavioral constraints, which are crucial for effective agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by reiterating the species parameter format (e.g., 9606 for human) and implying identifier types, but doesn't provide additional syntax or format details beyond what the schema offers, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Map') and resources ('protein names, synonyms, and UniProt identifiers to STRING identifiers'), distinguishing it from siblings like 'get_enrichment' or 'get_network' by focusing on identifier mapping rather than enrichment or network analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying input types (protein names, synonyms, UniProt IDs) and the species parameter, but lacks explicit guidance on when to use this tool versus alternatives like 'resolve_proteins' or other siblings, leaving the agent to infer context from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionB

Get the current version of the STRING database.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), implying it's likely safe and non-destructive, but doesn't specify details like authentication needs, rate limits, error handling, or what the version format looks like (e.g., semantic versioning). This leaves gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero waste. It's front-loaded with the core action and resource, making it highly efficient and easy to parse for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate as a basic read operation. However, it lacks details on the return value format (e.g., what 'version' entails) and behavioral context like error cases, which would enhance completeness for a tool that might be used in version-checking workflows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it correctly avoids mentioning any. A baseline of 4 is appropriate as it doesn't mislead or omit necessary parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('current version of the STRING database'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_string_ids' or 'resolve_proteins', which might also retrieve database-related information but for different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for version checking, or how it relates to sibling tools such as 'get_enrichment' or 'get_network', leaving the agent to infer usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_proteinsC

Resolve protein names to their preferred names in STRING database.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesProtein names or STRING IDs, newline or space-separated
speciesNoNCBI taxon ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'resolve' implies a lookup/mapping operation, it doesn't describe what 'preferred names' means, whether this is a read-only operation, what happens with invalid inputs, or any rate limits/authentication requirements. The description is too minimal for a tool with 2 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that states the core purpose without any wasted words. It's front-loaded with the essential information and doesn't include unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'resolve' means operationally, what format the results take, or how this differs from similar tools like 'get_string_ids'. The agent would need to guess about the tool's behavior and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions 'protein names' which aligns with the 'identifiers' parameter but provides no additional context about format, limitations, or the 'species' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('resolve') and resource ('protein names'), and specifies the target database ('STRING database'). However, it doesn't explicitly differentiate this tool from its siblings like 'get_string_ids', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_string_ids' or other sibling tools. There's no mention of prerequisites, typical use cases, or exclusions that would help an agent choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updates
    • First observedget_enrichment
    • First observedget_homology
    • First observedget_homology_best
    • First observedget_interaction_partners
    • First observedget_network
    • First observedget_ppi_enrichment
    • First observedget_string_ids
    • First observedget_version
    • First observedresolve_proteins

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes, such as get_enrichment for functional analysis and get_network for interaction networks. However, get_homology and get_homology_best could be confused as they both handle homology, with the latter being a more specific version, creating minor ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern starting with 'get_' or 'resolve_', such as get_enrichment and resolve_proteins. This uniformity makes the set predictable and easy to navigate.

Tool Count5/5

With 9 tools, the server is well-scoped for protein analysis tasks, covering key operations like enrichment, homology, interactions, and ID mapping. Each tool serves a clear purpose without being overwhelming.

Completeness4/5

The tool set covers essential protein analysis workflows, including enrichment, homology, interactions, and ID resolution. A minor gap exists in lacking update or delete operations, but this is reasonable for a read-focused database query server.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A comprehensive Model Context Protocol (MCP) server for accessing the STRING protein interaction database. This server provides powerful tools for protein network analysis, functional enrichment, and comparative genomics through the STRING API.
    6
    4
    -
  • A
    license
    B
    quality
    D
    maintenance
    Provides seamless access to UniProtKB protein database, enabling queries for protein entries, sequences, Gene Ontology annotations, full-text search, and ID mapping across 200+ database types.
    5
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides tools for interacting with the STRING database to analyze protein-protein interaction networks and functional enrichment. It enables users to map protein identifiers, retrieve interaction data, and generate biological network visualizations through natural language interfaces.
    11
    3
    BSD 3-Clause
  • F
    license
    B
    quality
    D
    maintenance
    Provides programmatic access to AlphaFold protein structure predictions and UniProt data, enabling users to retrieve protein structures, summaries, and annotations through natural language.
    3
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/munch-group/string-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server