BioMCP · Biomedical MCP Server
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
hljs language-bash
Copy
docker pull jackgucci/biomcp:latest
docker compose up -d
git clone https://github.com/gucci10248/JEFFREY.git && cd JEFFREY
cp .env.example .env
bash build.sh
docker compose up -d
curl http://localhost:8080/health
Your MCP server is live at http://localhost:8080/mcp.
MCP Client Setup
Claude Desktop
hljs language-json
Copy {
"mcpServers" : {
"biomcp" : {
"type" : "streamableHttp" ,
"url" : "http://localhost:8080/mcp"
}
}
}
Hermes Agent
hljs language-yaml
Copy
mcp:
servers:
biomcp:
type: streamableHttp
url: http://localhost:8080/mcp
enabled: true
Any SSE/Streamable HTTP Client
hljs language-bash
Copy Endpoint: http://localhost:8080/mcp
Command Reference
Genes
Command Example get gene <symbol>get gene BRAFget gene <symbol> diagnosticsget gene BRCA1 diagnosticsget gene <symbol> fundingget gene TP53 fundingsearch gene --region <chr:start-end>search gene --region 7:140413127-140624564gene pathways <symbol>gene pathways EGFRgene trials <symbol>gene trials KRASgene articles <symbol>gene articles PTENgene drugs <symbol>gene drugs ALK
Variants
Command Example get variant "<name>"get variant "BRAF V600E"search variant --gene <symbol> --impact highsearch variant --gene CFTR --impact highvariant trials <id>variant trials "BRAF V600E"variant articles <id>variant articles "EGFR L858R"
Drugs
Command Example search drug --indication "<disease>"search drug --indication hypertensionget drug <name>get drug metforminget drug <name> safetyget drug ibuprofen safetyget drug <name> regulatory --region euget drug rivaroxaban regulatory --region eudrug interactions <name>drug interactions warfarindrug adverse-events <name>drug adverse-events aspirindrug trials <name>drug trials pembrolizumab
Diseases
Command Example get disease <name>get disease melanomaget disease <name> fundingget disease tuberculosis fundingget disease <name> diagnosticsget disease HIV diagnosticsget disease <name> survivalget disease "breast cancer" survivalget disease <name> phenotypesget disease "Parkinson disease" phenotypesdisease drugs <name>disease drugs diabetesdisease trials <name>disease trials "acute myeloid leukemia"disease articles <name>disease articles atherosclerosis
Articles (PubMed, Europe PMC, LitSense2)
Command Example search article -k "<query>" --type reviewsearch article -k "CRISPR base editing" --type reviewsearch article --gene <symbol> -k "<query>"search article --gene APOE -k "Alzheimer risk"search article --drug <name>search article --drug metforminget article <pmid>get article 23193287article citations <pmid>article citations 23193287article recommendations <pmid>article recommendations 23193287article entities <pmid>article entities 23193287
Clinical Trials
Command Example search trial -c "<condition>"search trial -c "type 2 diabetes"search trial --gene <symbol>search trial --gene BRAFsearch trial --has-resultssearch trial -c melanoma --has-resultsget trial <nct_id>get trial NCT04280705get trial <nct_id> locationsget trial NCT04280705 locations --limit 20
Pathways & Enrichment
Command Example search pathway "<name>"search pathway "MAPK signaling"get pathway <id>get pathway hsa04010pathway drugs <id>pathway drugs hsa04151enrich <gene list>enrich TP53,EGFR,BRAF,KRAS
Phenotypes
Command Example search phenotype "<symptoms>"search phenotype "seizure, developmental delay"search phenotype "HP:... HP:..."search phenotype "HP:0001250 HP:0001263"
GWAS
Command Example search gwas -g <gene>search gwas -g APOEsearch gwas --trait "<text>"search gwas --trait "body mass index"get gwas <id>get gwas GCST90018969
Cross-Entity Search
Command Example search all --gene <symbol> --disease <name>search all --gene BRAF --disease melanomadiscover "<free text>"discover "chest pain"suggest "<question>"suggest "What drugs treat melanoma?"
Protein & Structure
Command Example get protein <accession>get protein P00519protein structures <accession>protein structures P00519
Pharmacogenomics
Command Example get pgx <gene>get pgx CYP2D6search pgx --drug <name>search pgx --drug clopidogrel
Adverse Events
Command Example search adverse-event --drug <name>search adverse-event --drug metforminsearch adverse-event --vaccine <name>search adverse-event --vaccine "COVID-19 mRNA"
Operations
Command Example healthCheck API connectivity versionPrint server version batch <entity> <id1,id2,...>batch gene BRAF,EGFR,TP53 --sections funding
Data Sources
Source Coverage PubMed 36M+ biomedical citations Europe PMC Full-text, preprints, patents ClinicalTrials.gov 500K+ registered trials ClinVar 3M+ variant-disease annotations gnomAD Population allele frequencies OncoKB Cancer variant clinical actionability OpenFDA FDA drug/device adverse events UniProt Protein function & structure KEGG Metabolic & signaling pathways Reactome Curated pathway database PharmGKB Pharmacogenomics knowledge CPIC Clinical pharmacogenetics guidelines Monarch Initiative Cross-species phenotype ontology GWAS Catalog Genome-wide association studies cBioPortal Cancer genomics datasets DDInter Drug-drug interaction database CDC VAERS Vaccine adverse events EMA European Medicines Agency data WHO Prequalification Essential medicines quality NCBI GTR Genetic testing registry AlphaGenome Genomic variant predictions DisGeNET Gene-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 filesystem — docker 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 binary — build.sh verifies checksum from GitHub Releases
Auto-updating data caches — EMA, WHO, GTR feeds auto-refresh on stale detection
Health & Monitoring
hljs language-bash
Copy curl http://localhost:8080/health
curl http://localhost:8080/readyz
curl http://localhost:8080/
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 .