BioMCP (Typescript)
Agent-first rewrite of genomeoncology's BioMCP in TypeScript to provide next-gen biomedical data access for agents.
BioMCP
A high-performance MCP server that gives LLMs access to 24 biomedical tools federated across 50+ upstream APIs — genes, variants, drugs, diseases, literature, and clinical trials in a single integration.
Adapted from the BioMCP Rust with agent-first development approach and enhancements. Kudos to the original authors.
Highlights
- 24 tools across 7 domains — search, retrieve, and cross-reference biomedical entities
- 50+ upstream sources — MyGene, MyVariant, MyChem, MyDisease, ClinVar, gnomAD, UniProt, Reactome, OpenTargets, CIViC, OncoKB, DisGeNET, GTEx, STRING, DGIdb, ClinicalTrials.gov, PubMed, EuropePMC, Semantic Scholar, PubTator, LitSense, Monarch Initiative, OpenFDA, NIH Reporter, AlphaGenome, and more
- Section-based fetching —
entityGet(id, sections)fans out to multiple sources with per-section timeouts and graceful degradation (failed sections return{ _error }instead of crashing) - Federated article search — queries 5 literature backends simultaneously with PMID/PMCID/DOI deduplication
- Zero-config startup — works out of the box; optional API keys unlock higher rate limits and premium data
- 195 tests — 131 unit tests (mocked) + 64 integration tests (live APIs via in-process MCP client)
Quick Start
Install and build
git clone <repo-url> && cd biomcp-ts
make install build-bundle
Configure with Claude Desktop
Add to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"biomcp": {
"command": "npx",
"args": ["biomcp"]
}
}
}
Or from a local checkout:
{
"mcpServers": {
"biomcp": {
"command": "node",
"args": ["/path/to/biomcp-ts/dist/bundle.js"]
}
}
}
Direct stdio
npm start
Any MCP-compatible client
BioMCP speaks standard MCP over stdio. Point any MCP client at the biomcp binary or node dist/bundle.js.
Available Tools
Gene (7)
| Tool | Description |
|---|---|
gene_search | Search genes by symbol, name, or keyword with type/chromosome filters |
gene_get | Get detailed gene info by HGNC symbol with optional sections (pathways, protein, GO, interactions, expression, constraint, druggability, clinical evidence, disease associations, funding) |
gene_diseases | Get diseases associated with a gene (DisGeNET / OpenTargets) |
gene_drugs | Find drugs targeting a gene (OpenTargets) |
gene_trials | Find clinical trials for a gene |
gene_articles | Find articles about a gene |
gene_enrich | Pathway enrichment analysis for a gene list (Reactome) |
Variant (4)
| Tool | Description |
|---|---|
variant_search | Search variants by rsid, HGVS, gene, ClinVar significance, frequency, CADD |
variant_get | Get detailed variant info with optional sections (frequency, predictions, clinical, alphagenome_scores) |
variant_oncokb | Get OncoKB cancer variant annotations (requires ONCOKB_TOKEN) |
variant_trials | Find clinical trials for a variant |
Drug (3)
| Tool | Description |
|---|---|
drug_search | Search drugs by name, mechanism, or keyword |
drug_get | Get detailed drug info with optional sections (us_regulatory, eu_regulatory, who_regulatory, safety, targets, indications) |
drug_trials | Find clinical trials for a drug |
Disease (4)
| Tool | Description |
|---|---|
disease_search | Search diseases by name, phenotype, or keyword |
disease_get | Get detailed disease info by ID (DOID, MONDO, OMIM, etc.) with optional sections (gene_associations, phenotypes, pathways, survival) |
disease_drugs | Get drugs for a disease (OpenTargets) |
disease_trials | Get clinical trials for a disease (ClinicalTrials.gov) |
Article (2)
| Tool | Description |
|---|---|
article_search | Federated literature search across PubMed, EuropePMC, Semantic Scholar, PubTator, and LitSense |
article_get | Get detailed article info by PMID with optional sections (open_access, annotations, citation_graph) |
Trial (2)
| Tool | Description |
|---|---|
trial_search | Search clinical trials by condition, intervention, status, or phase |
trial_get | Get detailed trial info by NCT ID with optional sections (eligibility, locations, outcomes) |
Utility (2)
| Tool | Description |
|---|---|
discover | Free-text concept resolution across all entity types |
batch_get | Retrieve multiple entities in parallel |
Development
make # Show available targets
make install # Install dependencies
make build-bundle # Compile and bundle into dist/bundle.js
make typecheck # Type-check without emitting
make test # Run unit tests (fast, mocked)
make test-integration # Run integration tests (live APIs, ~60s)
make test-all # Run all tests
make clean # Remove build artifacts
Environment Variables
All keys are optional. BioMCP works without any keys — they unlock higher rate limits and additional data sources.
| Variable | Source | Benefit |
|---|---|---|
NCBI_API_KEY | NCBI | Higher PubMed / NCBI rate limits |
S2_API_KEY | Semantic Scholar | Semantic Scholar API access |
OPENFDA_API_KEY | OpenFDA | OpenFDA API access |
NCI_API_KEY | NCI CTS | NCI Clinical Trials API |
ONCOKB_TOKEN | OncoKB | OncoKB cancer variant annotations |
DISGENET_API_KEY | DisGeNET | Disease-gene associations |
UMLS_API_KEY | UMLS | UMLS terminology services |
ALPHAGENOME_API_KEY | AlphaGenome | AlphaGenome variant scores |
License
Serveurs connexes
CData MySQL MCP Server
A read-only MCP server for MySQL, enabling LLMs to query live data using the CData JDBC Driver.
Stellar MCP
Interact with the Stellar blockchain, manage accounts, and execute smart contracts on Stellar Classic and Soroban.
CData SuiteCRM Server
A read-only MCP server for querying live SuiteCRM data using the CData JDBC Driver.
DynamoDB Read-Only MCP
A read-only server to query AWS DynamoDB databases using the Model Context Protocol (MCP).
Project Synapse MCP Server
Transforms raw text into interconnected knowledge graphs and generates insights using a Neo4j database.
MySQL MCP Server
Provides access to a MySQL database, allowing agents to execute SQL queries.
FXMacroData
Real-time forex macroeconomic API for all major currency pairs sourced from central bank announcements.
Simple PostgreSQL MCP Server
An MCP server for interacting with PostgreSQL databases using tools, resources, and prompts.
BigCommerce by CData
A read-only MCP server for BigCommerce, enabling LLMs to query live data using the CData JDBC Driver.
Quick Data for Windows MCP
A Windows-optimized server for performing data analytics on JSON and CSV files, designed for Claude Desktop integration.