Skip to main content
Glama

Xona Dental Gateway

List a clinic's public booking services

list_public_booking_services
Read-onlyIdempotent

Read the services a clinic's own online scheduler offers, by practice_slug: a clinic whose search row is live_schedule, or whose action option has reads_times. The answer carries booking_url, the page where the patient books this clinic; a clinic whose scheduler can't be read answers readable false with that booking_url. An answer may be up to 5 minutes old: read_at says when the clinic's scheduler was read and age_seconds how long ago; fresh: true reads this clinic again (twice a minute per clinic; past that the answer says when it next can). Provider locators remain server-owned.

Input Schema

NameRequiredDescriptionDefault
freshNoRead this clinic's scheduler now rather than from a read up to 5 minutes old
practice_slugYes

Output Schema

NameRequiredDescriptionDefault
read_atNo
readableYes
servicesYes
use_toolNo
next_stepYes
fresh_noteNo
age_secondsNo
booking_urlNo
practice_slugYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / fresh
      Added value: +{
      +  "description": "Read this clinic's scheduler now rather than from a read up to 5 minutes old",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / age_seconds
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / fresh_note
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / read_at
      Added value: +{
      +  "format": "date-time",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / booking_url
      Added value: +{
      +  "type": "string"
      +}
  3. Changed8 schema fields changed
    • removedInput schema / properties / action_id
      Removed value: -{
      -  "maxLength": 128,
      -  "minLength": 16,
      -  "type": "string"
      -}
    • addedInput schema / properties / practice_slug
      Added value: +{
      +  "maxLength": 140,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "action_id"
      -]New value: +[
      +  "practice_slug"
      +]
    • addedOutput schema / properties / next_step
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / practice_slug
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / readable
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / use_tool
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "services"
      -]New value: +[
      +  "practice_slug",
      +  "readable",
      +  "services",
      +  "next_step"
      +]
  4. First observed

TDQS

A3.7/5.0
Behavior4/5

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

With readOnly/idempotent annotations already covering the safety profile, the description still adds substantial behavioral context: answers may be up to 5 minutes stale, read_at/age_seconds expose freshness, fresh triggers a re-read with an explicit rate limit (twice per minute per clinic) and a backoff message when exceeded, and unreadable schedulers return readable=false with a booking_url fallback. The closing line about 'server-owned' provider locators is opaque but harmless.

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?

Three dense sentences, front-loaded with the core purpose before the qualifying conditions and freshness behavior; almost no filler. It is somewhat jargon-heavy ('live_schedule', 'reads_times', 'server-owned'), which slows parsing, but every sentence carries information.

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

Completeness4/5

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

For a read-only lookup with an output schema present, the description covers the important operational facts: eligibility, caching staleness, rate limits, and the failure path. The remaining gap is how to obtain practice_slug and how this differs from list_xona_booking_services, which an agent must infer.

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

Parameters3/5

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

Schema coverage is 50%: only 'fresh' is documented in the schema, and the description usefully restates its semantics (read now vs. from a read up to 5 minutes old). practice_slug is explained only as the lookup key, with no format, source, or example, so the description only partly compensates for the schema gap.

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

Purpose4/5

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

States a specific verb and resource ('read the services a clinic's own online scheduler offers') and scopes it by practice_slug, which is clear. It does not explicitly distinguish itself from the sibling list_xona_booking_services, so the agent must infer the difference between a clinic's 'own' scheduler and the Xona-branded one.

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

Usage Guidelines3/5

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

It gives an eligibility condition ('a clinic whose search row is live_schedule, or whose action option has reads_times'), which is real when-to-use guidance but is phrased in terms of other tools' output fields rather than plain language. It never names an alternative tool or states when not to use this one, so the routing guidance is implied rather than explicit.

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