Skip to main content
Glama

STRING Database MCP Server

Server Details

Query STRING interactions, enrichment, annotations, homology, and PPI networks.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
meringlab/string-mcp
GitHub Stars
5
Server Listing
string-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 17 of 17 tools scored. Lowest: 2.9/5.

Server CoherenceB
Disambiguation2/5

Several tool pairs have overlapping purposes: string_network_link and string_visual_network both return network URLs with nearly identical behavior, and string_all_interaction_partners vs string_interactions_query_set both query interactions, differing subtly in scope. The enrichment/annotation tools also share boundaries, making it difficult for agents to disambiguate without reading detailed descriptions.

Naming Consistency3/5

All tools share the 'string_' prefix, but the pattern is inconsistent: some are verb-first (create_file, resolve_proteins), some are noun-first (interactions_query_set, network_link), and some are bare nouns (enrichment, homology). This mixed convention reduces predictability.

Tool Count4/5

At 17 tools, the server is slightly above the ideal range, but it covers a broad domain: interactions, networks, enrichment, annotation, homology, species resolution, and sequence search. The count is justified by the complexity of the STRING database.

Completeness4/5

The tool set covers core STRING workflows: querying interactions, constructing networks, computing enrichment, retrieving annotations, identifying homologs, mapping IDs, and exporting data. Minor gaps exist (e.g., direct edge-list tables and intricate interaction score details), but the overall surface is robust.

Available Tools

17 tools
string_all_interaction_partnersSTRING: Get all interaction partners for proteinsAInspect

Retrieves all interaction partners for one or more proteins from STRING.

This tool returns all known interactions between your query protein(s) and any other proteins in the STRING database.

  • Use this when asking “What does TP53 interact with?”

  • It differs from the network tool, which only shows interactions within the input set or a limited extension of it.

  • If the user refers to "physical interactions", "complexes", or "binding", set the network type to "physical".

You can filter for strong interactions using required_score.

  • Evidence scores:
    nscore (neighborhood), fscore (fusion), pscore (phylogenetic profile),
    ascore (coexpression), escore (experimental), dscore (database), tscore (text mining)

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
identifiersYesRequired. One or more protein identifiers, separated by carriage return (%0d). Example: TP53%0dSMO
network_typeNo
required_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the burden of disclosing behavior. It clearly states that the tool returns all known interactions with any other protein in the database, not just within the query set, which is a key behavioral trait. It also explains that network_type can be set to physical for binding/complex questions and lists evidence score types. However, it does not mention output format, potential large result sets, or any rate limits. Given the output schema exists, the lack of output details is acceptable, but the description could be more transparent about result size or pagination.

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 well-organized and front-loaded with the core purpose. It uses clear, purposeful bullets for evidence scores and keeps sentences short and actionable. Every sentence contributes to understanding the tool, with no redundant fluff. The length is appropriate for the complexity and the lack of annotations.

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

Completeness4/5

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

The description covers the tool's purpose, usage, differentiation from a key sibling, parameter guidance, and evidence scores. Since an output schema exists, the description does not need to explain return values. Minor gaps include no discussion of species handling or handling of very large result sets, but the description is largely complete for a query tool of this type.

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?

Schema description coverage is only 25%, so the description must compensate. It adds meaningful semantics for network_type ('Set physical only for binding, complex, or co-complex questions') and required_score ('You can filter for strong interactions using required_score'), as well as listing evidence score types (nscore, fscore, etc.). It does not explicitly explain species, but the schema does include a description for species. Compared to a baseline of 1 for low coverage, the description adds substantial value for two of the four parameters.

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 starts with a specific verb and resource: 'Retrieves all interaction partners for one or more proteins from STRING.' It clearly states the scope ('all known interactions between your query protein(s) and any other proteins') and explicitly distinguishes itself from the network tool, which only shows interactions within the input set. This fully clarifies what the tool does and how it differs from a sibling.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use this when asking "What does TP53 interact with?"' and contrasts it with the network tool, noting the network tool only shows interactions within the input set or a limited extension. It also gives conditional advice: 'If the user refers to "physical interactions", "complexes", or "binding", set the network type to "physical".' This tells the agent when to use this tool and how to adjust behavior for specific user intents.

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

string_create_fileSTRING: Create a downloadable STRING result fileAInspect

Creates a downloadable file for STRING-derived results.

Use this tool when the user explicitly asks to download, save, export, or receive a file containing STRING data, tables, protein lists, enrichment results, networks, etc.

When a response would otherwise include a publication-style or supplementary result table, or another table clearly intended for reuse outside chat, mention that a downloadable TSV/CSV file can be generated on request. Ask whether they want the file, unless they already requested it. Do not create the file until the user asks for it.

