VetClinic.info — Veterinary Specialty Directory
Find US veterinary specialists. Search clinics, read procedure articles, estimate costs.
¿Debería usar esto?
Calidad y seguridad
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": {
"directory": {
"url": "https://vetclinic.info/mcp"
}
}
}Puntos de conexión remotos
https://vetclinic.info/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢search_clinics(city, specialty, state, limit)
Find veterinary specialty clinics by city + specialty. Returns a ranked shortlist with credentials, address, rating, review count, and a contact action. Promoted listings rank first. `state` is genuinely optional: omit it and the city is resolved across states; if that city slug exists in more than one state the error carries a `data.candidates` array (state, state_name, clinic_count) to re-call with.
Esquema de entrada
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City slug (e.g. \"denver\", \"austin\", \"new-york\"). Display names (\"Denver\", \"New York\") are accepted and normalised."
},
"specialty": {
"type": "string",
"description": "Specialty slug (e.g. \"orthopedic-surgery\", \"oncology\", \"emergency-critical-care\", \"generalist\"). Closed set; use list_specialties."
},
"state": {
"type": "string",
"description": "Optional 2-letter state slug (\"co\", \"tx\", \"ca\"). Omit it unless you know it — it is only needed to disambiguate a city slug shared by several states, and the error response tells you when that happens."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"city",
"specialty"
]
}🟢get_clinic(slug, city, state)
Fetch a single clinic's full record by slug: credentials, inline reviews, procedures performed, contact action, canonical URL.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Clinic slug. Clinic slugs are unique per city, not globally — pair with city + state for disambiguation."
},
"city": {
"type": "string",
"description": "City slug."
},
"state": {
"type": "string",
"description": "State slug."
}
},
"required": [
"slug",
"city",
"state"
]
}🟢get_procedure(slug, state)
Fetch a procedure article with cost band, contraindications, emergency signals, FAQ, citations. When state is supplied, also returns a ranked clinic finder pre-filtered to that state.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Procedure slug (e.g. \"tplo\", \"hemilaminectomy\", \"lymphoma-chop\")."
},
"state": {
"type": "string",
"description": "Optional 2-letter state slug to pre-filter the finder."
}
},
"required": [
"slug"
]
}🟡list_specialties
Closed-set enum of recognized veterinary specialty slugs. Returns slug, display_name, and credentialing_board.sameAs (when applicable). Always call this before search_clinics if uncertain about specialty mapping.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_procedures
Published procedure catalog. Returns slug, display_name, also_known_as, specialty_slug for every procedure with a live article.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢find_specialists_by_procedure(procedure, state, limit)
Convenience: combines get_procedure + state filter. Returns the ranked specialist finder list for a procedure in a given state.
Esquema de entrada
{
"type": "object",
"properties": {
"procedure": {
"type": "string",
"description": "Procedure slug."
},
"state": {
"type": "string",
"description": "2-letter state slug."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 12
}
},
"required": [
"procedure",
"state"
]
}⚪estimate_procedure_cost(procedure_slug, zip, case_factors)
Anonymous cost estimate. Returns $low–$high range computed from regional + case factors. Deterministic on identical inputs. PII fields are rejected — use quote_for_case for the PII path.
Esquema de entrada
{
"type": "object",
"properties": {
"procedure_slug": {
"type": "string"
},
"zip": {
"type": "string",
"pattern": "^[0-9]{5}$"
},
"case_factors": {
"type": "object",
"properties": {
"species": {
"enum": [
"dog",
"cat"
]
},
"weight_band": {
"enum": [
"xs",
"s",
"m",
"l",
"xl"
]
},
"age_band": {
"enum": [
"puppy",
"young-adult",
"adult",
"senior"
]
},
"severity": {
"enum": [
"mild",
"moderate",
"severe"
]
},
"urgency": {
"enum": [
"elective",
"urgent",
"emergency"
]
},
"comorbidities": {
"type": "array",
"items": {
"enum": [
"cardiac",
"renal",
"endocrine",
"obesity"
]
}
}
},
"required": [
"species",
"weight_band",
"age_band",
"severity",
"urgency"
],
"additionalProperties": false
}
},
"required": [
"procedure_slug",
"zip",
"case_factors"
],
"additionalProperties": false
}⚪quote_for_case(procedure_slug, zip, case_factors, owner_name, owner_email, ...)
Composite tool. Always computes an estimate. When owner_email is also present, additionally submits a confirmation-gated lead and dispatches a confirmation email to the owner (requires X-Agent-Attribution header). When PII is absent, behaves identically to estimate_procedure_cost and returns status="estimate_only".
Esquema de entrada
{
"type": "object",
"properties": {
"procedure_slug": {
"type": "string"
},
"zip": {
"type": "string",
"pattern": "^[0-9]{5}$"
},
"case_factors": {
"type": "object",
"description": "Same shape as estimate_procedure_cost.case_factors."
},
"owner_name": {
"type": "string",
"description": "Optional. Required if owner_email is present."
},
"owner_email": {
"type": "string",
"format": "email",
"description": "Optional. When present, triggers the lead-capture write path and requires X-Agent-Attribution."
},
"owner_phone": {
"type": "string",
"description": "Optional."
},
"case_notes": {
"type": "string",
"description": "Optional. Free-text notes from the owner for the receiving clinic."
}
},
"required": [
"procedure_slug",
"zip",
"case_factors"
]
}Comunidad
Evidencia