STRING Database MCP server
Commit Oct 27, 2026Enables AI agents to query protein interaction networks, functional enrichment, homology lookups, and curated protein annotations.
Also known as meringlab/string-mcp, string-mcp
- Stars
- 8
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 1.13.1
- Last commit
- Oct 27, 2026
- License
- MIT
What is STRING Database MCP?
STRING Database enables AI agents to query protein interaction networks, functional enrichment, homology lookups, and curated protein annotations.
Summary generated from the project's README
About STRING Database MCP server
Querying protein interaction networks and functional annotations from within an AI agent is what this server enables. It provides a structured interface for researchers to access the STRING database, allowing for homology lookups, functional enrichment analysis, and the retrieval of curated protein metadata. The server is designed to manage data volume and structure specifically to fit within the reasoning limits of large language models, ensuring that responses are concise and easy for agents to parse.
Developers can deploy this as a local server using Python 3.11 or via Docker, running through standard input/output or HTTP. It is also available as a hosted remote endpoint. Users can configure settings like verbosity and base URLs through a JSON configuration file. The tools available include resolving protein identifiers, clustering interaction networks, and querying proteins by specific biological functions, diseases, or pathways such as GO, KEGG, and Reactome.
What you can do with it
- 1Perform functional enrichment analysisRequest a functional enrichment analysis including the generation of enrichment plots.
- 2Identify proteins by disease or functionSearch for proteins associated with specific diseases or biological pathways like KEGG or Reactome.
- 3Conduct homology lookupsUse the agent to find homologous proteins across different species.
Written from the project's README. Every use case is checked against a quote from it.
How to install STRING Database MCP
Formats verified 10 Nov 2026Install STRING Database MCP in Claude Code
$ claude mcp add --transport http string-mcp https://mcp.string-db.org/Install STRING Database MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"string-mcp": {
"url": "https://mcp.string-db.org/"
}
}
}Install STRING Database MCP in VS Code
.vscode/mcp.json
{
"servers": {
"string-mcp": {
"type": "http",
"url": "https://mcp.string-db.org/"
}
}
}Install STRING Database MCP in Codex
~/.codex/config.toml
[mcp_servers.string-mcp] url = "https://mcp.string-db.org/"
Install STRING Database MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"string-mcp": {
"httpUrl": "https://mcp.string-db.org/"
}
}
}Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work
- Source repository linked and reachablemeringlab/string-mcp is public and reachablegithub.com/meringlab/string-mcp ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-10-27github.com/meringlab/string-mcp ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeinitialize answered with protocol 2025-06-18 in 67 msPass
README
View on GitHubOfficial STRING Database MCP Server
Exposes STRING database functionality as a Model Context Protocol (MCP) server.
This implementation allows AI agents and other MCP-compatible clients to access STRING data through a structured and self-describing interface.
It is built on top of the STRING API but adapted specifically for model-based use, with emphasis on conciseness and context efficiency. The server controls the amount and type of data so that responses stay within the reasoning limits of large language models. It also adapts the structure and adds metadata to support more consistent parsing and interpretation by agentic systems.
The server is also available as a hosted remote MCP endpoint at https://mcp.string-db.org.
For a live demonstration of MCP capabilities, see STRING Chat.
For reproducible workflows and large-scale integration, use the STRING API.
For agentic workflows, use the optional agent skill at skills/string-database/SKILL.md.
Features
- Resolve protein identifiers to STRING metadata
- Retrieve interaction networks
- Cluster and visualize interaction networks
- Perform homology lookups across species
- Access evidence links for protein–protein interactions
- Run functional enrichment analysis (including enrichment plots)
- Get curated functional annotations for proteins
- Query proteins by function or disease (GO, KEGG, Reactome, DISEASES etc.)
Requirements
- Python ≥ 3.11 (with Python 3.10, optional parameter descriptions are misplaced in the tool schemas)
- Dependencies (see
requirements.txt):fastmcp==2.14.7mcp==1.29.0httpx>=0.28,<0.29pydantic>=2.11,<3.0
Note: If the server crashes on startup, it is very likely due to an incompatible FastMCP version.
Configuration
The server reads settings from config/server.config (JSON). Example:
{
"base_url": "https://string-db.org",
"server_port": 57416,
"verbosity": "low"
}
Installation
git clone https://github.com/meringlab/string-mcp.git
cd string-mcp
pip install -r requirements.txt
Running
python server.py
To serve over standard input/output instead of HTTP, for example when a local MCP client starts the server itself:
python server.py --stdio
The stdio mode also reads config/server.config for the STRING API endpoint.
Testing
curl -v -H "Accept: text/event-stream" http://localhost:[port]/mcp
You should see a 200 OK response with content-type: text/event-stream.
Note: HTTP requests sent with default headers will trigger anyio.ClosedResourceError and 406 Not Acceptable. This is expected behavior for the MCP streaming protocol and does not indicate a problem.
Docker
-
Ensure you have a
config/server.configfile (copy fromconfig/server.config.exampleif needed):cp config/server.config.example config/server.config -
Build the image:
docker build -t string-mcp . -
Run the container:
Linux/macOS:
docker run -p 57416:57416 -v $(pwd)/config:/app/config:ro string-mcpWindows PowerShell:
docker run -p 57416:57416 -v ${PWD}/config:/app/config:ro string-mcpWindows Command Prompt:
docker run -p 57416:57416 -v %cd%/config:/app/config:ro string-mcpTo run in detached mode:
# Linux/macOS docker run -d -p 57416:57416 -v $(pwd)/config:/app/config:ro --name string-mcp-server string-mcp # Windows PowerShell docker run -d -p 57416:57416 -v ${PWD}/config:/app/config:ro --name string-mcp-server string-mcpThe
-vflag mounts your local config directory so you can customize settings without rebuilding the image.Note: If you don't need to modify the config, you can omit the volume mount and the container will use the default config from the image.
-
Stop the container (if running in detached mode):
docker stop string-mcp-server docker rm string-mcp-server
Note: The Docker container will use the configuration from config/server.config. If this file doesn't exist, the container will copy from server.config.example on first run.
Frozen STRING releases are available under versioned paths: /12.0/ (STRING v12.0) and /12.5/ (STRING v12.5).
License / Citation
The STRING MCP server source code is released under the MIT License.
Associated data and outputs are released under the CC BY 4.0 License.
You are free to use, share, and modify the code with proper attribution.
If you use this code or data in your work, please also cite the latest STRING manuscript.
STRING Database MCP questions
How do I add STRING Database MCP to Claude Code?
Run claude mcp add --transport http string-mcp https://mcp.string-db.org/ in your terminal. Add --scope user to make it available in every project.
How do I add STRING Database MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How do I run the server in stdio mode?
You can run the server using the command python server.py --stdio to serve over standard input/output for local MCP clients.
What are the Python version requirements?
The server requires Python version 3.11 or higher; using 3.10 may result in misplaced parameter descriptions in tool schemas.