Do not store unrelated data or full conversation transcripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesRequired STRING-derived file content. For .tsv/.csv: one rectangular table, one header row, matching delimiter, no Markdown/prose/repeated headers/multiple tables. Use one row per entity, edge, cluster member, annotation, or enrichment term. Use bare numeric scores/FDR/p-values; put interpretation and caveats in chat or .md/.txt.
filenameYesRequired. Suggested output filename with a safe extension such as .tsv, .csv, .json, .md, or .txt. Match content to the extension; prefer .tsv for reusable tabular STRING data. Use a concise name that reflects the STRING analysis result, for example string-enrichment.tsv.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/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 does disclose key behaviors: do not create the file until asked, and do not store unrelated data. However, it doesn't mention potential side effects (e.g., file storage duration, access controls, overwrite behavior) or what the tool returns. The output schema may cover return values, but the description alone leaves some 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 concise and well-structured: a clear opening sentence, followed by usage conditions, proactive guidance, and prohibitions. Every sentence adds value, and the structure front-loads the primary purpose before moving to procedural details.

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

Completeness4/5

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

Given the tool's simplicity and the presence of an output schema, the description is quite complete. It covers when to use, what to include, and what to avoid. It could mention error handling or the post-creation outcome (e.g., URL or file path), but the output schema likely covers returns. The guidance is sufficient for an agent to decide when and how to invoke this tool correctly.

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 parameters (filename and content) are fully documented in the schema. The description reinforces that content must be STRING-derived and mentions file types (.tsv, .csv, etc.), but adds little beyond the schema's detailed parameter descriptions. Baseline 3 applies since 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 uses a specific verb ('Creates a downloadable file') and clearly specifies the resource (STRING-derived results). It distinguishes itself from sibling tools by focusing on file creation/export rather than analysis, and even lists the types of data that can be exported (tables, protein lists, enrichment results, networks).

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

Usage Guidelines4/5

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

Explicitly states when to use this tool: 'when the user explicitly asks to download, save, export, or receive a file containing STRING data'. It also provides guidance on proactively mentioning downloadable files for publication-style tables and instructs not to create the file until the user asks. It doesn't explicitly name alternative sibling tools for when not to use it, but the context is clear.

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

string_enrichmentSTRING: Functional enrichment analysisAInspect

This tool retrieves functional enrichment for a set of proteins using STRING.

  • If queried with a single protein, the tool expands the query to include the protein’s 10 most likely interactors; enrichment is performed on this set, not the original single protein.

  • For two or more proteins, enrichment is performed on the exact input set.

  • When calling related tools, use the same input parameters unless otherwise specified.

  • Focus summaries on the top categories and most relevant terms for the results. Always report FDR for each claim.

  • Report FDR as a human-readable value (e.g. 2.3e-5 or 0.023).

  • IMPORTANT: Remember to suggest showing an enrichment graph for a specific category of user interest (e.g., GO, KEGG)

  • Very large responses are capped while preserving category diversity.

  • Use expand_category to return only one category with expanded term coverage and per-term gene details.

  • If a row has preferredNames_omitted: true, do not infer which proteins are in that term from the returned rows. Use string_functional_annotation with the same proteins/species and detail_for_term set to the exact term ID.

Output fields (per enriched term):

  • category: Term category (e.g., GO Process, KEGG pathway)

  • term: Enriched term (GO ID, domain, or pathway)

  • number_of_genes: Number of input genes with this term

  • number_of_genes_in_background: Number of background genes with this term

  • ncbiTaxonId: NCBI taxon ID

  • preferredNames: Canonical protein names, only when the full per-term list is short enough to show

  • proteinCount: Number of proteins matching this term

  • preferredNames_omitted: True when the gene list was omitted instead of showing a misleading partial list

  • p_value: Raw p-value

  • fdr: False Discovery Rate (B-H corrected p-value)

  • description: Description of the enriched term

Response metadata:

  • input_gene_name_mapping: Only included when displayed gene lists contain submitted identifiers that differ from STRING preferred names.

  • category_summary: Total and returned term counts per category; use expand_category for categories where truncated is true or where the user wants deeper category-specific detail.

  • truncated_categories / omitted_categories: Categories with terms not shown in the current response.

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
proteinsYesRequired. One or more protein identifiers, separated by %0d. Example: SMO%0dTP53
expand_categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries full behavioral burden. It extensively discloses key behaviors: single-protein expansion to interactors, capping of large responses, omitted gene lists with preferredNames_omitted, category truncation, and FDR reporting requirements. This goes far beyond typical descriptions and gives the agent critical expectations for invoking and interpreting results.

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

Conciseness4/5

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

The description is long but well-organized with bullet points and separate sections for behavior, output fields, and metadata. It front-loads the core purpose and immediately follows with execution nuances. While each sentence adds value, the length is substantial; however, given the tool's complexity, the structure earns a high score for clarity and organization.

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

Completeness5/5

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

For a complex enrichment tool with output schema and multiple edge cases, the description is exceptionally complete. It covers parameter behavior, output field semantics, metadata handling, and cross-tool hints. An agent has enough information to invoke correctly and interpret the response accurately, even without annotations.

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 input schema already includes descriptions for all three parameters (proteins, species, expand_category), though the context reports only 33% coverage, suggesting the schema descriptions may be minimal. The tool description adds meaningful semantics for proteins (single vs. multiple sets) and expand_category (expanded coverage, category selection), but does not add extra meaning for the species parameter beyond its schema description. It partially compensates for low schema coverage, but not fully.

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 function: 'retrieves functional enrichment for a set of proteins using STRING.' This is a specific verb+resource pairing that distinguishes it from siblings like string_functional_annotation, which provides annotations rather than enrichment. The detailed behavior notes further clarify its unique role among the sibling tools.

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 provides clear context on how the tool behaves (single vs. multiple proteins, expand_category usage) but does not explicitly state when to prefer this tool over alternatives. It mentions 'When calling related tools, use the same input parameters' but lacks direct comparison or exclusionary guidance like 'use X instead.' Thus, usage intent is implied rather than explicitly differentiated.

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

string_enrichment_image_urlSTRING: Get enrichment result figure (image URL)CInspect

Retrieves the STRING enrichment figure image URL for a set of proteins.

ParametersJSON Schema
NameRequiredDescriptionDefault
x_axisNo
speciesNo
categoryNo
identifiersYesRequired. Protein identifiers, separated by %0d. Example: SMO%0dTP53
color_paletteNo
group_by_similarityNo
number_of_terms_shownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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. It only states that the tool retrieves a URL, implying a read-only operation, but discloses no additional behavior such as whether the URL is temporary, rate limits, or failure modes. It adds no context beyond the basic action.

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, focused sentence with no filler. It front-loads the key action and object, making it easy to scan.

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 simple URL retrieval tool, the description is adequate for basic purpose, but given 7 parameters and an output schema, it lacks guidance on parameter usage and selection among sibling tools. The output schema covers return values, but the description doesn't explain any prerequisites or typical use cases.

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

Parameters2/5

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

The schema description coverage is only 14% at the property level, and the tool description does not compensate. It only mentions 'a set of proteins' without explaining how identifiers should be formatted, what species is required, or how optional parameters affect the output. The nested schema descriptions exist but are not surfaced, so the description adds minimal parameter insight.

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 uses 'Retrieves' as a specific verb and names the resource 'STRING enrichment figure image URL' for a set of proteins. It clearly states what the tool does, but it does not explicitly differentiate from sibling tools like string_enrichment or string_ppi_enrichment, so it misses the top score.

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 information about when to use this tool versus alternatives. It doesn't mention that this is for obtaining the visualization URL rather than enrichment data, nor does it give context like 'use when you need the figure.' There is no exclusion or alternative mention.

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

string_functional_annotationSTRING: Retrieve functional annotations for proteinsAInspect

This tool retrieves curated functional annotations for a set of proteins.

Each input protein is mapped to known biological terms from ontologies, pathway databases, tissues, compartments and domains — such as Gene Ontology (GO), KEGG, and UniProt Keywords.

  • Use this when the user asks what a protein does, where it's localized, expressed, or which pathways it participates in.

  • Keep the output short and focused by highlighting a few diverse and specific annotations for each protein.

  • This tool does not perform statistical enrichment — use the enrichment tool for that.

Output fields (per protein):

  • stringId: STRING protein identifier

  • preferredName: Gene name or alias

  • annotation: Functional description or keyword

  • category: Source category (e.g. GO, KEGG, Keyword)

  • term: Functional term or ID

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
identifiersYesSeparate multiple protein queries by %0d. e.g. SMO%0dTP53
detail_for_termNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the transparency burden. It explains that output is curated and intentionally short ('Keep the output short and focused'), mentions the types of data sources (GO, KEGG, UniProt Keywords), and discloses a limitation (no enrichment). It does not mention potential truncation details, but the schema parameter detail_for_term fills in that gap.

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

Conciseness4/5

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

The description is well-structured with a clear opening sentence, bullet points for usage, and an output field list. It is somewhat long but every section adds useful information; the front-loaded purpose statement makes it easy to scan.

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

Completeness4/5

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

The description covers the tool's purpose, appropriate use cases, a key alternative, and detailed output fields. With an output schema present, it does not need to restate return types. It could mention the requirement for species, but the schema covers that, so overall completeness is strong.

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

Parameters2/5

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

The tool description does not explain any of the three parameters by name or provide usage details. Schema description coverage is only 33%, and the description does not compensate by clarifying how to format identifiers, supply species, or use detail_for_term. The output field list is helpful but does not address parameter semantics.

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 opens with a specific verb and resource: 'retrieves curated functional annotations for a set of proteins.' It clearly distinguishes itself from sibling tools by explicitly stating it does not perform statistical enrichment and points to the enrichment tool for that purpose.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: 'Use this when the user asks what a protein does, where it's localized, expressed, or which pathways it participates in.' It also provides an exclusion and alternative: 'This tool does not perform statistical enrichment — use the enrichment tool for that.'

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

string_helpSTRING: Help / FAQAInspect

Provides explanatory text for STRING features and limitations.

