sniff-mcp
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- LOWin breed_variant_frequency
- LOWin genes_indexed
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"sniff-mcp": {
"url": "https://mcp.sniff.world/mcp/"
}
}
}Remote-Endpunkte
https://mcp.sniff.world/mcp/streamable-httpWas es kann
Tool-Inventar
Tools (18)
🟢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.
Eingabe-Schema
{
"type": "object",
"properties": {
"question": {
"type": "string"
}
},
"required": [
"question"
],
"additionalProperties": false
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"question": {
"type": "string"
},
"narrate": {
"default": false,
"type": "boolean"
}
},
"required": [
"question"
],
"additionalProperties": false
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"disease": {
"default": "",
"type": "string"
},
"breed": {
"default": "",
"type": "string"
}
},
"additionalProperties": false
}Ausgabe-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, 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).
Eingabe-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
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}⚪variant_lookup(position)
Single-variant lookup by CanFam4 position: ref/alt, global + popmax AF, consequence, gene, ESM2/Pangolin/phyloP, deleteriousness tier, canonical URL, provenance.
Eingabe-Schema
{
"type": "object",
"properties": {
"position": {
"type": "string"
}
},
"required": [
"position"
],
"additionalProperties": false
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"breed": {
"type": "string"
},
"variant": {
"default": "",
"type": "string"
},
"gene": {
"default": "",
"type": "string"
}
},
"required": [
"breed"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}⚪gene_summary(gene_symbol, af_min, limit)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"gene_symbol": {
"type": "string"
},
"af_min": {
"default": 0,
"type": "number"
},
"limit": {
"default": 25,
"type": "integer"
}
},
"required": [
"gene_symbol"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}⚪breed_summary(breed)
Breed profile: top damaging common variants (ESM2<=-5 & breed AF>=5%), n_dogs, breed group. Descriptive only — not a health ranking.
Eingabe-Schema
{
"type": "object",
"properties": {
"breed": {
"type": "string"
}
},
"required": [
"breed"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}🟢variant_search(esm_max, phylop_min, popmax_min, gene_in, consequence, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"esm_max": {
"default": null,
"type": "number"
},
"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
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"breed": {
"type": "string"
},
"k": {
"default": 10,
"type": "integer"
}
},
"required": [
"breed"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}⚪breed_similarity(breed_a, breed_b)
Genetic distance between two breeds (top-10-PC Euclidean). Lower = more genetically similar.
Eingabe-Schema
{
"type": "object",
"properties": {
"breed_a": {
"type": "string"
},
"breed_b": {
"type": "string"
}
},
"required": [
"breed_a",
"breed_b"
],
"additionalProperties": false
}Ausgabe-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.
Eingabe-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
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"disease": {
"default": "",
"type": "string"
}
},
"additionalProperties": false
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"additionalProperties": false
}Ausgabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"limit": {
"default": 10,
"type": "integer"
}
},
"required": [
"query"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}🟢breeds_in_atlas
List all 188 breeds with breed-stratified frequencies in the atlas.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}⚪genes_indexed(limit)
Top genes by number of variants in the atlas (discovery aid).
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer"
}
},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}⚪metadata
Atlas metadata: release, DOI, assembly, variant/breed counts, scope banner, and the RPC catalog.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}Community
Nachweis