Skip to main content
Glama

Sanovia — medici e professionisti sanitari in Italia

Orari liberi / Free time slots

get_availability
Read-onlyIdempotent

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. Indica visit_type per avere solo gli orari in cui quella visita ci sta. Non prenota: per l'orario scelto dai al paziente il link di booking_urls di quel giorno (pagina di prenotazione con sede, giorno, orario e tipo di visita già scelti; il paziente inserisce i suoi dati e conferma), altrimenti booking_url. / Free start times for online booking, day by day (max 14 days). Shows free times only, never who booked. Pass visit_type to get only the times that visit fits. Does not book: for the chosen time give the patient that day's booking_urls link (the booking page with location, day, time and visit type preselected; the patient enters their details and confirms), otherwise booking_url.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYesCodice pubblico del medico restituito da search_doctors (campo `code`). / The doctor's public code from search_doctors (`code`).
daysNoNumero di giorni (default 7, max 14). / Number of days.
fromNoPrimo giorno AAAA-MM-GG (default oggi, fuso Europe/Rome). / First day YYYY-MM-DD (default today, Europe/Rome).
visit_typeNoOpzionale ma consigliato: il nome esatto di un tipo di visita da get_visit_types (stessa sede). Con il nome, solo gli orari in cui quella visita (con la sua durata) è prenotabile. / Optional but recommended: the exact visit type name from get_visit_types (same location); only start times where a visit of that length fits are returned.
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

TableJSON Schema
NameRequiredDescriptionDefault
daysYes
fromYes
locationYes
free_slotsYes
visit_typeNo
booking_urlYes
other_locationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / visit_type
      Added value: +{
      +  "description": "Opzionale ma consigliato: il nome esatto di un tipo di visita da get_visit_types (stessa sede). Con il nome, solo gli orari in cui quella visita (con la sua durata) è prenotabile. / Optional but recommended: the exact visit type name from get_visit_types (same location); only start times where a visit of that length fits are returned.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / free_slots / items / properties / booking_urls
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • changedOutput schema / properties / free_slots / items / required
      Previous value: -[
      -  "date",
      -  "slots"
      -]New value: +[
      +  "date",
      +  "slots",
      +  "booking_urls"
      +]
    • addedOutput schema / properties / visit_type
      Added value: +{
      +  "properties": {
      +    "duration_min": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "name": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "duration_min"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "booking_url": {
      +      "type": "string"
      +    },
      +    "days": {
      +      "type": "number"
      +    },
      +    "free_slots": {
      +      "items": {
      +        "properties": {
      +          "date": {
      +            "type": "string"
      +          },
      +          "slots": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "date",
      +          "slots"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "from": {
      +      "type": "string"
      +    },
      +    "location": {
      +      "properties": {
      +        "city": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "location_ref": {
      +          "type": "number"
      +        },
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "location_ref",
      +        "name",
      +        "city"
      +      ],
      +      "type": "object"
      +    },
      +    "other_locations": {
      +      "items": {
      +        "properties": {
      +          "city": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "location_ref": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "location_ref",
      +          "name",
      +          "city"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "location",
      +    "other_locations",
      +    "from",
      +    "days",
      +    "free_slots",
      +    "booking_url"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly/idempotent/non-destructive), and the description adds real substance beyond them: a 14-day ceiling, that only free times are returned and never the booker's identity, and that each day's output carries booking_urls with preselected context. It stops short of pagination or empty-result behavior, so not a 5.

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-loads what the tool returns, then the no-booking constraint, then the parameter hint. The bilingual duplication inflates length, but no sentence is padding — the structure is clean and scannable.

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?

With an output schema present and annotations covering safety, the description supplies exactly the missing pieces: return-shape landmarks (booking_urls/booking_url) and the intended downstream workflow. An agent needs nothing further to call it correctly.

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 baseline is 3, but the description adds meaning the schema can't: visit_type must be the exact name from get_visit_types for the same location, and it filters by duration-fits semantics rather than simple equality. That is genuine added value over the field descriptions.

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 concrete verb+resource (free start times for online booking) with scope (day by day, max 14 days) and explicitly disambiguates itself from booking behavior. An agent can distinguish it from search_doctors/get_visit_types/get_doctor_profile without opening any schema.

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?

Gives a clear when-not ('Non prenota') plus the alternative workflow: hand the patient the booking_urls link for the chosen slot, falling back to booking_url. It also says when to pass visit_type (to restrict to times a visit of that duration fits). Nothing is left to inference.

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