BioMCP Server: Complete Guide (2026)
BioMCP is an open-source MCP server that hands your AI agent structured access to the biomedical web — PubMed and PubTator for literature, ClinicalTrials.gov for trials, MyVariant.info and OncoKB for genomic variants, and dozens more — behind one set of tools. This guide covers what it does, how its tools work, how to install it in any client, real workflow patterns, and the gotchas worth knowing before you point a model at a clinical database.

One-sentence definition
BioMCP is an open-source Model Context Protocol server, built by GenomOncology, that exposes dozens of biomedical databases — literature, clinical trials, and genomic variants — as tools an AI agent can call in plain language, with deduplicated identifiers and source attribution on every result.
If you have ever watched a model confidently invent a clinical trial number or cite a paper that does not exist, BioMCP is the fix for that class of failure: it grounds biomedical answers in real sources the agent actually queries.
Why it exists
Large language models are weakest exactly where biomedicine demands the most rigor. A model’s training data is frozen at a cutoff, biomedical knowledge moves weekly, and the cost of a confident wrong answer about a variant or a trial is not a typo — it is misinformation in a domain where people read it as fact.
GenomOncology’s CTO Ian Maurer framed the gap directly when the project launched: “Large language models are revolutionizing how we interact with information, but they face significant limitations when it comes to specialized biomedical knowledge.” The status quo before BioMCP was a developer hand-rolling HTTP clients against the PubMed E-utilities API, the ClinicalTrials.gov v2 API, and a half-dozen genomic services — each with its own auth, pagination, and identifier scheme — then gluing the results together by hand. BioMCP collapses that integration tax into one MCP server.
Mental model: the named pieces
Four pieces are worth holding in your head before you install anything.
Server
The biomcp binary
A single executable you run as biomcp serve (stdio) or biomcp serve-http (HTTP). It is also a standalone CLI you can use without any AI client.
Tools
Verb-shaped commands
Agent-facing actions like search, get, suggest, and enrich. The agent calls these by name; you rarely type them.
Entities
What you search over
Articles, trials, variants, genes, drugs, diseases. Each entity maps to one or more upstream databases behind the scenes.
Sources
The upstream APIs
PubMed, ClinicalTrials.gov, MyVariant.info, OncoKB, cBioPortal and dozens more. BioMCP deduplicates and attributes results across them.
The shape to remember: one server exposes a handful of tools, those tools operate on entities, and each entity is backed by real sources. The agent never sees the API sprawl — it sees a clean verb-noun surface.
Smallest end-to-end example
BioMCP ships as a CLI, so you can prove it works before you wire it into any agent. Install it, then run one search:
# Install the current build
uv tool install biomcp-cli
# Confirm it's on PATH
biomcp --version
# A cross-source search: BRAF in melanoma
biomcp search all --gene BRAF --disease melanomaThat last command fans out across literature, trials, and variant sources and returns counts plus matching records with their source identifiers attached. From there you drill into a single record:
# Pull ClinVar + population data for one variant
biomcp get variant "BRAF V600E" clinvar populationThe point of the CLI is that the tools an agent calls are the same ones you can run by hand — so when an agent trace looks wrong, you can reproduce the exact query in a terminal and see the raw result.
Install (every client)
There are three honest paths, in rough order of how most people use it:
- uv / pip:
uv tool install biomcp-cli(orpip install biomcp-cli). Gives you thebiomcpbinary on your PATH. - One-line installer:
curl -fsSL https://biomcp.org/install.sh | bash— fetches the prebuilt binary. Read anycurl | bashscript before you run it. - Claude Code plugin: add the marketplace with
/plugin marketplace add genomoncology/biomcpthen/plugin install biomcp@biomcp.
Once the binary exists, the MCP client config is the same everywhere — point your client at the biomcp command with the serve argument:
{
"mcpServers": {
"biomcp": {
"command": "biomcp",
"args": ["serve"]
}
}
}The install panel below pulls its config straight from our catalog, so it stays in sync with whatever the server ships. Pick your client row, copy the snippet, and BioMCP is live. One note on versions: the catalog entry reflects the biomcp-python package lineage, while the project has since been re-architected in Rust and the recommended install is now biomcp-cli with the biomcp serve command. Both run the same MCP server; the Rust build is the one the maintainers point new users at.
One-line install · BioMCP (Biomedical Database Integration)
Open server pageInstall
For HTTP-based clients, run the server in HTTP mode and connect to the local endpoint:
biomcp serve-http --host 127.0.0.1 --port 8080
# MCP endpoint: http://127.0.0.1:8080/mcp
# Health: http://127.0.0.1:8080/healthBrowse every client and its config path at mcp.directory/clients, or see the canonical server page at /servers/biomcp-biomedical-database-integration.
The tool surface
BioMCP keeps the agent-facing surface small and verb-shaped. The families that matter most:
search— discovery across biomedical sources for a given entity (articles, trials, variants, genes, drugs, diseases). The cross-entity formsearch allreturns counts to orient the agent before it drills in.get— focused detail retrieval for one entity by ID, optionally scoped to sections (e.g. a variant’s ClinVar or population data).suggest/discover— route a natural-language question to the right entity and resolve concepts to canonical IDs.enrich— gene-set enrichment via g:Profiler for a list of genes.batch— parallel multi-entity gets, so an agent can pull a list of records in one call instead of looping.studyfamily — local cBioPortal dataset analytics (cohort, survival, co-occurrence, comparison).
The design choice here is restraint. Rather than exposing one tool per upstream API — which would flood the agent with dozens of near-identical options — BioMCP routes everything through a few generic verbs and resolves the source internally. That keeps the tool-selection problem tractable for the model, which is the whole game with MCP servers that touch many back-ends.
Data sources
The breadth is the product. BioMCP fronts dozens of biomedical APIs; the ones you will actually lean on:
Literature
PubMed, PubTator3, Europe PMC, bioRxiv/medRxiv, Semantic Scholar. Identifiers (PMID, PMCID, DOI) are deduplicated across them.
Trials
ClinicalTrials.gov API v2 and the NCI Clinical Trials Search API for richer oncology filters.
Variants & genes
MyVariant.info, ClinVar, gnomAD, CIViC, OncoKB, cBioPortal, GWAS Catalog, AlphaGenome.
Beyond those it also reaches drug and disease sources (OpenFDA, ChEMBL, OpenTargets, Drugs@FDA, MyDisease.info, Monarch), pathway and enrichment tools (Reactome, KEGG, WikiPathways, g:Profiler, Enrichr), and protein structure (UniProt, InterPro, PDB, AlphaFold). The catalog server page files it under databases on our directory — which undersells it; this is closer to a biomedical meta-search than a single database.
What we got wrong
Three things bit us the first time we set BioMCP up.
We installed the wrong package and got a deprecated build. We reached for biomcp-python because that is what the older listings reference. It still installs and runs, but v0.7.3 is the final release of the Python server — the project has since been re-architected in Rust, shipping as biomcp-cli for fewer tokens, less context-window pressure, and more sources. If a tutorial tells you to pip install biomcp-python, it is describing the legacy line. Prefer biomcp-cli.
We tried to open the HTTP server to a remote machine and it refused us. serve-http ships with a DNS-rebinding guard that rejects non-loopback Host headers by default. This is a security feature, not a bug — but it means “run it on a box and hit it from my laptop” does not work out of the box. You have to deliberately configure the allowed hosts. We lost an hour assuming a firewall problem.
We assumed every source worked keyless. Most do — and that is genuinely nice. But a handful (OncoKB, NCI CTS, AlphaGenome, DisGeNET, and Semantic Scholar for richer output) want a free API key from the provider. When a search came back thin, the cause was usually a missing token, not a broken tool. Set the environment variables for the sources you care about before blaming the agent.
Workflow patterns
Where BioMCP earns its place in an agent toolbox.
Literature triage with real citations
❌ Wrong: ask the model “summarize recent BRAF melanoma trials” and trust the citations. It will invent plausible-looking NCT numbers.
✅ Right: let the agent call BioMCP’s search on articles and trials, then have it cite only the PMIDs and NCT IDs that came back. Every claim now traces to a source the tool actually returned.
Variant interpretation in context
A model carrying a conversation about a disease can move to “what is known about this variant’s clinical significance” and have the agent pull ClinVar and population frequency through get variant — keeping the disease context from earlier in the thread. Maurer specifically called out this conversational chaining as the point: start at a disease, move to trials, then to genetic factors, without losing the thread.
Cohort questions on local datasets
The study family runs survival and co-occurrence analytics against cBioPortal datasets, so an agent can answer “in this cohort, do these two mutations co-occur more than chance” without you writing the analysis code.
Common mistakes
Using biomcp-python for new setups
Root cause: stale listings. The Python package is feature-frozen at v0.7.3. Install biomcp-cli (the Rust build) for new work — it has more sources and a lighter token footprint.
Expecting a hosted remote endpoint
Root cause: most MCP servers you meet are hosted. BioMCP is self-host only. There is no public URL — you run biomcp serve locally or stand up your own serve-http instance.
Empty results from a keyed source
Root cause: a missing API key, not a broken tool. OncoKB, NCI CTS, AlphaGenome and a few others need a free provider token set as an environment variable. Most commands still work without any credentials.
Treating output as clinical advice
Root cause: forgetting the tool’s scope. BioMCP retrieves and attributes biomedical data for research. It is not a diagnostic system. Clinical decisions need validated tools and a human expert.
Performance & cost
Three concrete notes. First, cost: BioMCP itself is free and MIT-licensed, and most data sources are public APIs you query at no charge. Your spend is the LLM tokens the agent burns reasoning over results — which is exactly why the Rust rewrite matters.
Second, token footprint: the maintainers re-architected the server in Rust specifically to use fewer tokens and consume less context window than the Python build. For an agent that may chain several biomedical lookups in one session, tighter tool responses directly lower the per-session bill and reduce context-window pressure.
Third, rate limits: the upstream providers throttle. Setting the optional API keys (for NCBI, OpenFDA, Semantic Scholar) raises your ceiling on those sources. Without keys you share an anonymous quota and will see throttling under heavy agent use.
Who this is for — and who it isn’t
Use BioMCP if you are building an agent or assistant that needs to reason over biomedical literature, clinical trials, or genomic data with real source attribution — a research copilot, a trial-matching prototype, a variant-annotation helper, or a literature triage tool.
Skip it if you need a regulated clinical decision system, a hosted SaaS you do not have to self-host, or a general-purpose database server. BioMCP is deliberately scoped to biomedicine and deliberately local. If your need is generic structured data, browse the databases category or all MCP servers instead.
Community signal
BioMCP launched in April 2025 with a GenomOncology press release and a coordinated LinkedIn announcement, then picked up early hands-on use in the agent community. On Hacker News, a developer shipped a Show HN: A Medical Research Agent Built with BioMCP and Haystack, describing a build that “connects to ClinicalTrials.gov, PubMed/PubTator, and MyVariant.info using the BioMCP Server.” That is the canonical use shape: BioMCP as the data layer under a purpose-built research agent.
The contrarian note worth flagging is a naming collision. A separate, unrelated Node.js project — also called “BioMCP,” focused on RCSB Protein Data Bank structure analysis — shares the name. A community deep-dive (skywork.ai, “The Two BioMCPs”) untangles them: when someone says “BioMCP” without context, confirm whether they mean the GenomOncology platform covered here or the protein-structure server. This guide is about the GenomOncology one — the broad biomedical-database integration on our directory.
The honest limitation, acknowledged by the maintainers themselves: this is a retrieval and research tool, not a clinical-decision system. The same press release that announced BioMCP also previewed OncoMCP, a separate commercial product that adds patient-data organization and trial matching on GenomOncology’s precision-oncology platform — the clinical-grade workflows that the open-source BioMCP deliberately does not attempt.
The Verdict
Our Take
BioMCP is the cleanest way to give an AI agent honest access to the biomedical web, and it is free. Use it if you are building a research copilot or trial/variant tooling and you want answers grounded in real PubMed, ClinicalTrials.gov, and variant sources with citations. Install the Rust biomcp-cli build, not the legacy Python one. Skip it if you need a hosted endpoint, a generic database server, or anything that touches clinical decisions — that is OncoMCP’s lane, not this one’s.
The bigger picture
BioMCP opens a vertical that MCP has mostly ignored. Most of the directory is developer tooling — Git, CI, databases, browsers. Biomedicine is a domain where grounding matters more than almost anywhere, because the cost of a hallucinated answer is real, and where the public-data infrastructure (PubMed, ClinicalTrials.gov, the genomic resources) is unusually rich and unusually hard to integrate by hand.
The split between the free, open BioMCP and the commercial OncoMCP is the pattern to watch: an open-source server that handles public retrieval, with a paid layer for the regulated, patient-data, clinical-grade workflows on top. Expect more verticals — legal, finance, scientific instrumentation — to adopt the same shape as MCP matures. For the protocol itself, start with our What is MCP guide, then browse the full server catalog.
FAQ
What is BioMCP?
BioMCP is an open-source MCP server from GenomOncology that gives an AI agent structured, searchable access to biomedical data sources — PubMed/PubTator, ClinicalTrials.gov, MyVariant.info, OncoKB, cBioPortal and dozens more. It lets a model like Claude answer questions grounded in real literature, trials, and genomic data instead of stale training memory.
Is BioMCP free?
Yes. BioMCP is MIT-licensed and free to install and run. Most of its tools work with no credentials. A few data sources (OncoKB, NCI CTS, AlphaGenome, DisGeNET) need a free API key from the provider for full access. GenomOncology sells a separate commercial product, OncoMCP, but the open-source BioMCP itself is free.
What databases does BioMCP support?
Headline sources are PubMed and PubTator3 (literature), ClinicalTrials.gov and the NCI Clinical Trials Search API (trials), and MyVariant.info, ClinVar, gnomAD, CIViC and OncoKB (genomic variants). It also reaches Europe PMC, bioRxiv/medRxiv, cBioPortal, OpenFDA, ChEMBL, OpenTargets and many more — dozens of biomedical APIs behind one tool surface.
How do I install BioMCP?
The current Rust build installs with `uv tool install biomcp-cli` (or `pip install biomcp-cli`), then runs via the `biomcp serve` command in your MCP client config. There is also a one-line `curl -fsSL https://biomcp.org/install.sh | bash` installer and a Claude Code plugin. The install card below has the exact config for your client.
BioMCP vs the PubMed API — what's the difference?
The PubMed E-utilities API is a raw HTTP endpoint you have to script against, handle pagination for, and parse XML from. BioMCP wraps PubMed (plus dozens of other sources) as MCP tools an agent can call in plain language, deduplicates identifiers across sources, and keeps conversational context so a model can chain literature, trials, and variants in one session.
Can BioMCP run as a remote server?
It can serve over HTTP with `biomcp serve-http --host 127.0.0.1 --port 8080`, exposing an MCP endpoint at `http://127.0.0.1:8080/mcp` plus `/health` and `/readyz` probes. There is no public hosted endpoint — you self-host. By default the HTTP server guards against DNS-rebinding by rejecting non-loopback Host headers, so opening it to remote clients needs deliberate config.
Is BioMCP safe to use for clinical decisions?
No. BioMCP is a research and retrieval tool, not a diagnostic or clinical-decision system. It surfaces literature, trials, and variant annotations with source attribution, but the maintainers position it for AI assistants and agents doing research. Any clinical use needs a human expert and the regulated, validated systems that BioMCP is not.
Glossary
MCP (Model Context Protocol) — open standard from Anthropic for connecting AI clients to external tools and data over a common JSON-RPC wire format.
PubTator3 — an NCBI service that annotates PubMed/PMC articles with normalized biomedical entities (genes, diseases, variants).
ClinicalTrials.gov API v2 — the current programmatic interface to the U.S. registry of clinical studies.
MyVariant.info — an aggregator API that returns annotations for a genomic variant from many underlying sources.
OncoKB — a precision-oncology knowledge base of the clinical effects of cancer variants; needs a free token for full access.
cBioPortal — an open platform for exploring multidimensional cancer genomics datasets; BioMCP’s study tools run analytics against it.
stdio transport — the MCP server runs as a subprocess of the client and talks over standard input/output. BioMCP’s default via biomcp serve.
DNS-rebinding guard — a defense that rejects requests with unexpected Host headers, which is why serve-http blocks non-loopback clients by default.
OncoMCP — GenomOncology’s separate commercial product for clinical-grade patient data and trial matching, distinct from open-source BioMCP.
Sources
Primary
- BioMCP repository & README: github.com/genomoncology/biomcp (MIT, maintained by GenomOncology)
- Official site / docs: biomcp.org
- PyPI metadata (deprecation note, Python ≥3.10): pypi.org/project/biomcp-python
- Launch press release (Ian Maurer quote, April 10 2025): PRNewswire
Community
- Hacker News — Show HN: A Medical Research Agent Built with BioMCP and Haystack
- GenomOncology launch post on LinkedIn
- Contrarian / disambiguation — “The Two BioMCPs”: skywork.ai analysis
Internal
Protocol
What is the Model Context Protocol?
ReadKnowledge
Best Knowledge Base MCP Servers (2026)
ReadGuide
AWS MCP Server: Complete Guide (2026)
ReadFound an issue?
If something in this guide is out of date — a new install path, a renamed tool, a data source BioMCP added — email [email protected] or read more on our about page. We keep these guides current.