Gives your AI agent structured access to 9.7 million canine genetic variants across 188 breeds via the open Sniff Atlas. Exposes 15 MCP tools including variant lookup by position (CanFam4), breed-stratified allele frequencies, gene-to-variant mapping, and a grounded Q&A tool that answers only from cited data or abstains. Every response includes provenance metadata and flags computational pathogenicity predictions as unproven. The hosted endpoint at mcp.sniff.world needs no auth and runs over streamable HTTP. Reach for this when building anything involving dog genetics, breed health screening, or veterinary research tools where you need reproducible answers tied to primary frequency data and AI-scored variant impact.
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 across 188 dog breeds (CanFam4), calibrated AI pathogenicity (ESM2, AUC 0.935 vs OMIA), Pangolin splice, Zoonomia phyloP conservation, and a variant ⇄ gene ⇄ breed ⇄ disease knowledge graph. 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.
https://mcp.sniff.world/mcp/ (Streamable HTTP, 15 tools) — including ask, a grounded canine-genetics Q&A that answers only from cited data or honestly abstains (no hallucinated dog-health advice), and disease_bridge (inherited-disease atoms with ACMG-style pathogenicity grades + the dog⇄human homolog)https://api.sniff.world/ (OpenAPI docs · llms.txt)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."
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", "esm2_llr": -6.1, "deleteriousness_tier": "...",
"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 + pathogenicity + gene + cross-breed + provenance
| Endpoint | What it returns |
|---|---|
GET /v1/variant/{pos} | single variant: AF, popmax, consequence, gene, ESM2/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.
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.
Built from CanVAS (14,478 dogs, Beagle-imputed, MAF≥1%) plus projected community cohorts. Pathogenicity is computational — every prediction is flagged predicted_disease_relevance: "UNPROVEN". 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.
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