world.sniff/sniff-mcp
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http sniff-mcp 'https://mcp.sniff.world/mcp/'
{
"mcpServers": {
"sniff-mcp": {
"type": "http",
"url": "https://mcp.sniff.world/mcp/"
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
sniff-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
Frequently asked questions
What is world.sniff/sniff-mcp?
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
How do I install world.sniff/sniff-mcp?
It runs as a remote server. In Claude Code: claude mcp add --transport http sniff-mcp 'https://mcp.sniff.world/mcp/'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does world.sniff/sniff-mcp need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is world.sniff/sniff-mcp open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains world.sniff/sniff-mcp?
It is published by Sniffscore. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.