
DeepDNA local
ai.deepdnaPublished by deepdna.aiv0.1.2Updated Oct 30, 2026
Reads a raw DNA file on your computer and reports the variants DeepDNA curates, with sources.
The publisher's own server: DeepDNA
Overview
Local Python package that reads a raw consumer DNA file on your machine and reports what it shows at DeepDNA-curated pharmacogenomic positions, with cited…
- What you can do
- Read a raw DNA export (23andMe, AncestryDNA, MyHeritage/FamilyTreeDNA .txt, .csv or .zip) and report the state at each curated position, with copy counts where the record allows it
- Limit the reading to named genes, and supply sex only when chromosome X positions such as G6PD need it
- Look up curated guidance for a gene, optionally for one drug, from the public API, sending only the gene and drug names
- Check the file's strand before counting ambiguous A/T and C/G positions
- When to use it
- Useful when someone has a raw consumer genotyping file and wants an assistant to show what it says at curated pharmacogenomic positions, with the guideline sources behind each record, without uploading the file anywhere.
- Requirements
- Runs locally over stdio via uvx from the PyPI package deepdna-mcp; needs uv installed and network access to the DeepDNA public API for gene and drug lookups. No account, API key or environment variables are declared. VCF files are not supported.
Installation
In SourceWeft
- Open DeepDNA local in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
DeepDNA MCP server
A remote Model Context Protocol server that gives AI agents cited pharmacogenomic and gene-variant lookups, so answers can quote CPIC and DPWG guidance and its sources. This repository also holds a local package that reads a raw DNA file on the user's own computer; nothing from the file is sent to DeepDNA, but what the package reports becomes part of the conversation with the AI model.
Streamable HTTP, stateless, no API key, no account. Listed in the official MCP registry as ai.deepdna/knowledge.
Educational information only, not medical advice. The server reports what curated sources and guidelines say about a gene, a variant or a drug–gene pair. It does not diagnose, prescribe or recommend a dose.
Tools
All five tools are read-only.
Two prompts, medication_review and explain_variant, package the common questions for clients that show MCP prompts.
Coverage today is 12 genes: CYP2C19, CYP2C9, CYP2D6, SLCO1B1, VKORC1, UGT1A1, G6PD, MTHFR, COMT, HFE, APOE and BRCA1, with 51 curated drug–gene pairs across 11 of them: 40 cite a CPIC or DPWG guideline, the rest a drug label or the primary literature; the basis field in check_medications says which (guideline is null, or "drug label", when no guideline exists). It is a small, reviewed set, not a mirror of PharmGKB/ClinPGx. Every record lists its sources. The level field (the guideline's evidence grade) is null for every pair today.
Connect
Claude Code
Cursor (~/.cursor/mcp.json) and other clients that use an mcpServers file:
VS Code (.vscode/mcp.json):
Claude Desktop and claude.ai: add https://deepdna.ai/mcp as a custom connector.
Gemini CLI (installs the remote, read-only server https://deepdna.ai/mcp as an extension, not the local package; gemini-extension.json is in this repo):
Try it without a client
The answer carries the CPIC recommendation for clopidogrel by CYP2C19 metabolizer group, the sources it was written from, and the disclaimer. The same data is available as plain REST, documented in the API docs and the OpenAPI spec:
Read a raw DNA file on your own computer
The remote server takes no genotype: its tools have no field for one. For a raw DNA file there is a local package in this repository. It reads the file on the user's computer and reports what it shows at each position DeepDNA curates, with the cited records. Nothing from the file is sent to deepdna.ai: the package downloads the same public records for every user, and lookup_drug_gene sends only the gene and drug names. What read_dna_file returns (the letters and counts at the curated positions) becomes part of the conversation with the AI model your client uses, under that provider's terms.
Claude Code (needs uv; the package is on PyPI):
The plugin/ folder packages the same command as a Claude plugin, for Claude Code and for Cowork sessions on the user's computer.
Clients that use an mcpServers file (if the client cannot find uvx, put its full path, from which uvx, in command):
- Each position gets one of four states:
read,no_call,not_in_file, orunexpected_letters(letters that fit neither the record nor its complement). A missing or unreadable position is unknown, never normal. - For positions the record marks as
countable(no phasing or other variants are needed to read them), it gives how many copies of the variant allele the file shows, with the record's text and sources. geneslimits the answer to what the user asked about. APOE, BRCA1 and HFE are disease-risk genes: they are read only when named ingenes, so the user chooses what to learn.sexis needed only for some chromosome X positions (G6PD).- It checks the file's strand first: at least three positions that are not A/T or C/G must agree, and none disagree. A/T and C/G positions, whose two letters look the same on either strand, are counted only on a confirmed strand.
A count at one position is not a metabolizer status, a diplotype, a diagnosis or a dose. The tools tell the model never to suggest starting, stopping or changing a medication: that stays with the prescriber. VCF files are not supported.
Try it with: "My 23andMe file is at /Users/me/Downloads/genome.txt. What does it show at the CYP2C19 positions DeepDNA curates, and what do the sources say about clopidogrel?" (on Windows, a path such as C:\Users\me\Downloads\genome.txt).
What it is not
- The remote server does not read DNA files. DeepDNA does not parse DNA files on its servers; to read one, use the local package above. A remote lookup carries a gene symbol, an rsID or a drug name. Its tools have no genotype field, and an undeclared argument is refused and not used. The alleles it reports are on the plus strand of GRCh37, as 23andMe raw data reports them.
- Neither server calls phenotypes or doses. Turning a genotype into a metabolizer status needs phasing and the other variants in the gene, which a single lookup or a chip file does not give. Tools such as PharmCAT do that from a VCF.
- Remote usage is counted, people are not. Each request to the remote server is counted (method, tool, the lookup label described below, whether there was an answer, the client's name and version, its user-agent, a country code). IP addresses, request bodies and medication lists are not stored. A value typed into a declared field is recorded only as a short lookup label: an rsID in the form rs123, a gene from a fixed list of known pharmacogenes, or a drug DeepDNA covers; anything else, whatever it is, is recorded as "(other)". Please don't type a personal genetic result into these fields. See the privacy policy. The local package's downloads are ordinary requests to the public API, with the user-agent
deepdna-mcp-local/<version>. - A consumer chip is not a clinical test. Arrays are reliable for common variants and much less so for rare ones; anything that could affect a health decision needs a validated test and a clinician.
Links
- Docs: https://deepdna.ai/docs/#mcp
- Walkthrough with real outputs: https://deepdna.ai/blog/pharmacogenomics-mcp-server/
- Reading a 23andMe file with Claude using the local package, step by step: https://deepdna.ai/blog/read-23andme-file-with-claude/
- Worked example in Python, where your own code goes from a raw DNA file to CPIC phenotypes (neither server does this step): https://deepdna.ai/blog/pharmacogenomics-raw-dna-python/
- Terms: https://deepdna.ai/terms/ · Privacy: https://deepdna.ai/privacy/
This repository holds the documentation and the local package; the remote server is hosted by DeepDNA. Questions and bug reports go in the issues; please don't post a raw DNA file, genotypes or medications there.
Written with AI assistance.
Source: README.md at commit d835136
Tools
0Version history
2- v0.1.2LatestOct 29, 2026
- v0.1.1Oct 18, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts