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 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
  • 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)

ToolDescription
gene_searchSearch genes by symbol, name, or keyword with type/chromosome filters
gene_getGet detailed gene info by HGNC symbol with optional sections (pathways, protein, GO, interactions, expression, constraint, druggability, clinical evidence, disease associations, funding)
gene_diseasesGet diseases associated with a gene (DisGeNET / OpenTargets)
gene_drugsFind drugs targeting a gene (OpenTargets)
gene_trialsFind clinical trials for a gene
gene_articlesFind articles about a gene
gene_enrichPathway enrichment analysis for a gene list (Reactome)

Variant (4)

ToolDescription
variant_searchSearch variants by rsid, HGVS, gene, ClinVar significance, frequency, CADD
variant_getGet detailed variant info with optional sections (frequency, predictions, clinical, alphagenome_scores)
variant_oncokbGet OncoKB cancer variant annotations (requires ONCOKB_TOKEN)
variant_trialsFind clinical trials for a variant

Drug (3)

ToolDescription
drug_searchSearch drugs by name, mechanism, or keyword
drug_getGet detailed drug info with optional sections (us_regulatory, eu_regulatory, who_regulatory, safety, targets, indications)
drug_trialsFind clinical trials for a drug

Disease (4)

ToolDescription
disease_searchSearch diseases by name, phenotype, or keyword
disease_getGet detailed disease info by ID (DOID, MONDO, OMIM, etc.) with optional sections (gene_associations, phenotypes, pathways, survival)
disease_drugsGet drugs for a disease (OpenTargets)
disease_trialsGet clinical trials for a disease (ClinicalTrials.gov)

Article (2)

ToolDescription
article_searchFederated literature search across PubMed, EuropePMC, Semantic Scholar, PubTator, and LitSense
article_getGet detailed article info by PMID with optional sections (open_access, annotations, citation_graph)

Trial (2)

ToolDescription
trial_searchSearch clinical trials by condition, intervention, status, or phase
trial_getGet detailed trial info by NCT ID with optional sections (eligibility, locations, outcomes)

Utility (2)

ToolDescription
discoverFree-text concept resolution across all entity types
batch_getRetrieve 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.

VariableSourceBenefit
NCBI_API_KEYNCBIHigher PubMed / NCBI rate limits
S2_API_KEYSemantic ScholarSemantic Scholar API access
OPENFDA_API_KEYOpenFDAOpenFDA API access
NCI_API_KEYNCI CTSNCI Clinical Trials API
ONCOKB_TOKENOncoKBOncoKB cancer variant annotations
DISGENET_API_KEYDisGeNETDisease-gene associations
UMLS_API_KEYUMLSUMLS terminology services
ALPHAGENOME_API_KEYAlphaGenomeAlphaGenome variant scores

License

MIT

Máy chủ liên quan

NotebookLM Web Importer

Nhập trang web và video YouTube vào NotebookLM chỉ với một cú nhấp. Được tin dùng bởi hơn 200.000 người dùng.

Cài đặt tiện ích Chrome