Sanovia — medici e professionisti sanitari in Italia
Find Italian doctors and health practitioners: profile, services, prices, free booking slots.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"sanovia": {
"url": "https://sanovia.app/api/v1/mcp"
}
}
}Remote endpoints
https://sanovia.app/api/v1/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢search_doctors(specialty, city, limit)
Cerca medici e professionisti sanitari italiani iscritti a Sanovia per specialità e/o città. Elenca solo chi ha pubblicato sia il sito sia la pagina di prenotazione online. Non prenota: restituisce il link di prenotazione. / Search Italian doctors and health practitioners on Sanovia by specialty and/or city. Lists only practitioners who published both their website and their online booking page. Does not book; returns the booking link.
Input Schema
{
"type": "object",
"properties": {
"specialty": {
"type": "string",
"description": "Specialità o professione, es. «cardiologo», «fisioterapista». / Specialty or profession."
},
"city": {
"type": "string",
"description": "Città della sede, es. «Bologna». / City of the practice."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Massimo risultati (default 10, max 20). / Max results."
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"doctors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"specialty": {
"type": [
"string",
"null"
]
},
"practice_name": {
"type": [
"string",
"null"
]
},
"profession_types": {
"type": "array",
"items": {
"type": "string"
}
},
"online_booking": {
"type": "boolean"
},
"booking_url": {
"type": [
"string",
"null"
]
},
"site_url": {
"type": [
"string",
"null"
]
},
"cities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"code",
"name",
"specialty",
"practice_name",
"profession_types",
"online_booking",
"booking_url",
"site_url",
"cities"
]
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"doctors",
"truncated"
]
}🟢get_doctor_profile(code)
Profilo pubblico di un professionista: specialità, iscrizione all'Albo, sedi, orari, prestazioni con durata e prezzo (null = prezzo non indicato o non mostrato online), valutazione verificata, link al suo sito e alla prenotazione. Non prenota. / Public profile: specialty, professional registration, locations, opening hours, services with duration and price (null = price not stated or not shown online), verified rating, links to their website and booking page. Does not book.
Input Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Codice pubblico del medico restituito da search_doctors (campo `code`). / The doctor's public code from search_doctors (`code`)."
}
},
"required": [
"code"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"code": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"specialty": {
"type": [
"string",
"null"
]
},
"practice_name": {
"type": [
"string",
"null"
]
},
"profession_types": {
"type": "array",
"items": {
"type": "string"
}
},
"online_booking": {
"type": "boolean"
},
"booking_url": {
"type": [
"string",
"null"
]
},
"site_url": {
"type": [
"string",
"null"
]
},
"registration": {
"type": [
"object",
"null"
],
"properties": {
"number": {
"type": "string"
},
"province": {
"type": [
"string",
"null"
]
}
}
},
"locations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location_ref": {
"type": "number"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"online_booking": {
"type": "boolean"
}
},
"required": [
"name",
"online_booking"
]
}
},
"opening_hours": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location": {
"type": [
"string",
"null"
]
},
"day": {
"type": [
"string",
"null"
]
},
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"location",
"day",
"from",
"to"
]
}
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"duration_min": {
"type": [
"number",
"null"
]
},
"price_eur": {
"type": [
"number",
"null"
]
},
"remote": {
"type": "boolean"
},
"description": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"duration_min",
"price_eur",
"remote",
"description"
]
}
},
"rating": {
"type": [
"object",
"null"
],
"properties": {
"average": {
"type": "number"
},
"count": {
"type": "number"
}
}
},
"external_site_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"name",
"specialty",
"practice_name",
"profession_types",
"online_booking",
"booking_url",
"site_url",
"registration",
"locations",
"opening_hours",
"services",
"rating",
"external_site_url"
]
}🟢get_visit_types(code, location_ref)
Tipi di visita prenotabili online da un professionista, con durata, prezzo in euro (null = prezzo non indicato o non mostrato online, NON gratuito) e se il pagamento è online. Non prenota. / Visit types bookable online, with duration, price in EUR (null = price not stated or not shown online, NOT free) and whether payment is online. Does not book.
Input Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Codice pubblico del medico restituito da search_doctors (campo `code`). / The doctor's public code from search_doctors (`code`)."
},
"location_ref": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Opzionale: numero della sede (location_ref) da get_doctor_profile. Senza, la sede principale. / Optional location number (location_ref) from get_doctor_profile; defaults to the primary location."
}
},
"required": [
"code"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"location": {
"type": "object",
"properties": {
"location_ref": {
"type": "number"
},
"name": {
"type": "string"
},
"city": {
"type": [
"string",
"null"
]
}
},
"required": [
"location_ref",
"name",
"city"
]
},
"visit_types": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"duration_min": {
"type": [
"number",
"null"
]
},
"price_eur": {
"type": [
"number",
"null"
]
},
"requires_online_payment": {
"type": "boolean"
},
"description": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"duration_min",
"price_eur",
"requires_online_payment",
"description"
]
}
},
"booking_url": {
"type": "string"
}
},
"required": [
"location",
"visit_types",
"booking_url"
]
}🟢get_availability(code, location_ref, from, days)
Orari di inizio liberi per la prenotazione online di un professionista, giorno per giorno (massimo 14 giorni). Mostra solo gli orari liberi, mai chi ha prenotato. Non prenota: per prenotare il paziente usa booking_url. / Free start times for online booking, day by day (max 14 days). Shows free times only, never who booked. Does not book: the patient books at booking_url.
Input Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Codice pubblico del medico restituito da search_doctors (campo `code`). / The doctor's public code from search_doctors (`code`)."
},
"location_ref": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Opzionale: numero della sede (location_ref) da get_doctor_profile. Senza, la sede principale. / Optional location number (location_ref) from get_doctor_profile; defaults to the primary location."
},
"from": {
"type": "string",
"format": "date",
"description": "Primo giorno AAAA-MM-GG (default oggi, fuso Europe/Rome). / First day YYYY-MM-DD (default today, Europe/Rome)."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 14,
"description": "Numero di giorni (default 7, max 14). / Number of days."
}
},
"required": [
"code"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"location": {
"type": "object",
"properties": {
"location_ref": {
"type": "number"
},
"name": {
"type": "string"
},
"city": {
"type": [
"string",
"null"
]
}
},
"required": [
"location_ref",
"name",
"city"
]
},
"other_locations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location_ref": {
"type": "number"
},
"name": {
"type": "string"
},
"city": {
"type": [
"string",
"null"
]
}
},
"required": [
"location_ref",
"name",
"city"
]
}
},
"from": {
"type": "string"
},
"days": {
"type": "number"
},
"free_slots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"slots": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"date",
"slots"
]
}
},
"booking_url": {
"type": "string"
}
},
"required": [
"location",
"other_locations",
"from",
"days",
"free_slots",
"booking_url"
]
}Community
Evidence