Odel
BioMCP

BioMCP

Local
@gucci102481HTMLApache-2.0Updated 2mo ago

50+ biomedical data sources in one MCP server — PubMed, ClinVar, gnomAD, KEGG, and more

BioMCP · Biomedical MCP Server

Apache-2.0 Docker Pulls MCP Smithery

One command grammar. 50+ biomedical databases. Zero learning curve.

Genes, variants, drugs, trials, papers, pathways, phenotypes — all through a single MCP endpoint.

BioMCP is a production-grade Model Context Protocol server that unifies PubMed, ClinicalTrials.gov, ClinVar, gnomAD, OncoKB, Reactome, KEGG, UniProt, PharmGKB, CPIC, OpenFDA, CDC VAERS, Monarch Initiative, GWAS Catalog, DisGeNET, AlphaGenome, cBioPortal, and 40+ other biomedical sources behind one consistent read-only API.


Quickstart

# Option A: Pull from Docker Hub (recommended)
docker pull jackgucci/biomcp:latest
docker compose up -d

# Option B: Build from source
git clone https://github.com/gucci10248/JEFFREY.git && cd JEFFREY
cp .env.example .env
bash build.sh
docker compose up -d

# Test
curl http://localhost:8080/health   # → {"status":"ok"}

Your MCP server is live at http://localhost:8080/mcp.


MCP Client Setup

Claude Desktop

{
  "mcpServers": {
    "biomcp": {
      "type": "streamableHttp",
      "url": "http://localhost:8080/mcp"
    }
  }
}

Hermes Agent

# ~/.hermes/config.yaml
mcp:
  servers:
    biomcp:
      type: streamableHttp
      url: http://localhost:8080/mcp
      enabled: true

Any SSE/Streamable HTTP Client

Endpoint: http://localhost:8080/mcp

Command Reference

Genes

CommandExample
get gene <symbol>get gene BRAF
get gene <symbol> diagnosticsget gene BRCA1 diagnostics
get gene <symbol> fundingget gene TP53 funding
search gene --region <chr:start-end>search gene --region 7:140413127-140624564
gene pathways <symbol>gene pathways EGFR
gene trials <symbol>gene trials KRAS
gene articles <symbol>gene articles PTEN
gene drugs <symbol>gene drugs ALK

Variants

CommandExample
get variant "<name>"get variant "BRAF V600E"
search variant --gene <symbol> --impact highsearch variant --gene CFTR --impact high
variant trials <id>variant trials "BRAF V600E"
variant articles <id>variant articles "EGFR L858R"

Drugs

CommandExample
search drug --indication "<disease>"search drug --indication hypertension
get drug <name>get drug metformin
get drug <name> safetyget drug ibuprofen safety
get drug <name> regulatory --region euget drug rivaroxaban regulatory --region eu
drug interactions <name>drug interactions warfarin
drug adverse-events <name>drug adverse-events aspirin
drug trials <name>drug trials pembrolizumab

Diseases

CommandExample
get disease <name>get disease melanoma
get disease <name> fundingget disease tuberculosis funding
get disease <name> diagnosticsget disease HIV diagnostics
get disease <name> survivalget disease "breast cancer" survival
get disease <name> phenotypesget disease "Parkinson disease" phenotypes
disease drugs <name>disease drugs diabetes
disease trials <name>disease trials "acute myeloid leukemia"
disease articles <name>disease articles atherosclerosis

Articles (PubMed, Europe PMC, LitSense2)

CommandExample
search article -k "<query>" --type reviewsearch article -k "CRISPR base editing" --type review
search article --gene <symbol> -k "<query>"search article --gene APOE -k "Alzheimer risk"
search article --drug <name>search article --drug metformin
get article <pmid>get article 23193287
article citations <pmid>article citations 23193287
article recommendations <pmid>article recommendations 23193287
article entities <pmid>article entities 23193287

Clinical Trials

CommandExample
search trial -c "<condition>"search trial -c "type 2 diabetes"
search trial --gene <symbol>search trial --gene BRAF
search trial --has-resultssearch trial -c melanoma --has-results
get trial <nct_id>get trial NCT04280705
get trial <nct_id> locationsget trial NCT04280705 locations --limit 20

Pathways & Enrichment

CommandExample
search pathway "<name>"search pathway "MAPK signaling"
get pathway <id>get pathway hsa04010
pathway drugs <id>pathway drugs hsa04151
enrich <gene list>enrich TP53,EGFR,BRAF,KRAS

Phenotypes

CommandExample
search phenotype "<symptoms>"search phenotype "seizure, developmental delay"
search phenotype "HP:... HP:..."search phenotype "HP:0001250 HP:0001263"

GWAS

CommandExample
search gwas -g <gene>search gwas -g APOE
search gwas --trait "<text>"search gwas --trait "body mass index"
get gwas <id>get gwas GCST90018969

Cross-Entity Search

CommandExample
search all --gene <symbol> --disease <name>search all --gene BRAF --disease melanoma
discover "<free text>"discover "chest pain"
suggest "<question>"suggest "What drugs treat melanoma?"

Protein & Structure

CommandExample
get protein <accession>get protein P00519
protein structures <accession>protein structures P00519

Pharmacogenomics

CommandExample
get pgx <gene>get pgx CYP2D6
search pgx --drug <name>search pgx --drug clopidogrel

Adverse Events

CommandExample
search adverse-event --drug <name>search adverse-event --drug metformin
search adverse-event --vaccine <name>search adverse-event --vaccine "COVID-19 mRNA"

Operations

CommandExample
healthCheck API connectivity
versionPrint server version
batch <entity> <id1,id2,...>batch gene BRAF,EGFR,TP53 --sections funding

Data Sources

SourceCoverage
PubMed36M+ biomedical citations
Europe PMCFull-text, preprints, patents
ClinicalTrials.gov500K+ registered trials
ClinVar3M+ variant-disease annotations
gnomADPopulation allele frequencies
OncoKBCancer variant clinical actionability
OpenFDAFDA drug/device adverse events
UniProtProtein function & structure
KEGGMetabolic & signaling pathways
ReactomeCurated pathway database
PharmGKBPharmacogenomics knowledge
CPICClinical pharmacogenetics guidelines
Monarch InitiativeCross-species phenotype ontology
GWAS CatalogGenome-wide association studies
cBioPortalCancer genomics datasets
DDInterDrug-drug interaction database
CDC VAERSVaccine adverse events
EMAEuropean Medicines Agency data
WHO PrequalificationEssential medicines quality
NCBI GTRGenetic testing registry
AlphaGenomeGenomic variant predictions
DisGeNETGene-disease associations

Features

  • Read-only by design — no mutations to external data sources, safe for production
  • Single command grammar — one pattern for all entity types, no learning curve
  • Resilient — multi-source fallback, degraded responses with transparent source status
  • Non-root container — runs as unprivileged biomcp user
  • Read-only root filesystemdocker compose enforces read_only: true
  • Minimal attack surface — single static binary, zero runtime dependencies
  • Zero telemetry — no outbound calls except to public biomedical APIs
  • SHA256-verified binarybuild.sh verifies checksum from GitHub Releases
  • Auto-updating data caches — EMA, WHO, GTR feeds auto-refresh on stale detection

Health & Monitoring

curl http://localhost:8080/health    # → {"status":"ok"} — API connectivity
curl http://localhost:8080/readyz    # → 200 — ready to serve traffic
curl http://localhost:8080/          # → Welcome page (HTML)

Requirements

  • Docker 24+ & Docker Compose v2
  • ~200MB disk (image + data volumes)
  • Outbound internet access to public biomedical APIs
  • Optional: NCBI_API_KEY, S2_API_KEY, UNPAYWALL_EMAIL for higher rate limits

Contributing

See SECURITY.md for vulnerability reporting and CODEOWNERS for maintainer contacts.


License

Apache License 2.0 — see LICENSE.