sniff-mcp
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen breed_variant_frequency
- LOWen genes_indexed
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"sniff-mcp": {
"url": "https://mcp.sniff.world/mcp/"
}
}
}Puntos de conexión remotos
https://mcp.sniff.world/mcp/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"type": "object",
"properties": {
"question": {
"type": "string"
}
},
"required": [
"question"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"question": {
"type": "string"
},
"narrate": {
"default": false,
"type": "boolean"
}
},
"required": [
"question"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"disease": {
"default": "",
"type": "string"
},
"breed": {
"default": "",
"type": "string"
}
},
"additionalProperties": false
}Esquema de salida
{
"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).
Esquema de entrada
{
"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
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"position": {
"type": "string"
}
},
"required": [
"position"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"breed": {
"type": "string"
},
"variant": {
"default": "",
"type": "string"
},
"gene": {
"default": "",
"type": "string"
}
},
"required": [
"breed"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"gene_symbol": {
"type": "string"
},
"af_min": {
"default": 0,
"type": "number"
},
"limit": {
"default": 25,
"type": "integer"
}
},
"required": [
"gene_symbol"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"breed": {
"type": "string"
}
},
"required": [
"breed"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"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
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"breed": {
"type": "string"
},
"k": {
"default": 10,
"type": "integer"
}
},
"required": [
"breed"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}⚪breed_similarity(breed_a, breed_b)
Genetic distance between two breeds (top-10-PC Euclidean). Lower = more genetically similar.
Esquema de entrada
{
"type": "object",
"properties": {
"breed_a": {
"type": "string"
},
"breed_b": {
"type": "string"
}
},
"required": [
"breed_a",
"breed_b"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"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
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"disease": {
"default": "",
"type": "string"
}
},
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"additionalProperties": false
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"limit": {
"default": 10,
"type": "integer"
}
},
"required": [
"query"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢breeds_in_atlas
List all 188 breeds with breed-stratified frequencies in the atlas.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}⚪genes_indexed(limit)
Top genes by number of variants in the atlas (discovery aid).
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer"
}
},
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}⚪metadata
Atlas metadata: release, DOI, assembly, variant/breed counts, scope banner, and the RPC catalog.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}Comunidad
Evidencia