Use this tool when the user question involves:

  • What is STRING is or how to use the tool (how_to_use_string, cytoscape)

  • functionality not available via MCP tools (e.g. GSEA, regulatory networks, large datasets).

  • meaning of the lines in the network (line_colors)

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries the full burden. It explains the tool returns explanatory text and gives context on the type of content covered. It doesn't mention side effects (none expected for a help tool) or details about behavior when the topic is omitted, but the schema covers that, so the description adds reasonable 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 concise and front-loaded with the purpose, followed by a tight bulleted list of usage scenarios. Every sentence earns its place, and the structure makes it easy to scan. Minor typo ('What is STRING is') does not detract from clarity.

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

Completeness5/5

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

Given the tool is a simple help/FAQ tool with an output schema and a single optional parameter, the description provides sufficient context: what it does, when to use it, and examples of relevant topics. It is complete for its complexity.

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 schema describes the 'topic' parameter as optional and notes the behavior when omitted. The tool description adds semantic value by grouping example topics (how_to_use_string, cytoscape, line_colors) into meaningful categories, helping the agent map user questions to appropriate parameter values.

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 provides explanatory text for STRING features and limitations, which is a specific verb+resource. It distinguishes from sibling tools by positioning itself as a help/FAQ tool rather than a data retrieval tool, and reinforces this with example topics.

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

Usage Guidelines5/5

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

Explicitly states 'Use this tool when the user question involves:' and lists three distinct scenarios, including guidance for functionality not available via MCP tools. This clearly differentiates when to use this tool versus alternatives.

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

string_homologySTRING: Get homologs in specified target speciesAInspect

Retrieves pairwise protein similarity scores (Smith–Waterman bit scores) for the query proteins.

  • If no target species (species_b) is provided, results are intra-species (within the query species).

  • To retrieve homologs in other species or clades (e.g. vertebrates, yeast, plants), specify one or more NCBI taxon IDs in species_b.

  • Multiple target species are supported; ask the user to clarify if needed.

  • Always report species names together with their taxon IDs.

  • Bit scores < 50 are not reported.

  • Results are truncated to the top 50 proteins per input protein.

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
proteinsYesRequired. One or more protein identifiers, separated by %0d. Example: SMO%0dTP53
species_bNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses two important behavioral constraints: bit scores below 50 are not reported and results are truncated to the top 50 per protein. It also mandates reporting species names with taxon IDs, which sets expectations for output. However, it does not explicitly state the operation is read-only or mention any API/authentication requirements.

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 main purpose and then uses bullet points for scannable behavioral details. Every line adds value—no filler, rhetorical fluff, or redundant restatements of the title. It's tight but complete.

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

Completeness4/5

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

The description covers the essential usage contexts (intra-species vs cross-species), output filters (bit score threshold, top-50 truncation), and reporting expectations. The presence of an output schema helps with return-value details. The main gap is the missing explanation of the 'species' parameter, which prevents full self-sufficiency.

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

Parameters2/5

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

The description clarifies the role of species_b (optional, intra-species when omitted) but does not explain the 'species' parameter or the encoding format for 'proteins'. Given the low schema description coverage (33%), the description should compensate by explaining parameter meanings, but it leaves one parameter unaddressed and repeats only what the schema already says for another.

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 opens with a specific verb and resource: 'Retrieves pairwise protein similarity scores (Smith–Waterman bit scores) for the query proteins.' It clearly differentiates from sibling tools by focusing on homology across specified target species, matching the title's promise.

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

Usage Guidelines4/5

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

It clearly states when to use the tool (to retrieve homologs) and the key branching condition: no species_b means intra-species, while specifying taxon IDs enables cross-species/clade searches. It also advises asking the user to clarify multiple target species, but doesn't name alternative tools or explicitly exclude their use.

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

string_interaction_evidenceSTRING: Get links to interaction evidence pagesAInspect

Retrieves direct links to STRING evidence pages for protein–protein interaction pairs.

Use this tool only when a STRING evidence page/link is needed. To determine whether an interaction is supported, use string_interactions_query_set.

It returns URLs linking to STRING’s evidence pages, which display the underlying data sources (experimental results, publications, and curated databases) supporting each predicted interaction.
A URL can be generated even for unsupported pairs; the URL is not itself an interaction verdict.

Parameters:

  • identifier_a: Query protein identifier (Protein A)

  • identifiers_b: One or more target protein identifiers (Protein B), separated by %0d

  • species: NCBI taxonomy ID (e.g. 9606 for human or 10090 for mouse)

Typical user questions that should trigger this tool:

  • "Can you show me the STRING evidence for this interaction?"

  • "Show me the details supporting this interaction."

  • "What supports the interaction between TP53 and MDM2?"

  • "Where can I find the STRING evidence for this pair?"

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
identifier_aYesRequired. Protein A identifier.
identifiers_bYesRequired. One or more protein B identifiers, separated by %0d.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/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 discloses a key nuance: 'A URL can be generated even for unsupported pairs; the URL is not itself an interaction verdict.' It also explains what the evidence pages display, which adds meaningful context beyond the basic retrieval purpose.

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

Conciseness4/5

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

The description is well-structured and front-loaded with the purpose. The parameter list and typical user questions add value but make it slightly longer than necessary. The caveat about unsupported pairs is placed prominently, and the overall organization makes it easy to scan.

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

Completeness4/5

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

The description covers the tool's purpose, usage, and output nature, and the presence of an output schema covers return details. The only notable gap is that it doesn't mention the `species` parameter is optional with a null default, which could lead to confusion given the schema marks it as 'Required' in its description. Otherwise, it is complete.

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 description adds clarity to the two required parameters by restating them in plain language and adding the separator detail for `identifiers_b` ('separated by `%0d`'). It also provides concrete species examples (9606, 10090) that go beyond the schema's description. Since schema coverage is 67%, this added context helps compensate.

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 opens with a specific verb and resource: 'Retrieves direct links to STRING evidence pages for protein–protein interaction pairs.' It clearly distinguishes itself from the sibling tool by noting that `string_interactions_query_set` should be used to determine if an interaction is supported, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool with 'Use this tool only when a STRING evidence page/link is needed' and provides the alternative: 'To determine whether an interaction is supported, use `string_interactions_query_set`.' It also lists typical user questions that should trigger the tool, giving clear contextual guidance.

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

string_interactions_query_setSTRING: Get interactions within query setAInspect

Retrieves the interactions between the query proteins. Use this method only when you specifically need to list the interactions between all proteins in your query set. If user asks for 'physical' or 'complex' use 'physical' network type.

  • For a single protein, the network includes that protein and its top 10 most likely interaction partners, plus all interactions among those partners.

  • For multiple proteins, the network includes all direct interactions between them.

  • If the user refers to "physical interactions", "complexes", or "binding", set the network type to "physical".

  • STRING does not store or report information about self-interactions/homomers; if asked, explain the limitation.

If few or no interactions are returned, consider reducing the required_score.

For large query sets (>50 proteins), consider increasing the required_score (e.g. ≥700) to focus on high-confidence interactions and avoid overly dense networks.

  • Expand the names of score sources:
    nscore (neighborhood), fscore (fusion), pscore (phylogenetic profile),
    ascore (coexpression), escore (experimental), dscore (database), tscore (text-mining)

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
proteinsYesRequired. One or more protein identifiers, separated by carriage return (%0d). Example: SMO%0dTP53
network_typeNo
extend_networkNo
required_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries the full burden and succeeds. It discloses behavior for single vs multiple proteins, the default 10 partners, the physical network type mapping, the lack of self-interactions/homomers and how to handle such queries, and the effect of required_score adjustments.

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 well-structured with a clear opening purpose, followed by actionable use cases, behavior notes, tuning advice, and a final score-source legend. Each sentence earns its place; the use of bullets and bold improves readability without being verbose.

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

Completeness5/5

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

For a complex tool with 5 parameters and no annotations, the description covers the essential behavioral aspects, limitations, parameter tuning, and even auxiliary knowledge (score source names). Combined with the input schema (which documents parameter formats) and the presence of an output schema, this is complete enough for effective tool usage.

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 description adds valuable meaning beyond the schema, especially for network_type ('set physical only for binding, complex, or co-complex questions'), required_score (when to reduce or increase threshold), and the expansion of score source abbreviations. However, it does not explicitly explain the proteins format or species, which the schema partially does; given low schema coverage, this is a minor gap.

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 'Retrieves the interactions between the query proteins' with a specific verb and resource, and further distinguishes its scope with 'Use this method only when you specifically need to list the interactions between all proteins in your query set.' This differentiates it from sibling tools like string_all_interaction_partners.

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

Usage Guidelines5/5

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

It gives explicit guidance on when to use: 'only when you specifically need to list the interactions between all proteins in your query set.' It also covers network type selection, single vs multiple protein behavior, and parameter tuning (reducing required_score for sparse results, increasing for large sets). These are clear contextual instructions for the agent.

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

string_network_clusteringSTRING: Perform network clusteringAInspect

Performs network clustering on a STRING interaction network and returns both a network image URL and details about each detected cluster.

Use the same parameters as in the network creation step to ensure consistency. If the network already contains disconnected subgraphs, the resulting number of clusters may differ from the requested value.

Dashed lines represent connections between clusters, while solid lines indicate interactions within clusters.

Notes:

  • For small queries (≤5 proteins), the required_score parameter is automatically lowered to 0.

  • If only a single cluster is produced, try increasing required_score, adjusting the inflation parameter, or switching to kmeans for small, highly interconnected networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
proteinsYesRequired. One or more protein identifiers (optionally with values). Example: PTEN 0.234 SMO -3.445 Separate entries with newline (%0d). Numeric values (e.g. expression data) can be provided after identifiers.
network_typeNo
extend_networkNo
network_flavorNo
required_scoreNo
center_node_labelsNo
clustering_algorithmNo
clustering_parameterNo
hide_disconnected_nodesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations given, the description fully carries the burden of behavioral disclosure. It reveals important non-obvious behaviors: automatic lowering of required_score for ≤5 proteins, possible mismatch in cluster count for disconnected subgraphs, the meaning of dashed vs solid lines, and adjustment tips for single-cluster results. This exceeds typical descriptions.

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 well-structured: a concise opening sentence, a usage note, a visual-guide sentence, and a bulleted list of caveats. Every sentence contributes new information without verbosity, and the most important purpose is front-loaded.

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

