Interface with Biomart, a biological data query tool, using the pybiomart Python package.
Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to LLMs developed by Anthropic. Here we use the MCP python-sdk to create a MCP server that interfaces with Biomart via the pybiomart package.
There is a short demo video showing the MCP server in action on Claude Desktop.
To install Biomart MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @jzinno/biomart-mcp --client claude
git clone https://github.com/jzinno/biomart-mcp.git
cd biomart-mcp
uv run --with mcp[cli] mcp install --with pybiomart biomart-mcp.py
Via Cusror's agent mode, other models can take advantage of MCP servers as well, such as those form OpenAI or DeepSeek. Click the cursor setting cogwheel and naviagate to MCP
and either add the MCP server to the global config or add it to the a project scope by adding .cursor/mcp.json
to the project.
Example .cursor/mcp.json
:
{
"mcpServers": {
"Biomart": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"pybiomart",
"mcp",
"run",
"/your/path/to/biomart-mcp.py"
]
}
}
}
# Create a virtual environment
uv venv
# MacOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
uv sync #or uv add mcp[cli] pybiomart
# Run the server in dev mode
mcp dev biomart-mcp.py
Biomart-MCP provides several tools to interact with Biomart databases:
Pull requests are welcome! Some small notes on development:
@mcp.tool()
here by design, this is to maximize compatibility with clients that support MCP as seen in the docs.@lru_cache
to cache results of functions that are computationally expensive or make external API calls.df.to_csv(index=False).replace("\r", "")
in many places. This csv style return is much more token efficient than something like df.to_string()
where the majority of the tokens are whitespace. Also be mindful of the fact that pulling all genes from a chromosome or similar large request will also be too large for the context window.There of course many more features that could be added, some maybe beyond the scope of the name biomart-mcp
. Here are some ideas:
bs4
, for example we got the Ensembl gene ID for NOTCH1 then maybe in some cases it would be usful to grap the collated Comments and Description Text from UniProtKB
section from it's page on UCSCIntrospect and query your apps deployed to Convex.
A read-only MCP server for CSV files from CData, requiring an external JDBC driver for connection.
Search and query patient Electronic Health Record (EHR) data using SMART on FHIR.
A read-only MCP server for querying live SurveyMonkey data, powered by CData.
Interact with the Solana blockchain to check balances, send SOL, and airdrop SOL.
Perform database actions on Amazon Redshift via its Data API.
BigQuery database integration with schema inspection and query capabilities
Read and write access to your Baserow tables.
A server for managing PostgreSQL databases, enabling comprehensive database operations.
Securely query and retrieve data from your ThoughtSpot instance.