BioMCP

BioMCP

A high-performance MCP server that gives LLMs access to 25 biomedical tools federated across 50+ upstream APIs for genes, variants, drugs, diseases, literature, clinical trials, and structural biology.

Category
访问服务器

README

BioMCP

A high-performance MCP server that gives LLMs access to 25 biomedical tools federated across 50+ upstream APIs — genes, variants, drugs, diseases, literature, clinical trials, and structural biology in a single integration.

Adapted from the BioMCP Rust with agent-first development approach and enhancements. Kudos to the original authors.

Highlights

  • 25 tools across 8 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 fetchingentityGet(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
  • 350+ unit tests (mocked) + 90+ integration tests (live APIs via in-process MCP client, with automatic retry on 429 rate limits)

Quick Start

Install and build

git clone <repo-url> && cd biomcp-ts
make install build

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 (core, pathways, protein, ontology, GO, interactions, expression, protein_atlas, constraint, druggability, dosage_sensitivity, clinical evidence, disease associations, diseases, funding). Set smart=true to auto-resolve gene aliases (e.g., "HER2" → "ERBB2")
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 with optional date range filtering. Accepts query, source, limit, offset, and dateRange parameters.
article_get Get detailed article info by identifier (PMID, PMCID, or DOI) with optional sections: oa (open access / license info), annotations, graph (citation graph), citation (fast-mode or full citation data with citation_mode and citation_direction options)

Trial (2)

Tool Description
trial_search Search clinical trials by condition, intervention, status, or phase. Uses cursor-based pagination via page_token parameter
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

Structural Biology (1)

Tool Description
pdb Search PDB structures, get entry metadata with optional sections (polymer entities, ligands, assembly, experiment, citation), and download structure files (mmCIF/PDB)

Citation Module

Modes:

  • Fast (default): Europe PMC, Semantic Scholar, Crossref (~4s)
    • Returns: Citations with title, authors, journal, year when available
    • Note: Crossref requires DOI; Europe PMC auto-resolves DOI/PMCID to PMID
  • Full (citation_mode="full"): All 5 providers (~15-30s)
    • Adds: PubMed (PMID only) and OpenCitations (DOI only)
    • Use for: Comprehensive citation analysis

Provider Data Coverage:

Provider Forward Backward Count Required ID
Europe PMC PMID/DOI/PMCID
Semantic Scholar PMID/DOI/PMCID
Crossref DOI only
PubMed PMID only
OpenCitations DOI only

Automatic Fallback: Fast mode automatically queries PubMed when other providers return counts but no items (requires PMID).

Development

make              # Show available targets
make install      # Install dependencies
make build        # 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

Local Testing with npx

After building, you can test the MCP server locally via npx:

make build        # Creates dist/bundle.js
npx .             # Runs the bundled MCP server

This is the recommended workflow for local development and testing.

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 API key (prevents 429 rate limits)
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

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选