Completeness5/5

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

Given the tool's complexity (10 parameters, 1 required), the description provides sufficient context for correct invocation. It covers the tool's core function, consistency with network creation, edge-case behavior, and troubleshooting adjustments. The presence of an output schema mitigates the need to describe return values in the text.

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 input schema already provides thorough descriptions for all 10 parameters, including defaults and examples. The description adds contextual meaning beyond the schema by explaining the relationship between required_score and small queries, and by elaborating on clustering_parameter behavior (inflation vs number of clusters) in the troubleshooting note.

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 opens with 'Performs network clustering on a STRING interaction network' and specifies the two outputs: a network image URL and details about each detected cluster. This clearly identifies the tool's purpose and differentiates it from siblings like string_visual_network by focusing on clustering results.

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

Usage Guidelines4/5

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

It advises 'Use the same parameters as in the network creation step to ensure consistency,' which implies a workflow context. It also provides concrete troubleshooting guidance (adjusting required_score, inflation parameter, or switching to kmeans) but does not explicitly name alternative tools or state when not to use this tool.

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

string_ppi_enrichmentSTRING: Protein–protein interaction (PPI) enrichmentBInspect

This tool tests if your network is enriched in protein-protein interactions compared to the background proteome-wide distribution (i.e., if your proteins are more functionally connected than expected by chance).

  • The enrichment is assessed using the actual observed edges versus expected edges in a random network of the same size.

  • The p-value reflects the likelihood that your observed number of interactions would occur by chance.

  • Report the p-value as a human-readable value (e.g. 2.3e-5 or 0.023).

When calling related tools use the same input parameters unless otherwise specified.

Output fields:

  • number_of_nodes: Number of proteins in your network

  • number_of_edges: Number of observed edges/interactions

  • average_node_degree: Mean degree (average number of interactions per node)

  • local_clustering_coefficient: Average clustering coefficient in the network

  • expected_number_of_edges: Expected number of edges in a random network of the same size

  • p_value: p-value for network enrichment (smaller = more enriched)

Example identifiers: "SMO%0dTP53"

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
identifiersYesRequired. One or more protein identifiers, separated by %0d. Example: SMO%0dTP53
required_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description carries the full transparency burden. It discloses the statistical methodology (observed vs expected edges) and provides output field interpretations (e.g., 'p_value: smaller = more enriched'). However, it does not mention potential side effects (though likely none), prerequisites like species handling, or behavior under invalid input, leaving gaps.

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

Conciseness3/5

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

The description is well-structured with bullets and an output field list, but it includes extraneous elements like 'Report the p-value as a human-readable value' and 'When calling related tools...' which are not core tool-defining content. It could be tightened without losing key information.

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?

An output schema exists, so listing return fields is redundant but adds interpretive value. The description does not address when to provide required_score or how species defaults behave, and it lacks guidance on input prerequisites. It is adequate for basic selection but not fully complete for invocation without schema inspection.

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

Parameters2/5

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

Schema description coverage is low (33%), so the description must compensate. It provides an example identifier format ('SMO%0dTP53') but does not clarify the semantics of the optional species or required_score parameters beyond what the schema already says. The phrase 'use the same input parameters' adds little specific value.

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 starts with a specific verb ('tests if your network is enriched') and clearly identifies the resource (protein-protein interactions) and the comparison (background proteome-wide distribution). This distinguishes it from sibling tools like string_enrichment, which likely focus on functional term enrichment.

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 one wants to assess whether a protein set is more functionally connected than random, but it does not explicitly state when to choose this tool over alternatives such as string_enrichment or string_network_clustering. The only related-tool note ('When calling related tools use the same input parameters') is about parameter reuse, not tool selection.

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

string_proteins_for_termSTRING: Retrieve proteins associated with a functional termAInspect

Retrieve proteins annotated with a functional term or descriptive text in a single species.
You can query for tissues, compartments, diseases, processes, pathways, and domains.

IMPORTANT: For cross-species comparisons, run this tool separately for each species.
Select relevant model organisms to search or ask user to provide the selection. The results reflect annotation depth within each category; use caution when interpreting.

If no results are found, try simplifying the query.
For tissue queries, follow BRENDA tissue nomenclature and omit the word "tissue"
(e.g. use "skin" instead of "skin tissue").

