sniff-mcp

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

Should I use this

Quality & Safety

B
Description quality
92%
Schema completeness
72%
Naming quality
81%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'breed_variant_frequency' description lacks action verbin breed_variant_frequency
  • LOWTool 'genes_indexed' description lacks action verbin genes_indexed

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,686Tokens (tool definitions)
~590 BTypical response size
Significant attention impact (2.10% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sniff-mcp": {
      "url": "https://mcp.sniff.world/mcp/"
    }
  }
}

Remote endpoints

https://mcp.sniff.world/mcp/streamable-http

What it can do

Tool inventory

Tools (18)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢ask(question)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string"
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡ask_the_graph(question, narrate)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string"
    },
    "narrate": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪disease_bridge(disease, breed)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "disease": {
      "default": "",
      "type": "string"
    },
    "breed": {
      "default": "",
      "type": "string"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢ask_variant_context(position, breed_context, top_n, cross_breed_full)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "type": "string"
    },
    "breed_context": {
      "default": "",
      "type": "string"
    },
    "top_n": {
      "default": 5,
      "type": "integer"
    },
    "cross_breed_full": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "position"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪variant_lookup(position)

Single-variant lookup by CanFam4 position: ref/alt, global + popmax AF, consequence, gene, Pangolin and phyloP annotations, canonical URL, provenance.

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "type": "string"
    }
  },
  "required": [
    "position"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪breed_variant_frequency(breed, variant, gene)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "breed": {
      "type": "string"
    },
    "variant": {
      "default": "",
      "type": "string"
    },
    "gene": {
      "default": "",
      "type": "string"
    }
  },
  "required": [
    "breed"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪gene_summary(gene_symbol, af_min, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "gene_symbol": {
      "type": "string"
    },
    "af_min": {
      "default": 0,
      "type": "number"
    },
    "limit": {
      "default": 25,
      "type": "integer"
    }
  },
  "required": [
    "gene_symbol"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪breed_summary(breed)

Breed profile: n_dogs, breed group, genetic geometry and nearest breeds. Descriptive only — not a health ranking.

Input Schema

{
  "type": "object",
  "properties": {
    "breed": {
      "type": "string"
    }
  },
  "required": [
    "breed"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢variant_search(phylop_min, popmax_min, gene_in, consequence, impact, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "phylop_min": {
      "default": null,
      "type": "number"
    },
    "popmax_min": {
      "default": null,
      "type": "number"
    },
    "gene_in": {
      "default": null,
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "consequence": {
      "default": "",
      "type": "string"
    },
    "impact": {
      "default": "",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "type": "integer"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪nearest_breeds(breed, k)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "breed": {
      "type": "string"
    },
    "k": {
      "default": 10,
      "type": "integer"
    }
  },
  "required": [
    "breed"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪breed_similarity(breed_a, breed_b)

Genetic distance between two breeds (top-10-PC Euclidean). Lower = more genetically similar.

Input Schema

{
  "type": "object",
  "properties": {
    "breed_a": {
      "type": "string"
    },
    "breed_b": {
      "type": "string"
    }
  },
  "required": [
    "breed_a",
    "breed_b"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢semantic_search(query, top_k, entity_type, filters)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "top_k": {
      "default": 8,
      "type": "integer"
    },
    "entity_type": {
      "default": "",
      "type": "string"
    },
    "filters": {
      "default": "",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢disease_links(disease)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "disease": {
      "default": "",
      "type": "string"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢disease_lookup(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢search_diseases(query, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "default": 10,
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢breeds_in_atlas

List all 188 breeds with breed-stratified frequencies in the atlas.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪genes_indexed(limit)

Top genes by number of variants in the atlas (discovery aid).

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 50,
      "type": "integer"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪metadata

Atlas metadata: release, DOI, assembly, variant/breed counts, scope banner, and the RPC catalog.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools