mcpField
S
sniff-mcp

sniff-mcp

Remote
sniff.worldScience & Education0Updated 2w ago

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

  1. 01Query breed-stratified variant frequencies
  2. 02Retrieve variant and gene annotations
  3. 03Search breeds and genomic variants
  4. 04Explore variant-gene-disease relationships
  5. 05Get cited answers or an abstention

Use cases

  1. 01Compare a variant across dog breeds
  2. 02Explore variants associated with a gene
  3. 03Search genomic data in natural language
  4. 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.

Endpointhttps://mcp.sniff.world/mcp/
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

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 README

sniff-mcp — agent-callable canine genomics

PyPI npm MCP Registry DOI Data: CC-BY-4.0

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) — 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)
  • 🌐 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
EndpointWhat it returns
GET /v1/variant/{pos}single variant: AF, popmax, consequence, gene, Pangolin, phyloP
GET /v1/variant/{pos}/contextthe joined query — everything about a variant in one call
GET /v1/breed/{breed}breed profile (top variants, geometry, nearest breeds)
GET /v1/breed/{breed}/nearestgenetically 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/searchfiltered discovery across all 9.67M variants
GET /v1/metadatarelease, 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

Markdown supported

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.