Output fields:

  • category: Source database of the matched functional term (e.g. GO, KEGG, Reactome, Pfam, InterPro).

  • term: Exact identifier for the functional term.

  • description: The free text description of the term.

  • proteinCount: Number of proteins annotated with that term

  • preferredNames: Full protein-name list when detail_for_term is set

  • stringIds: STRING protein identifiers when returned

  • preferredNames_omitted: True when a row omits the protein-name list

  • stringIds_omitted: True when STRING identifiers are omitted

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNoNCBI/STRING taxonomy ID. This tool only supports one species per call. It cannot return results across multiple species or identify the species with the most/fewest proteins. For such questions, run this tool separately for each species and then compare the results. Default is 9606 (human). Examples: 10090 for mouse, or STRG0AXXXXX for uploaded genomes.9606
term_textYesRequired. Functional term identifier (GO, KEGG, Reactome, etc.) or descriptive free text (e.g. 'hsa05218', 'Melanoma', 'GO:0008543', 'Fibroblast growth factor').
detail_for_termNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description carries the full transparency burden and does so excellently. It discloses the single-species limitation, the inability to compare across species, the caveat that results reflect annotation depth, the tissue-naming convention, and details about output fields including omission flags. This goes well beyond basic read/write hints.

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 well-structured with a front-loaded main sentence, concise usage notes, and a clear output-field list. Every sentence earns its place, and the formatting makes it easy to scan. It is appropriately sized for the tool's complexity.

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

Completeness5/5

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

The description is complete for this tool's complexity: it explains query types, single-species restrictions, search tips, caveats, and output semantics. Even though an output schema exists, the description provides additional context that helps the agent anticipate results and edge cases.

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

Parameters5/5

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

Although the schema already covers 67% of parameters, the description adds essential semantics: term_text accepts both identifiers and free text with concrete examples, detail_for_term is tied to the output fields and omission behavior, and species examples are provided. This compensation makes the parameter behavior fully understandable.

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 opening sentence clearly states the tool's action: 'Retrieve proteins annotated with a functional term or descriptive text in a single species.' The verb 'retrieve' and the resource 'proteins associated with a functional term' are specific, and it distinguishes itself from siblings by emphasizing the single-species scope and the broad range of queryable term types.

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

Usage Guidelines4/5

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

The description provides strong usage guidance: it lists queryable categories, instructs users to run the tool separately for cross-species comparisons, advises simplifying queries when no results are found, and specifies BRENDA tissue nomenclature. It does not explicitly name alternative sibling tools, so it stops short of a perfect 5.

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

string_query_speciesSTRING: Query species and clades in STRINGAInspect

Search for species or clades available in STRING by free-text query and return their NCBI taxonomy IDs.

  • Use this when the user asks which species or clades are present in STRING, or when you need the correct NCBI taxon ID to pass to other tools.

  • use this to resolve NCBI taxons IDs to their scientific names.

  • Accepts up to 100 taxon IDs separated by %0d.

  • The results are limited to the top 50 matches per query.

  • When the user asks for a species list, do not list clades.

  • If the requested species cannot be matched (i.e. the correct species is not present in the results), immediately invoke the 'string_help' tool with topic='missing_species'.

ParametersJSON Schema
NameRequiredDescriptionDefault
species_textYesRequired. One species/clade search term or multiple NCBI taxon IDs separated by carriage return (%0d). Examples: 'human', 'mouse', 'vertebrates', '511145', or '9598%0d10090'. For multiple queries, use taxon IDs rather than free-text names.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description fully carries the burden. It discloses important behaviors: accepts up to 100 taxon IDs separated by %0d, limits results to top 50 matches, and instructs immediate fallback to string_help when a species isn't found. This goes well beyond the schema.

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 well-structured: a clear opening sentence followed by a focused bullet list covering use cases, constraints, and fallback behavior. Every sentence provides actionable information with no redundancy.

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

Completeness5/5

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

Given the presence of an output schema and the tool's moderate complexity, the description covers all critical aspects: purpose, usage timing, formatting constraints, result limits, and error handling. It is complete and self-sufficient.

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 input schema already provides 100% coverage for the single parameter, including examples and guidance to use taxon IDs for multiple queries. The description adds usage context but does not significantly expand the parameter's meaning beyond what the schema documents.

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 explicitly states the tool searches for species or clades in STRING and returns NCBI taxonomy IDs. It distinguishes itself from siblings by focusing on species/clade queries and taxonomy ID resolution, rather than protein interactions or annotations.

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

Usage Guidelines5/5

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

The description provides explicit use cases: 'when the user asks which species or clades are present in STRING' and 'when you need the correct NCBI taxon ID to pass to other tools'. It also includes a clear exclusion ('do not list clades when species list requested') and a fallback instruction to invoke string_help for missing species.

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

string_resolve_proteinsSTRING: Resolves protein identifiers to metadataAInspect

Maps one or more protein identifiers to their corresponding STRING metadata, including: gene symbol, description, sequence, domains, species, and internal STRING ID.

This method is useful for translating raw identifiers into readable, annotated protein entries.

