The Short Answer
There is no single best pharmacogenomics MCP server. Which one fits depends on what you start from:
- A VCF, and you need star alleles (the named versions of a gene, like
*2), diplotypes and phenotypes: PharmCAT, which is not an MCP server. - A consumer raw file, and you want one local report with star-allele calls: gnomancer, which runs PharmCAT on your machine behind an MCP server; read PharmCAT's note on consumer data first.
- A diplotype or phenotype from a lab: the cyanheads CPIC server looks up CPIC's published recommendation for it, which is not a clinical interpretation.
- A wider biomedical question with pharmacogenomics as one part: BioMCP covers far more ground than any server built for this one topic.
- Raw ClinPGx records and datasets: clinpgx-link or the ClinPGx MCP Server.
- A medication list and no genotype at all: DeepDNA's
check_medicationssays which drugs have a gene record, with its basis and sources (setup). - A consumer file and you only want to see what it shows at specific positions, with no phenotype call: deepdna-mcp, which sends DeepDNA nothing from the file.
DeepDNA, which we make, does something narrower. It is a remote server that takes no genotype and returns a small set of curated, cited drug–gene records. It also has a local package that reads a raw file and reports what the file shows at each curated position, without calling a phenotype.
Everything below is as of 8 November 2026. Every claim about another project comes from that project's own repository or documentation, linked where it is made. We did not benchmark anyone's output.
How to Read the Comparison
Two things split these tools more than anything else: whether they take a genotype at all, and whether they turn one into a phenotype.
Some servers only answer questions about genes, drugs and variants; others take a raw DNA file, a VCF or a diplotype (the pair of gene versions a person carries, written like *1/*2). Once a tool takes a genotype, where it runs and who receives the data start to matter.
Working out a metabolizer status takes every relevant variant in the gene, phasing (knowing which variants sit on the same copy of the chromosome) and, for some genes such as CYP2D6, copy number, so looking up a diplotype someone else has called is a different job from calling one yourself from raw data. The tables keep the two apart. Release dates in Part 2 are there because this field moves fast: check a repository before you depend on it.
"Not described" means the project's own docs say nothing either way, so we don't guess.
The Comparison, Part 1: What Each Tool Does
| Tool | What it is | Runs | Takes a genotype? | Genotype → phenotype? |
|---|---|---|---|---|
| DeepDNA remote server | MCP server with cited drug–gene, gene and rsID records, and a medication screen | Remote | No: its tools have no genotype field | No |
| deepdna-mcp (DeepDNA local package) | MCP server that reads a consumer raw DNA file | Local | Yes: 23andMe, AncestryDNA or MyHeritage/FTDNA file; no VCF | No: reports what the file shows at each curated position |
| BioMCP | CLI and MCP server over 72 biomedical sources, with a pgx entity |
Local, or your own HTTP server | Not in its PGx docs | Not described |
| pharmacogenomics-guidelines-mcp-server (cyanheads) | MCP server over the CPIC database | Remote (hosted) or local | Yes: a diplotype, phenotype or activity score you supply | Looks up a supplied diplotype in CPIC's tables; no calling from raw data |
| gnomancer | Local report for raw DNA files, also an MCP server | Local | Yes: files from five consumer vendors, or a VCF | Yes, through PharmCAT, marked provisional |
| PharmCAT | The reference genotype-to-phenotype tool; not an MCP server | Local (Java or Docker) | Yes: a VCF, plus "outside calls" | Yes: star alleles, diplotypes, phenotypes |
| ClinPGx MCP Server (QuentinCody) | MCP server over the ClinPGx API | Remote (hosted) | Not described | Not described |
| clinpgx-link | MCP server over the ClinPGx and CPIC APIs and about 120 ClinPGx datasets | Remote (hosted) or self-hosted | Not described | Not described |
| OpenPGx | A JSON format for PGx studies, plus an MCP server that reads a raw file | Local or remote (hosted) | Yes: 23andMe .txt or Genera .csv | Per SNP: each study file maps a genotype to a phenotype |
| pgx-mcp | MCP server over PharmGKB, ClinVar, gnomAD, Open Targets and ClinicalTrials.gov | Local | Yes: a diplotype, in its consultation tool | Not described |
The Comparison, Part 2: Sources, Licence, Cost and Maintenance
| Tool | Data sources | Licence | Cost and key | Maintainer · latest release |
|---|---|---|---|---|
| DeepDNA remote server | 84 curated drug–gene pairs across 16 of its 17 genes; 73 cite a CPIC or DPWG guideline, the rest a drug label or the literature | Records under DeepDNA's terms; cited sources keep their own | Free, no key, no account | DeepDNA (based in Spain) · registry 1.3.1, 29 Oct 2026 |
| deepdna-mcp | The same public records, downloaded | MIT | Free, no key | DeepDNA · 0.1.3, 7 Nov 2026 |
| BioMCP | For pgx: CPIC and PharmGKB |
MIT code; upstream terms govern the data | Free; most commands need no key, some optional keys | GenomOncology · v0.9.3, 18 Oct 2026 |
| cyanheads | CPIC Database API, ClinPGx testing labels | Apache-2.0 code; CPIC licence and ClinPGx policy for the data | Free, no key | cyanheads · v0.3.0, 28 Oct 2026 |
| gnomancer | PharmCAT, ClinVar, haplogroup and trait tools | MIT; the tools it downloads keep their own | Free | codebase · v0.5.1, 3 Nov 2026 |
| PharmCAT | CPIC guidelines, ClinPGx-annotated DPWG guidelines and FDA labels | MPL-2.0 | Free | Stanford University and University of Pennsylvania · v3.4.0, 14 Jul 2026 |
| ClinPGx MCP Server | ClinPGx API | No licence file in the repository | No key in its setup | QuentinCody · no tagged releases; last commit 29 Aug 2026 |
| clinpgx-link | ClinPGx and CPIC APIs and bulk downloads | MIT code; data under upstream terms, research use only | No key in its setup | berntpopp (GeneFoundry) · v0.1.5, 20 Oct 2026 |
| OpenPGx | 118 study files with PMID or DOI | Apache-2.0 format, MIT code | Free, no account | open-pgx · npm 0.4.1, 13 Apr 2026 |
| pgx-mcp | PharmGKB (including CPIC and DPWG guidelines), ClinVar, gnomAD, Open Targets, ClinicalTrials.gov | MIT | Free; optional NCBI key | Julius-Schmidt · 0.1.0, 24 Feb 2026 |
Release dates are from each project's GitHub releases, or from npm or PyPI where there is no GitHub release. DeepDNA's remote server has no package, so its row gives the registry version.
The Tools, One by One
DeepDNA remote server
A remote server at https://deepdna.ai/mcp, over Streamable HTTP, free, with no key and no account. It has five read-only tools: list_genes, lookup_gene, lookup_variant, lookup_drug_gene and check_medications. They take gene symbols, rsIDs and drug names. The tools have no genotype field, and an argument a tool doesn't declare, such as a genotype, is refused and not used. Each drug–gene record says what its guideline, drug label or study says for the phenotype groups or genotypes it covers, with its sources and CPIC's level for the pair where CPIC has rated it. Records can include the dose adjustments a guideline gives for a phenotype group, but the tools do not work out a metabolizer status or a dose for a person. Coverage on 8 November is 17 genes and 84 pairs (live list). Setup for each client is on the connect page, and a worked example is in our walkthrough.
deepdna-mcp (DeepDNA local package)
A free MCP server on PyPI that runs on the user's own computer. It reads 23andMe, AncestryDNA and MyHeritage/FamilyTreeDNA exports; VCF files are not supported. For each curated position it reports what the file shows and, where a position can be read on its own, how many copies of the variant allele it holds. A missing or unreadable position is reported as unknown, never as normal. Nothing from the file is sent to DeepDNA, but what the package reports becomes part of the conversation with the AI model, under that provider's terms. It does not work out a metabolizer status, a diplotype or a dose (README; step-by-step setup).
BioMCP
Maintained by GenomOncology, BioMCP is one command-line binary that is also an MCP server and reaches 72 biomedical sources, from PubMed and ClinVar to ClinicalTrials.gov. Its pgx entity queries CPIC and PharmGKB: search by gene or drug, filter by CPIC level, and fetch interactions, dosing recommendations, allele frequencies, guidelines or PharmGKB annotations. It installs from PyPI (as biomcp-cli; its README warns that the biomcp package is unrelated), Homebrew, Docker, a Claude Code plugin or a Claude Desktop extension. It runs as a local stdio server, or you can host it yourself over HTTP with biomcp serve-http. If pharmacogenomics is only one slice of your question, this is the one.
pharmacogenomics-guidelines-mcp-server (cyanheads)
Six read-only tools over the public CPIC Database API, with ClinPGx testing labels and guideline links. You can search gene–drug pairs, fetch guidelines, look up a diplotype or HLA allele status in CPIC's tables, and match prescribing recommendations against gene results you supply. Its README is careful about the limits: matching uses only the results you give it, a gene you leave out is never assumed normal, and no result is calculated. There is a public hosted endpoint and a local npx install, and no key. The README notes that the hosted instance passes queries on to the CPIC API, and suggests running your own instance for patient data. A good fit if you already have a lab diplotype.
gnomancer
A local tool that turns a raw file from AncestryDNA, 23andMe, MyHeritage, FamilyTreeDNA or LivingDNA, or a VCF, into one HTML report: haplogroups, about 110 trait sites, a ClinVar scan and PharmCAT pharmacogenomics. It is also an MCP server (uvx gnomancer serve). Its tools page lists PharmCAT for CPIC/PharmGKB star-allele calling, and its pharmacogenomics tool returns diplotypes and phenotypes per gene, marked provisional because untyped positions are assumed reference. The PharmCAT step needs Java 17 or later, and the first run downloads about 250 MB of tools and references. Its README says only derived results reach the assistant, and it links a clinical study (Tandy-Connor et al., 2018) in which 40% of variants found in consumer raw data and referred for clinical confirmation were false positives. Read its calls as provisional, as it says itself.
PharmCAT
Not an MCP server, but the tool the others are measured against. PharmCAT reads a VCF, infers star alleles and diplotypes, predicts phenotypes, and reports the matching recommendations from CPIC guidelines, ClinPGx-annotated DPWG guidelines and FDA labels. It is managed at Stanford University and the University of Pennsylvania, has peer-reviewed methods and tutorial papers, and its own docs are frank about its limits. It attempts to match 21 genes. CYP2D6, HLA-A, HLA-B and MT-RNR1 need a diplotype from an outside caller. A research mode for CYP2D6 exists, but its FAQ says those calls should not be used clinically. The same FAQ says PharmCAT is not tested against consumer genotyping data, that such data has limited overlap with its gene definitions, and that it works best with good-coverage whole-genome data. Nothing else on this list replaces it, and gnomancer runs it underneath.
ClinPGx MCP Server (QuentinCody)
A hosted server on Cloudflare Workers over the ClinPGx API, covering CPIC and DPWG dosing guidelines, clinical annotations and drug labels. Besides gene, drug and annotation lookups, it has a "code mode" in which the model writes JavaScript against the API. Large responses are staged into a per-session SQLite database that the model can query with SQL. Its README describes it as one of more than 100 servers in a larger Bio MCP monorepo.
clinpgx-link
Thirteen tools over the ClinPGx and CPIC APIs, ClinPGx website routes and local SQLite snapshots of about 120 ClinPGx datasets. Each answer carries source URLs and digests, and the server keeps to 2 requests per second upstream. It has a hosted endpoint and runs only over Streamable HTTP. Its README says plainly that it is for research use only and is not clinical decision support.
OpenPGx
A format and an MCP server. Each gene–drug study is one JSON file with a PMID or DOI and an interpretation for each genotype at each SNP. Its README reports 118 studies, 109 genes and 219 drugs, plus disease risks and traits. Its nine tools include upload_genome (23andMe or Genera files) and check_medication, which accepts brand names and typos. It runs locally through npx, or on a hosted endpoint. The README says the hosted server parses the genome server-side and holds it in memory for a 30-minute session without storing it permanently, and recommends the local install for maximum privacy.
pgx-mcp
Ten local tools over PharmGKB, ClinVar, gnomAD, Open Targets and ClinicalTrials.gov, installed from PyPI. Its pgx_consultation tool takes a gene and a diplotype and gathers gene information, clinical annotations, CPIC and DPWG guidelines, ClinVar entries for each allele and related trials in one report. An NCBI key is optional. Its roadmap lists PharmVar star-allele lookups and the FDA pharmacogenomic biomarker table.
Where DeepDNA Is Weaker
- Coverage is small. 17 genes and 84 drug–gene pairs across 73 drugs. CPIC's own database rates 574 gene–drug pairs and lists 29 guidelines, and several of those guideline genes are not in DeepDNA at all: HLA-A, HLA-B, CYP2B6, NAT2 and ABCG2, among others. Servers that query CPIC or ClinPGx live will answer questions we can't.
- No genotype-to-phenotype calling. This is deliberate, but it is a gap. A genotype is not a metabolizer status, and we don't try to make one into the other. PharmCAT does, from a VCF.
- The remote server can't use a genotype at all. If you already have a diplotype, the cyanheads server can match it to CPIC's recommendation. DeepDNA gives you what the source says for the groups it covers and leaves the person's own result out of it.
- The local package reads three consumer export formats (MyHeritage and FamilyTreeDNA share one) and no VCF, and only at the positions we curate.
- The summaries are ours. Each record is our wording of the sources it cites. The sources are the authority, not our summary, so check them.
What we think DeepDNA does well is narrow: a medication screen that needs no genotype, records that say whether they rest on a CPIC or DPWG guideline, a drug label or the literature, and a remote server that has nowhere to put a genotype. DeepDNA is based in Spain, under Spanish and EU law. If that is your question, setup for each client is on the connect page, and coverage changes are published on the changelog. If it isn't, one of the tools above is likely the better fit. And if you maintain one of these projects and we got something wrong, tell us in an issue.
Frequently Asked Questions
What is the best pharmacogenomics MCP server?
There isn't one best server; it depends on what you start from. PharmCAT (not an MCP server) is the reference for calling phenotypes from a VCF, gnomancer wraps it for consumer files, the cyanheads server matches a lab diplotype to CPIC, BioMCP covers pharmacogenomics inside a much wider biomedical toolset, and DeepDNA screens a medication list without any genotype. The list at the top of this page matches each starting point to a tool.
Which pharmacogenomics MCP servers run remotely with no API key?
As of 8 November 2026, DeepDNA (https://deepdna.ai/mcp), the cyanheads CPIC server, the QuentinCody ClinPGx MCP Server and clinpgx-link all list a hosted endpoint with no key in their setup. OpenPGx also lists a hosted endpoint, which parses an uploaded genome on its server according to its README. BioMCP can run as an HTTP server that you host yourself.
Is PharmCAT an MCP server?
No. PharmCAT is a Java tool, also available as a Docker image, that reads a VCF and reports star alleles, diplotypes, phenotypes and the matching CPIC, DPWG and FDA-label recommendations. gnomancer runs PharmCAT on your own computer and exposes the results through an MCP server.
Can any of these tools tell me my metabolizer status from a 23andMe file?
gnomancer produces PharmCAT calls from consumer files and marks them provisional, and OpenPGx interprets genotypes SNP by SNP from its study files. PharmCAT's own FAQ says it is not tested against consumer genotyping data, which covers few of the positions it uses. DeepDNA does not call a metabolizer status. Anything that could change a prescription needs a validated clinical test and a prescriber or pharmacist.
Does DeepDNA receive my genotype or my DNA file?
No. The remote server's tools take gene symbols, rsIDs and drug names, and an extra argument such as a genotype is refused and not used. The local package reads the file on your computer and sends DeepDNA nothing from it. What it reports does become part of the conversation with your AI model, under that provider's terms.
This article is for educational purposes only and does not constitute medical advice. It describes software tools as their own documentation described them on 8 November 2026 and does not endorse any of them for clinical use. Decisions about medicines belong to a prescriber or pharmacist, ideally with a validated clinical test.
This article was created with AI assistance and reviewed by the DeepDNA editorial team.
Ask your AI agent
DeepDNA is an MCP server and API for AI agents: cited records on genes, variants and drug–gene pairs, free and open, no key. Connect it to Claude, ChatGPT, Cursor or VS Code in one step. A free local package reads the curated positions of a raw DNA file on your own computer.
Connect the MCP server