Skip to main content
Glama
meringlab

Official STRING Database MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
string_resolve_proteinsA

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"

string_interactions_query_setA

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.

  • 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.

  • 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)

string_all_interaction_partnersA

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 string_interactions_query_set, which only shows interactions within the input set or a limited extension of it.

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)

string_visual_networkA

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.

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.

string_network_clusteringA

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

Provide a table with each detected cluster’s color, STRING-derived functional description, and any returned features that distinguish it from the others.

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.

Inter-cluster edges are faded by default. Use inter_cluster_edge_visibility to select a different display style.

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 clustering parameter, or switching to a physical network for a sparser interaction map.

string_network_linkA

Retrieves a stable URL to an interactive STRING network 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.

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 display the link as a markdown hyperlink (hide the raw URL).

Input parameters should match those used in related STRING tools unless otherwise specified.

string_homologyA

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.

string_interaction_evidenceA

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. The returned page lets the user explore functional, physical, and regulatory relationship views through its tabs.

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)

  • network_type: Set to physical for physical evidence or regulatory for directed regulatory evidence.

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?"

string_enrichmentA

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)

  • strength: Enrichment effect size, calculated as log10(observed genes / expected genes)

  • signal: Balanced enrichment-ranking metric combining the observed/expected ratio and -log(FDR)

  • 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.

string_functional_annotationA

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

string_enrichment_image_urlA

Retrieves a STRING enrichment figure (image URL) for a set of proteins. For the enriched terms and FDR values, use string_enrichment.

  • Each figure shows a single enrichment category; call again with another category to show a different one.

  • Use the same proteins and species as the network and enrichment results already shown to the user, so the figure matches them.

string_ppi_enrichmentA

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"

string_proteins_for_termA

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

string_sequence_searchA

Searches the STRING database using amino acid sequences to identify matching proteins.

  • Accepts a single sequence or multiple sequences in FASTA format.

  • Returns the most similar STRING protein(s) for the specified species, based on sequence similarity.

  • Use this when the protein identifier is unknown or unresolvable by string_resolve_proteins.

string_query_speciesA

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'.

string_create_fileA

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.

string_helpA

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 or large datasets).

  • meaning of network edges and their visual encoding (network_edge_legend)

  • interpretation of enrichment strength and signal (enrichment_scores)

  • grouping of terms in enrichment figures (enrichment_grouping)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target distinct actions (resolve, query-set interactions, all partners, clustering, homology, enrichment, annotation, term/sequence/species search). The main overlap is between string_visual_network and string_network_link, which both describe nearly identical single/multi-protein network construction, though their descriptions clarify image vs interactive URL output.

Naming Consistency4/5

All tools share a predictable string_ prefix and snake_case, which is highly consistent. However the ordering convention varies (verb_noun like resolve_proteins/sequence_search/create_file vs noun_phrases like interactions_query_set, network_link, proteins_for_term), a minor deviation.

Tool Count4/5

17 tools is on the heavier side but justified by the genuinely broad STRING surface (resolution, interactions, networks, clustering, enrichment, annotations, homology, files, help). Each tool maps to a distinct STRING capability rather than being redundant.

Completeness5/5

The surface comprehensively covers the STRING domain: identifier resolution, interaction queries, partner discovery, network/link/clustering generation, homology, evidence pages, functional enrichment, annotation, term and sequence search, species lookup, file export, and help. No obvious dead ends for typical STRING workflows.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive