BioThings Model Context
STDIOMCP server implementing Model Context Protocol for BioThings data access.
MCP server implementing Model Context Protocol for BioThings data access.
MCP (Model Context Protocol) server for Biothings.io
This server implements the Model Context Protocol (MCP) for BioThings, providing a standardized interface for accessing and manipulating biomedical data. MCP enables AI assistants and agents to access specialized biomedical knowledge through structured interfaces to authoritative data sources. Supported BioThings data sources include:
If you want to understand more what is Model Context Protocol and how to use it more efficiently you can take DeepLearning AI Course or just search for MCP videos on YouTube.
MCP is a protocol that bridges the gap between AI systems and specialized domain knowledge. It enables:
This server provides dedicated API interfaces for different BioThings data types, leveraging the biothings-typed-client
library. These interfaces are implemented using the following mixins:
GeneRoutesMixin
(wraps GeneClientAsync
)VariantsRoutesMixin
(wraps VariantClientAsync
)ChemRoutesMixin
(wraps ChemClientAsync
)TaxonRoutesMixin
(wraps TaxonClientAsync
)# Download and install uv curl -LsSf https://astral.sh/uv/install.sh | sh # Verify installation uv --version uvx --version
uvx is a very nice tool that can run a python package installing it if needed.
You can run the biothings-mcp server directly using uvx without cloning the repository:
# Run the server in STDIO mode (default mode) uvx biothings-mcp # Or explicitly specify stdio mode uvx --from biothings-mcp stdio
# Run the server in streamable HTTP mode on default ( 3001 ) port uvx biothings-mcp # Run on a specific port uvx biothings-mcp server --port 8000
# Run the server in SSE mode uvx biothings-mcp sse
The HTTP mode will start a web server that you can access at http://localhost:3001/mcp
(with documentation at http://localhost:3001/docs
). The STDIO mode is designed for MCP clients that communicate via standard input/output, while SSE mode uses Server-Sent Events for real-time communication.
We provide stdio configuration using the proxy (might need npx to run):
If you want to inspect the methods provided by the MCP use npx (you may need to install nodejs and npm)
Test your MCP setup with the MCP Inspector.
If you want to inspect local streamable-http server you use:
npx @modelcontextprotocol/inspector --config mcp-config.json --server biothings-mcp
Add -remote suffix for the remote server.
If you want to inspect stdio local server you should use
npx @modelcontextprotocol/inspector --config mcp-config-stdio.json --server biothings-mcp
You can also run inspector manually and put server parameters in the interface:
npx @modelcontextprotocol/inspector
After that you can explore its methods with MCP Inspector at http://127.0.0.1:6274
# Clone the repository git clone [email protected]:longevity-genie/biothings-mcp.git cd biothings-mcp uv sync
If you already cloned the repo you can run the server with uv
# Start the MCP server locally uv run server
To integrate this server with your MCP-compatible AI client, you can use one of the preconfigured JSON files provided in this repository:
mcp-config.json
. Ensure the server is running first, either via uv run server
(see Running the MCP Server) or docker-compose up
(see Docker Deployment).mcp-config-remote.json
. This connects to https://biothings.longevity-genie.info/mcp
and doesn't require you to run anything locally.Simply point your AI client (like Cursor, Windserve, ClaudeDesktop, VS Code with Copilot, or others) to use the appropriate configuration file.
Here's an example of how the tools might appear in an MCP client like Cursor after configuration:
The library is beta-quality. The major problem right now is that LLM-s are often stupid and do not know how to put valid gene and gene variant symbols. We plan to mitigrate it by extending comments and providing additional method for entity resolution.
Run tests for the API endpoint:
uv run pytest -vvv -s
You can use MCP inspector with locally build MCP server same way as with uvx
Note: Using the MCP Inspector is optional. Most MCP clients (like Cursor, Windsurv, etc.) will automatically display the available tools from this server once configured. However, the Inspector can be useful for detailed testing and exploration.
If you choose to use the Inspector via npx
, ensure you have Node.js and npm installed. Using nvm (Node Version Manager) is recommended for managing Node.js versions.
This opens a web interface where you can explore and test all available tools.
For detailed documentation about the MCP protocol and its implementation, refer to:
This project is licensed under the MIT License.
BioThings for the REST API and original client library
MCP Protocol for the protocol specification
Pydantic for the data validation framework
FastAPI-MCP for the MCP server implementation
This project is part of the Longevity Genie organization, which develops open-source AI assistants and libraries for health, genetics, and longevity research.
We are supported by:
HEALES - Healthy Life Extension Society
and
IBIMA - Institute for Biostatistics and Informatics in Medicine and Ageing Research