Example input: "TP53%0dSMO"

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
proteinsYesRequired. One or more input protein identifiers (gene symbols, UniProt IDs, etc.), separated by carriage return (%0d). Example: TP53%0dSMO
show_sequenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations provided, the description carries the full burden. It accurately implies a read-only mapping operation and lists what data to expect, but it does not disclose error handling, edge cases (e.g., invalid identifiers), or any operational constraints. The output schema helps, but the description could be more explicit about behavior such as separator handling or the effect of the show_sequence flag.

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 compact and front-loaded: it states the core function in the first sentence, adds a brief use-case statement, and gives a concrete example. No redundant or vague wording is present.

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

Completeness4/5

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

The description covers the purpose, a typical scenario, and an example input. Since an output schema exists, return values are already structured. However, it omits mention of the optional species and show_sequence parameters and does not discuss potential limitations, so it is not fully complete for a tool with three parameters.

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 low (33% per context), and while the description adds value via the input example ('TP53%0dSMO') and the concept of multiple identifiers, it does not explain the 'species' or 'show_sequence' parameters. The schema itself provides some description for these, but the description does not compensate fully for the low 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 uses a specific verb ('Maps') and clearly identifies the resource (protein identifiers) and the target (STRING metadata). It enumerates the metadata fields (gene symbol, description, sequence, domains, species, internal STRING ID), which distinguishes it from sibling tools like string_sequence_search or string_functional_annotation.

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

Usage Guidelines4/5

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

The description provides a clear use case ('useful for translating raw identifiers into readable, annotated protein entries'), which gives context on when to apply the tool. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

string_visual_networkSTRING: Get interaction network image (image URL)AInspect

Retrieves a URL to a STRING interaction network image for one or more proteins.

  • For a single protein: includes the protein and its top 10 most likely interactors.

  • For multiple proteins: includes all known interactions within the query set.

  • If the user asks for "physical interactions", "complexes", or "binding", set network_type to "physical".

The input may include one numeric value per protein, such as fold change, effect size, or score. These values are visualized as colored halos around the nodes, allowing overlay of protein-level measurements on the network.

Example: PTEN 2.1 SMO -1.3

If numeric values are provided:

  • positive values are shown in blue

  • negative values are shown in red

  • larger absolute values produce stronger halo intensity

If the user provides numeric values together with the proteins, preserve them in the query.

If few or no interactions are shown, consider lowering required_score.

For large queries (>100 proteins):

  • use network_flavor="confidence"

  • increase required_score (e.g. 700)

Always ask if the user also wants a link to the interactive STRING network page.

Input parameters should match those used in related STRING tools (e.g. string_interactions_query_set), unless otherwise specified.

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
proteinsYesRequired. One or more protein IDs, optionally followed by one numeric value per protein. Example: PTEN 0.234 SMO -3.445 Use newline (%0d) between entries. Tabs and spaces are accepted as separators.
network_typeNo
extend_networkNo
network_flavorNo
required_scoreNo
center_node_labelsNo
do_not_show_structuresNo
hide_disconnected_nodesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses key behaviors: single protein includes top 10 interactors; multiple proteins restrict to within query set; numeric values produce colored halos (blue positive, red negative) with intensity scaling; and troubleshooting steps like lowering required_score. These details add meaningful transparency beyond the schema.

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

Conciseness4/5

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

The description is well-structured with bullet points, an example, and actionable instructions. It is longer than average but each section earns its place, and the primary purpose is front-loaded. No redundancy or fluff.

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

Completeness4/5

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

For a complex tool with 9 parameters and an output schema, the description covers the main scenarios: single vs. multiple proteins, numeric value handling, parameter tuning for empty or large results, and cross-tool consistency. It omits some details (e.g., species, extend_network), but those are described in the schema, and the output schema covers return values. Overall, it is complete enough for an agent to select and invoke correctly.

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 schema covers all parameters with descriptions, but the description enriches several: proteins (numeric values, halos), network_type (set to 'physical' for binding/complexes), network_flavor (confidence for large queries), and required_score (lower when few interactions). This adds practical meaning beyond the schema, though the description does not mention species or structural options, which are left to the schema.

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 states 'Retrieves a URL to a STRING interaction network image for one or more proteins,' clearly identifying the tool's action (retrieve URL) and resource (STRING interaction network image). It also distinguishes this from sibling tools like string_network_link (interactive page) and string_interactions_query_set (query set) by emphasizing the image output and network visualization.

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

Usage Guidelines4/5

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

The description provides concrete usage guidance: behavior for single vs. multiple proteins, when to set network_type='physical', when to adjust required_score, and how to handle large queries with network_flavor='confidence'. It also instructs the agent to always ask about the interactive STRING page, implying that this tool does not return that link. This is strong guidance, though it does not explicitly name alternative tools for the interactive page.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides access to the STRING protein-protein interaction database for mapping identifiers, retrieving interaction networks, and performing functional enrichment analysis. It enables users to explore protein partners, pathways, and cross-species homology through natural language interactions.
    9
    1
    ISC
  • A
    license
    -
    quality
    C
    maintenance
    MCP server for STRING-DB that enables querying protein-protein interaction networks, functional enrichment, and homology mappings.
    9
    MIT
  • 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

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.