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

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension