About sniff-mcp
sniff-mcp provides agents and apps with canine genomic reference data across breeds, variants, genes and diseases. Responses include citations and provenance, and disease relevance is explicitly unproven; it is a research resource, not a diagnostic tool.
Key features
- 01Query breed-stratified variant frequencies
- 02Retrieve variant and gene annotations
- 03Search breeds and genomic variants
- 04Explore variant-gene-disease relationships
- 05Get cited answers or an abstention
Use cases
- 01Compare a variant across dog breeds
- 02Explore variants associated with a gene
- 03Search genomic data in natural language
- 04Support canine genetics research
MCP support
Exposes canine genomic queries and grounded Q&A to MCP clients through a hosted Streamable HTTP server. Its tools include `ask` and `disease_bridge`, and responses carry citations and provenance.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.sniff.world/mcp/claude mcp add --transport http world-sniff-sniff https://mcp.sniff.world/mcp/{"mcpServers":{"world-sniff-sniff":{"type":"http","url":"https://mcp.sniff.world/mcp/"}}}Open in Cursor{"servers":{"world-sniff-sniff":{"type":"http","url":"https://mcp.sniff.world/mcp/"}}}Open in VS Code{"mcpServers":{"world-sniff-sniff":{"type":"http","url":"https://mcp.sniff.world/mcp/"}}}{"mcpServers":{"world-sniff-sniff":{"serverUrl":"https://mcp.sniff.world/mcp/"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEsniff-mcp — agent-callable canine genomics
The reference layer for dog DNA. A live, open API + MCP server over the Sniff Atlas — breed-stratified allele frequencies for 9,667,790 variants genome-wide across 188 dog breeds (CanFam4), with SnpEff annotation, Pangolin splice values, Zoonomia phyloP conservation, and a variant ⇄ gene ⇄ breed ⇄ disease knowledge graph. It assigns no pathogenicity to any variant. Every response carries its own citation + provenance.
Building anything with dogs, breeds, or canine health? This is the data layer. No key, no signup — point your agent or app at it and go.
- 🔌 MCP endpoint:
https://mcp.sniff.world/mcp/(Streamable HTTP; the current tool list is served at/v1/metadata) — includingask, a grounded canine-genetics Q&A that answers only from cited data or honestly abstains (no hallucinated dog-health advice), anddisease_bridge(inherited-disease atoms with ACMG-style pathogenicity grades + the dog⇄human homolog) - 🌐 REST API:
https://api.sniff.world/(OpenAPI docs ·llms.txt) - 📚 Dataset: 10.5281/zenodo.20566358 (CC-BY-4.0)
Add it to your coding agent (copy-paste)
The hosted server is open and needs no auth. Pick your tool:
Claude Code
claude mcp add --transport http sniff https://mcp.sniff.world/mcp/
Cursor / Windsurf / VS Code — add to your MCP config (.cursor/mcp.json, mcp.json, etc.):
{
"mcpServers": {
"sniff": { "url": "https://mcp.sniff.world/mcp/" }
}
}
Claude Desktop or any stdio-only client (uses the hosted server via a local bridge):
{
"mcpServers": {
"sniff": { "command": "npx", "args": ["-y", "sniff-mcp"] }
}
}
That's it. Ask your agent: "What's the frequency of CPT2 5:56189113 across breeds?" or "Find HIGH-impact variants in DLA genes."
Use the REST API (for web apps)
No SDK needed — it's plain HTTP/JSON.
curl https://api.sniff.world/v1/variant/5:56189113
{
"variant_id": "5:56189113", "ref": "A", "alt": "G",
"global_af": 0.0185, "popmax_af": 0.591, "popmax_breed": "akita",
"consequence": "missense_variant", "impact": "MODERATE",
"gene": "CPT2", "phylop_241way": 6.36,
"provenance": { "dataset_doi": "10.5281/zenodo.20566358",
"predicted_disease_relevance": "UNPROVEN", "...": "..." }
}
// JavaScript / TypeScript
const r = await fetch("https://api.sniff.world/v1/variant/5:56189113/context?breed=akita");
const ctx = await r.json(); // frequency + annotations + gene + cross-breed + provenance
| Endpoint | What it returns |
|---|---|
GET /v1/variant/{pos} | single variant: AF, popmax, consequence, gene, Pangolin, phyloP |
GET /v1/variant/{pos}/context | the joined query — everything about a variant in one call |
GET /v1/breed/{breed} | breed profile (top variants, geometry, nearest breeds) |
GET /v1/breed/{breed}/nearest | genetically nearest breeds (PCA distance) |
GET /v1/gene/{symbol} | variants in a gene, ranked by impact |
GET /v1/semantic?q= | natural-language search ("ancient arctic sled dogs") |
GET /v1/search | filtered discovery across all 9.67M variants |
GET /v1/metadata | release, DOI, counts, scope banner |
Positions are CanFam4 chrom:pos (e.g. 5:56189113). Full schema: https://api.sniff.world/openapi.json.
Self-host (optional)
uvx sniff-mcp # run the MCP server locally (needs the release data on disk)
pip install sniff-mcp # or install into your env
See ARCHITECTURE.md and Dockerfile. The hosted endpoint is the easy path; self-hosting is for air-gapped or high-volume use.
What it is (and isn't)
Built from CanVAS (14,478 dogs, Beagle-imputed, MAF≥1%) plus projected community cohorts. Annotations are not classifications: every response is flagged predicted_disease_relevance: "UNPROVEN", and Pangolin values are a third-party model's output, not validated in dogs. This is a research and discovery resource, not a clinical diagnostic. The scope (common + low-frequency variants, MAF≥1%) and the UNPROVEN caveat ride in every response's provenance block, so anything an agent quotes stays honest and self-citing.
Citation
Gehring, M. (2026). Sniff Atlas. Zenodo. https://doi.org/10.5281/zenodo.20566358 (CC-BY-4.0)
@dataset{sniff_atlas_2026,
author = {Gehring, Matt},
title = {Sniff Atlas},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.20566358},
url = {https://sniff.world}
}
Code MIT · Data CC-BY-4.0 · world.sniff/sniff-mcp · https://sniff.world
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.