Skip to main content
Glama

Sanovia — medici e professionisti sanitari in Italia

Richiesta di prenotazione / Booking request

request_booking

Invia una richiesta di prenotazione per un orario libero. Non prenota subito: Sanovia manda al paziente un'email con un link valido 30 minuti; la visita esiste solo quando il paziente la conferma dalla pagina Sanovia (accetta Termini e Privacy e, se previsto, paga online). L'orario non è bloccato fino alla conferma. Chiedi al paziente SOLO nome, cognome ed email: non inviare mai dati sanitari, sintomi, telefono o codice fiscale. Usa un time di free_slots da get_availability per la stessa sede e lo stesso visit_type. / Sends a booking request for a free time. It does not book: Sanovia emails the patient a link valid for 30 minutes; the visit exists only once the patient confirms on the Sanovia page (accepting Terms and Privacy and, when required, paying online). The time is not held until then. Ask the patient ONLY for first name, last name and email: never send health data, symptoms, phone number or tax code. Use a time from get_availability's free_slots for the same location and visit_type.

Input Schema

NameRequiredDescriptionDefault
codeYesCodice pubblico del medico restituito da search_doctors (campo `code`). / The doctor's public code from search_doctors (`code`).
dateYesGiorno AAAA-MM-GG (fuso Europe/Rome), come in free_slots. / Day YYYY-MM-DD (Europe/Rome), as in free_slots.
timeYesOrario di inizio HH:MM, uno di free_slots per quel giorno. / Start time HH:MM, one of that day's free_slots.
emailYesEmail del paziente: riceverà il link di conferma. / Patient's email: the confirmation link goes there.
languageNoLingua dell'email (default it). / Email language (default it).
last_nameYesCognome del paziente (solo lettere). / Patient's last name (letters only).
first_nameYesNome del paziente (solo lettere). / Patient's first name (letters only).
visit_typeNoIl nome esatto di un tipo di visita da get_visit_types (stessa sede). Obbligatorio se il medico ne pubblica. / The exact visit type name from get_visit_types (same location). Required when the doctor publishes any.
location_refNoOpzionale: 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.

Output Schema

NameRequiredDescriptionDefault
dateYes
timeYes
statusYes
locationYes
price_eurYes
slot_heldYes
visit_typeYes
expires_in_minYes
requires_approvalYes
requires_online_paymentYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the whole asynchronous lifecycle: Sanovia emails the patient a link valid 30 minutes, the slot is not held until confirmation, and payment/Terms acceptance may gate the visit. It also warns against sending health data, symptoms, phone or tax code — none of which is derivable from readOnlyHint/openWorldHint/idempotentHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and waste-free per sentence: the negative statement of what the tool does NOT do comes second, before operational rules. The main cost is the Italian/English duplication, which roughly doubles length, though it is a deliberate i18n choice rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, non-idempotent mutation with an output schema, the description supplies everything an agent needs to call it correctly: source of the time value, location/visit_type coupling, PII restrictions, and the deferred-confirmation model. Return values are covered by the output schema, so nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by adding cross-parameter semantics the schema cannot express — that 'time' must be one of that day's free_slots for the same location and visit_type, and that only name/surname/email are legitimate patient inputs. It doesn't restate field formats, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('Invia una richiesta di prenotazione') and immediately negates the obvious misreading: 'Non prenota subito' — the visit exists only after patient confirmation. This distinguishes it cleanly from any sibling that merely offers slots (get_availability) and from a real booking action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent which sibling output feeds this tool ('Usa un time di free_slots da get_availability per la stessa sede e lo stesso visit_type'), names the constraints (same location, same visit_type), and states a hard data-collection rule ('Chiedi al paziente SOLO nome, cognome ed email'). When-to-use and what-not-to-send are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources