# world.sniff/sniff-mcp

> Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer

- name: world.sniff/sniff-mcp
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 87/100
- quality: 65/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/world.sniff%2Fsniff-mcp
- tools: https://api.protogrid.dev/v1/servers/world.sniff%2Fsniff-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "sniff-mcp": {
      "type": "http",
      "url": "https://mcp.sniff.world/mcp/"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 94
- freshness: 65
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-85% ~updated-111d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 65/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: ask (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); ask_the_graph (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); disease_bridge (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,306 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 50 (weight 15)

- pass `stability.changes`: 5 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 18, about 2,306 tokens to load them all
- tool set hash: 8be4ae321827f4d77cd75a1a7651b6d8
- tools last changed: 2026-10-14T12:02:32.492Z
- badge: [![protogrid quality](https://protogrid.dev/badge/world.sniff/sniff-mcp.svg)](https://protogrid.dev/servers/world.sniff/sniff-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-14 `variant_search` changed (description, inputSchema)
  - before: Filtered discovery over all 9.67M variants. Predicates (combine freely): esm_max (ESM2 LLR <=), phylop_min (phyloP >=), popmax_min (popmax AF >=), gene_in (list of gene symbols), consequence, impact (HIGH/MODERATE/LOW/MODIFIER). Returns total_count + a capped list (max 200). Note: popmax may be in a wild population (dingo/village) — check popmax_breed.
  - after: Filtered discovery over all 9.67M variants. Predicates (combine freely): phylop_min (phyloP >=), popmax_min (popmax AF >=), gene_in (list of gene symbols), consequence, impact (HIGH/MODERATE/LOW/MODIFIER). Returns total_count + a capped list (max 200). Note: popmax may be in a wild population (dingo/village) — check popmax_breed.
- 2026-10-14 `breed_summary` changed (description) **meaning changed**
  - before: Breed profile: top damaging common variants (ESM2<=-5 & breed AF>=5%), n_dogs, breed group. Descriptive only — not a health ranking.
  - after: Breed profile: n_dogs, breed group, genetic geometry and nearest breeds. Descriptive only — not a health ranking.
- 2026-10-14 `gene_summary` changed (description)
  - before: Variants in a gene (by gene symbol), ranked by impact then ESM2 damage. Paginated (limit, default 25); returns total_variants. Use af_min to filter by global AF.
  - after: Variants in a gene (by gene symbol), ranked by impact then allele frequency. Paginated (limit, default 25); returns total_variants. Use af_min to filter by global AF.
- 2026-10-14 `variant_lookup` changed (description)
  - before: Single-variant lookup by CanFam4 position: ref/alt, global + popmax AF, consequence, gene, ESM2/Pangolin/phyloP, deleteriousness tier, canonical URL, provenance.
  - after: Single-variant lookup by CanFam4 position: ref/alt, global + popmax AF, consequence, gene, Pangolin and phyloP annotations, canonical URL, provenance.
- 2026-10-14 `ask_variant_context` changed (description)
  - before: THE headline query. Given a CanFam4 position (e.g. '5:56189113'), return the variant's global + popmax frequency, breed-stratified cross-breed frequencies, ESM2/Pangolin/phyloP pathogenicity, gene context, linked diseases (v1.1), provenance, and deep links — in one call. Pass breed_context to also get that breed's AF + rank. cross_breed_full=True returns all 188 breeds (default: top_n).
  - after: THE headline query. Given a CanFam4 position (e.g. '5:56189113'), return the variant's global + popmax frequency, breed-stratified cross-breed frequencies, Pangolin and phyloP annotations, gene context, linked diseases (v1.1), provenance, and deep links — in one call. Pass breed_context to also get that breed's AF + rank. cross_breed_full=True returns all 188 breeds (default: top_n).

Full history: https://api.protogrid.dev/v1/servers/world.sniff%2Fsniff-mcp/changes

## Remotes

- https://mcp.sniff.world/mcp/ (streamable-http, auth none, reachable true, uptime30d 0.85)

## Packages

_none_

## Tools (18)

- `ask`: Ask Sniff a natural-language canine-genetics question and get a GROUNDED, CITED answer (or an honest
abstain). Covers inherited diseases (OMIA) and their human homologs (the dog<->human disease bridge),
breed disease/carrier risk, variant pathogenicity grades (AVCG; Boeykens et al. 2024, curated in OMIA),
longevity/life-expectancy (McMillan 2024), temperament (Darwin's Ark/Morrill 2022, with breed-explains-X%
caveats), and genetic diversity. The engine answers ONLY from cited Sniff atoms and returns
`abstained: true` if it lacks grounded data — it never guesses. Educational, not diagnostic
(carrier != affected; advise a vet). Returns {answer, citations:[atom_ids], abstained}. USE THIS for any
'what is X / does breed Y get Z / human equivalent of W' question; use the variant/breed/gene tools for
structured lookups by identifier.
- `ask_the_graph`: THE INSTRUMENT — ask a free-form CROSS-SPECIES genetics question and get FILTERED, HONEST HINTS (never a
confident guess). It compiles your question into a typed query plan over the dog<->human edge-graph, runs it
deterministically, and scores each answer PATH by its weakest edge — returning ranked hints with an evidence
TIER (fact / computational / inferred) + citations, or an honest ABSTAIN with a demand signal when the graph
can't answer. BEST FOR model-discovery / translational traversal: 'which dog breeds or genes model human
<disease>', 'what is the dog ortholog of <gene>', 'what dog disease is phenotypically like <human disease>'.
Answers are HYPOTHESIS-GENERATING, not clinical claims: a `fact` hint = an OMIA-curated model-of; a
`computational` hint = a conserved 1:1 dog ortholog (a candidate — never 'dogs get this disease'); `inferred`
= shared cross-species phenotype. Returns {plan (what it asked the graph), hints:[{answer, tier, score,
path (the cited edges), weakest_edge, provenance}], abstain, demand_signal}. Set narrate=true for a gated
one-line prose summary per hint (faithful-or-honest-template; it can never fabricate). Use `ask` instead for
owner-facing breed/disease/carrier questions; use THIS for human-disease -> dog-model cross-species queries.
- `ask_variant_context`: THE headline query. Given a CanFam4 position (e.g. '5:56189113'), return the variant's global +
popmax frequency, breed-stratified cross-breed frequencies, Pangolin and phyloP annotations, gene
context, linked diseases (v1.1), provenance, and deep links — in one call. Pass breed_context to also
get that breed's AF + rank. cross_breed_full=True returns all 188 breeds (default: top_n).
- `breed_similarity`: Genetic distance between two breeds (top-10-PC Euclidean). Lower = more genetically similar.
- `breeds_in_atlas`: List all 188 breeds with breed-stratified frequencies in the atlas.
- `breed_summary`: Breed profile: n_dogs, breed group, genetic geometry and nearest breeds.
Descriptive only — not a health ranking.
- `breed_variant_frequency`: Breed-stratified allele frequency. Give a breed (e.g. 'bernese_mountain_dog') plus either a
variant position or a gene symbol. Returns AF (+ rank) for the variant, or per-variant AFs in the gene.
- `disease_bridge`: The fused OMIA disease layer as cited atoms. Give a `disease` (name or 'OMIA:001870-9615') for its
genes, inheritance, human homolog (OMIM/Mondo bridge), and variant pathogenicity grade (AVCG, ACMG/AMP
5-tier, curated in OMIA) when graded. Or give a `breed` (e.g. 'doberman_pinscher') for the inherited
conditions documented in that breed with carrier frequency + confidence tier + grade. Every atom carries
its source + atom_id. Educational, not diagnostic.
- `disease_links`: A canine inherited disease (name or OMIA id) -> its governed OMIA clinical record: mode of inheritance,
causal gene(s), curated description (summary / clinical features / molecular genetics / pathology /
prevalence), clinical signs as HP/MP phenotype terms (-> Monarch), the human OMIM analog + Mondo id, and
the evidence base (peer-reviewed reference count + landmark study) -- plus molecular links (variants/breeds)
when the KG carries them. Sourced to OMIA (CC-BY); returns a canonical sniff.world URL. Dog-only.
Educational, not diagnostic. For fuzzy candidates use search_diseases.
- `disease_lookup`: Look up a canine inherited disease by name or OMIA id -> its governed OMIA clinical record (inheritance,
causal gene(s), curated description, clinical signs, human OMIM analog + Mondo id, evidence base). Sourced
to OMIA (CC-BY); returns a canonical sniff.world URL. Dog-only. For candidate disambiguation use
search_diseases; for a disease's molecular links use disease_links.
- `genes_indexed`: Top genes by number of variants in the atlas (discovery aid).
- `gene_summary`: Variants in a gene (by gene symbol), ranked by impact then allele frequency. Paginated (limit, default 25);
returns total_variants. Use af_min to filter by global AF.
- `metadata`: Atlas metadata: release, DOI, assembly, variant/breed counts, scope banner, and the RPC catalog.
- `nearest_breeds`: Genetically nearest breeds to the given breed (top-10-PC Euclidean in canine genetic space).
Answers 'what breeds are most genetically similar to X?' via the PCA-256 breed co-embedding.
- `search_diseases`: Search the canine disease catalogue by free text -> ranked candidates [{omia_id, disease, url, score}].
Use before disease_lookup when the exact name is unknown. Dog-only.
- `semantic_search`: Faceted hybrid + semantic-ranker search over the whole knowledge base (diseases, breeds, Scout
discoveries). Use for fuzzy/thematic intent ('drug sensitivity in herding dogs', 'breeds prone to eye
disease', 'genetically diverse breeds'). entity_type filters to 'disease'|'breed'|'discovery'. filters
is an OData facet expression for cross-dimension queries, e.g. "breed_group eq 'herding' and cohort_n ge 30"
or "diversity_tier eq 'severe_bottleneck'" (facets: type, breed, breed_group, gene, evidence_tier,
confidence_tier, diversity_tier, cohort_n). Returns ranked entities with snippets, dimension fields, links.
- `variant_lookup`: Single-variant lookup by CanFam4 position: ref/alt, global + popmax AF, consequence, gene,
Pangolin and phyloP annotations, canonical URL, provenance.
- `variant_search`: Filtered discovery over all 9.67M variants. Predicates (combine freely):
phylop_min (phyloP >=), popmax_min (popmax AF >=), gene_in (list of gene symbols), consequence,
impact (HIGH/MODERATE/LOW/MODIFIER). Returns total_count + a capped list (max 200). Note: popmax may
be in a wild population (dingo/village) — check popmax_breed.
