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

A
Description quality
100%
Schema completeness
98%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,934Tokens (tool definitions)
~4.2 KBTypical response size
Moderate attention impact (1.51% 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": {
    "sanovia": {
      "url": "https://sanovia.app/api/v1/mcp"
    }
  }
}

Remote endpoints

https://sanovia.app/api/v1/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools