Skip to main content
Glama

Xona Dental Gateway

Server Details

Find Canadian dentists; send an appointment request or book with a connected practice.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, and the booking/request flows are well separated. However, list_public_booking_slots vs list_xona_booking_slots and list_public_booking_services vs list_xona_booking_services could be confused at a glance, and get_canadian_dental_practice overlaps somewhat with answer_dental_practice_question on factual evidence.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern with clear domain qualifiers, such as list_xona_booking_slots, confirm_xona_booking, and get_dental_action_status. There are no mixed casing styles, vague verbs, or unpredictable naming deviations.

Tool Count5/5

Fifteen tools is at the upper end of the ideal range, but each tool represents a distinct workflow step or data source needed by the dental gateway. The count feels intentional rather than bloated, covering discovery, public widgets, Xona booking, requests, and action status.

Completeness4/5

The core patient journey is well covered: find a practice, read availability, hold and confirm a booking, start and confirm a request, and check action status. The main gap is the lack of a cancellation or update path for confirmed bookings or in-flight requests after they are no longer abandonable.

Available Tools

15 tools
abandon_xona_bookingGive up a booking that is not booked yetA
Idempotent
Inspect

Release the held time and drop the patient's details when the patient no longer wants it, at any step before it is booked. It never cancels a booked appointment. Calling again returns the same result.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
outcomeNo
practiceYes
action_idYes
next_stepYes
booking_urlNo
continue_urlNo
confirmation_smsNo
appointment_startNo
appointment_start_localNo

TDQS

A3.5/5.0
Behavior1/5

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

Annotation Contradiction: the description says it 'drops the patient's details,' which is a destructive/removal operation, while annotations declare destructiveHint=false. The description does add idempotency information, but the direct conflict with the destructive flag makes the tool's behavior ambiguous for an agent.

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

Conciseness5/5

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

Three short sentences each carry distinct information: the action, the scope of applicability, and idempotency. There is no filler, repetition, or unnecessary detail.

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?

The tool has one required parameter and an output schema, so return-value documentation is already handled. The main gap is that the description does not explain how to obtain action_id, but the behavioral boundaries and idempotency are otherwise well covered.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions the only parameter, action_id. The agent can infer it refers to an action identifier, but there is no guidance connecting it to a prior step such as hold_xona_booking_slot or list_dental_practice_actions.

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 specific verb+resource: it releases held time and drops patient details for a booking that is not yet booked. The boundary 'before it is booked' and the contrast 'never cancels a booked appointment' clearly distinguish it from sibling tools like confirm_xona_booking.

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

Usage Guidelines4/5

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

Gives a clear when-to-use condition ('when the patient no longer wants it, at any step before it is booked') and an exclusion ('never cancels a booked appointment'). It does not name an alternative tool explicitly, but the workflow boundary is sufficiently explicit for routing.

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

answer_dental_practice_questionAnswer from dental practice evidenceA
Read-onlyIdempotent
Inspect

Answer a bounded factual question from the selected practices' evidence. Unknown is returned explicitly; missing data is never inferred as no.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
practice_slugsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
answersYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint, covering safety. The description adds valuable behavioral context: 'Unknown is returned explicitly; missing data is never inferred as no.' This clarifies handling of missing data, which is not in annotations, so it adds real value.

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

Conciseness5/5

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

Two sentences with zero waste. The main purpose is front-loaded, and the behavioral caveat follows. No redundancy or filler.

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?

Given the output schema exists and the input schema defines the topic enum, the description is fairly complete. It explains the unknown-handling behavior but does not elaborate on practice_slugs or topic categories, though those are largely covered by the schema. Minor gap on usage guidance, but not critical for a read-only QA tool.

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

Parameters2/5

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

Schema description coverage is 0% – the description does not mention the two parameters at all. The topic parameter has an enum but no descriptions, and practice_slugs is self-explanatory, yet the description provides no guidance on how to populate them. Since coverage is low, the description should compensate but only weakly implies a bounded question set.

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 clear verb+resource: 'Answer a bounded factual question from the selected practices' evidence.' It differentiates from siblings like search_canadian_dentists and get_canadian_dental_practice by focusing on evidence-based QA. Not a tautology and not vague.

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?

The description implies when to use it (answering factual questions about selected practices) but gives no explicit alternatives or exclusions. Among many booking/action siblings, this tool is clearly distinct, but the description does not name them or state when not to use it.

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

confirm_dental_requestSend a dental appointment requestA
Idempotent
Inspect

Send the started request to the clinic after the patient reads back their code and agrees to consent_text. The outcome is a delivered, held or failed request, never a confirmed booking. Calling again with the same action_id returns the same outcome and sends nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
action_idYes
consent_versionYes
preferred_windowYesWhen the patient is free, in their words
service_categoryYes
verification_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYes
outcomeYes
next_stepYes
receipt_urlNo

TDQS

A4.4/5.0
Behavior5/5

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

The description adds material behavioral detail beyond the annotations: it discloses that outcomes are 'delivered, held or failed' rather than a confirmed booking, and it spells out idempotent behavior ('Calling again with the same action_id returns the same outcome and sends nothing'). This complements the idempotentHint annotation and gives the agent a concrete mental model of side effects.

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

Conciseness5/5

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

Two sentences deliver the core action, a precondition, the outcome space, and idempotency behavior with zero filler. Every clause adds operational value and the most important constraint is front-loaded.

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?

Given the output schema exists, the description covers the essential context: precondition, outcome states, and repeat-call behavior. The main gap is not mapping 'consent_text' to the consent_version parameter and not explaining what distinguishes delivered, held, and failed outcomes, though that may be covered by the output schema.

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 description coverage is only 17%, so the description carries more responsibility. It does add meaning to verification_code ('their code'), consent_version ('consent_text'), and action_id ('Calling again with the same action_id'), but it references non-existent term 'consent_text' instead of mapping clearly to consent_version, and it does not help with note, service_category, or preferred_window beyond what the schema already states.

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?

The description names a specific verb ('Send'), a precise resource ('the started request'), and a target ('to the clinic'), with the precondition 'after the patient reads back their code and agrees to consent_text.' It also clearly distinguishes itself from a booking confirmation by stating the outcome is 'never a confirmed booking,' which separates it from the sibling confirm_xona_booking.

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

Usage Guidelines4/5

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

The description implies when to use it: after a request has been started and after the patient verifies their code and consents. It also excludes booking confirmation as a purpose. However, it does not explicitly name an alternative tool or state a when-not-to-use condition beyond 'never a confirmed booking,' so the guidance is clear but not fully explicit.

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

confirm_xona_bookingBook the held timeA
Idempotent
Inspect

Step 2 of 2. Book the held time with the details from step 1, once the patient has tapped the email link and the text link and agrees to consent_text. If a link is still untapped it books nothing and says which. Xona finds an existing patient itself; when it cannot tell, it returns the practice's booking page instead of guessing. Calling again returns the same outcome.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYes
consent_versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
outcomeYes
practiceYes
action_idYes
next_stepYes
booking_urlNo
continue_urlNo
booking_stepsNo
confirmation_smsNo
appointment_startNo
appointment_start_localNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover idempotency, but the description adds meaningful behavioral nuance: it books nothing and reports which link is untapped, and it returns the practice's booking page when patient identity is ambiguous rather than guessing. This goes beyond the structured hints and helps the agent anticipate failure modes.

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

Conciseness5/5

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

The description is compact and front-loaded with the step context. Each sentence adds operational value: the precondition, the partial-failure behavior, the ambiguity fallback, and the idempotent outcome. No filler or repetition beyond what is useful.

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 two-parameter action with an output schema, the description covers the workflow, failure cases, and retry behavior. The main gap is parameter mapping, which affects the parameter_semantics dimension; otherwise the behavioral picture is sufficiently complete.

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

Parameters1/5

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

Schema description coverage is 0% and the description never mentions action_id or consent_version. It loosely refers to 'details from step 1' and 'consent_text', but an agent cannot map these to the required parameters with any confidence. The description fails to compensate for the schema's lack of descriptive text.

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?

The description states a specific verb and resource: 'Book the held time' and explicitly frames this as 'Step 2 of 2', distinguishing it from hold_xona_booking_slot and abandon_xona_booking. This makes the tool's role in the workflow immediately clear.

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

Usage Guidelines4/5

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

It gives clear when-to-use context: only after the patient has tapped both links and agreed to consent_text. It also explains the no-op condition when links are untapped. It doesn't explicitly name alternative tools, but the 'Step 2 of 2' framing and sibling set make the intended sequencing clear.

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

get_canadian_dental_practiceGet a Canadian dental practiceA
Read-onlyIdempotent
Inspect

Get one public dental practice profile, fact evidence, citations, and current public actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
practice_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionsYes
practiceYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that it returns fact evidence, citations, and current public actions, which is useful behavioral context beyond the annotations. No contradiction found.

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

Conciseness5/5

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

One concise sentence that front-loads the core action ('Get one public dental practice profile') and then lists the included components. No unnecessary words; structure is optimal.

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?

Given the single parameter, the presence of an output schema, and annotations that cover safety, the description provides adequate context. It enumerates the return content (profile, evidence, citations, actions) and implies the identifier. It does not explain error handling, but for a simple get operation with schema available, this is sufficient.

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 description coverage is 0%, and the description does not explicitly mention practice_slug. However, the single parameter is clearly the identifier implied by 'Get one public dental practice profile.' The description adds no explicit parameter guidance, but the parameter's purpose is self-evident from its name and the tool's purpose, so it is marginally sufficient.

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 specific verb 'Get' with a resource 'public dental practice profile' and enumerates the content (fact evidence, citations, current public actions). This clearly distinguishes from sibling tools like search_canadian_dentists (search) and list_dental_practice_actions (list actions), so an agent knows exactly what this tool returns.

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?

The description implies usage for retrieving a single practice by slug, but does not explicitly state when to use it versus alternatives like search or list tools. It lacks exclusions or conditions, so an agent must infer from context. This is adequate but not explicit.

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

get_dental_action_statusGet dental action statusB
Read-onlyIdempotent
Inspect

Read the exact outcome of an expiring dental action. Handoff, request, and confirmed booking outcomes remain distinct.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral nuance ('exact outcome', distinct outcome categories), but does not elaborate on lifecycle behavior or failure cases. It does not contradict the annotations.

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

Conciseness5/5

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

Two short sentences, front-loaded with the primary verb and resource. Every phrase adds value, especially the second sentence clarifying that outcome types remain distinct.

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 simple one-parameter, read-only, idempotent tool with an output schema and strong annotations, the description is mostly complete. It could better define 'expiring dental action' or explicitly state that it applies only to such actions, but an agent can likely proceed with minimal ambiguity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate by explaining action_id and how it relates to the outcome. It does not mention the parameter at all; only the schema's name and length constraints provide any meaning, leaving the parameter semantics mostly implicit.

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?

The description clearly identifies a specific verb ('Read') and resource ('outcome of an expiring dental action'), and adds useful scope by saying handoff, request, and confirmed booking outcomes remain distinct. It does not explicitly name a sibling alternative, but the purpose is unambiguous among the listed siblings.

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?

The description implies when to use the tool: when the exact outcome of an expiring dental action is needed. However, it gives no explicit when-not-to-use guidance or alternatives, leaving some inference to the agent.

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

hold_xona_booking_slotHold an open timeAInspect

Step 1 of 2. Hold one open time with all of the patient's details and email the patient a link to tap; tapping it texts them a second link. Ask for every detail before calling. Nothing is booked yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesThe chosen slot's date exactly as list_xona_booking_slots returned it
noteNo
last_nameYes
first_nameYes
service_idYes
date_of_birthYes
guardian_nameNoRequired when the patient is under 16
patient_emailYesThe patient's own email; the first link goes there
patient_phoneYesThe patient's mobile number; the second link is texted there once the email link is tapped
practice_slugYes
slot_fingerprintYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
practiceYes
action_idYes
next_stepYes
consent_textYes
continue_urlNo
verificationYes
booking_stepsYes
consent_versionYes
hold_expires_atYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses a significant side effect beyond the annotations: it 'email[s] the patient a link to tap' and tapping it texts them a second link, so the agent knows calling this tool will contact the patient. It also clarifies the state boundary with 'Nothing is booked yet'. No contradiction exists; the mutation implied by holding a slot aligns with readOnlyHint: false and destructiveHint: false.

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

Conciseness5/5

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

Four short sentences with the core action front-loaded ('Step 1 of 2. Hold one open time...'). Every sentence earns its place: flow position, core function plus side effect, precondition, and a clarifying statement about what has not yet happened. Zero waste.

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?

The description covers the multi-step placement, the side-effectful email/text behavior, and the precondition, which is substantial for an 11-parameter tool. Since an output schema exists, return values don't need description coverage. The main gap is hold lifecycle details (expiry or what happens if the patient never taps the link), but that doesn't block correct invocation.

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?

With only 36% schema coverage, the description partially compensates: the two-link mechanism explains why patient_email and patient_phone are required and their distinct roles, and 'all of the patient's details' groups the personal-info parameters. However, practice_slug, service_id, and slot_fingerprint remain undocumented in both the schema and description, so the gap isn't fully closed.

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 specific verb and resource: 'Hold one open time with all of the patient's details' plus the email/text link flow. 'Step 1 of 2' and 'Nothing is booked yet' position it against confirm_xona_booking as the hold phase rather than the booking phase. This is specific, non-tautological, and clearly distinguishes it from sibling tools.

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

Usage Guidelines4/5

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

'Step 1 of 2' provides explicit sequencing context, and 'Ask for every detail before calling' is a concrete precondition telling the agent when it is ready to invoke the tool. It doesn't explicitly name alternatives or exclusion cases, but the two-step framing and the 'Nothing is booked yet' caveat give clear situational guidance.

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

list_dental_practice_actionsList dental practice actionsA
Read-onlyIdempotent
Inspect

List current public booking, request, form, call, and website actions for a dental practice in preference order.

ParametersJSON Schema
NameRequiredDescriptionDefault
practice_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionsYes
practice_slugYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no extra behavioral context such as authentication needs, rate limits, or data freshness guarantees beyond the word 'current'. It does not contradict annotations, but it adds minimal value over the structured hints.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the action ('List') and then specifies the resource and ordering. Every word contributes to understanding the tool's purpose. No fluff or redundancy.

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

Completeness3/5

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

Given there is an output schema, return values are covered. The description states what is listed and the ordering, which is useful. However, it lacks any usage context, prerequisites (e.g., a valid practice_slug), or alternative guidance. For a simple list operation, the absence of these details is acceptable, but the parameter explanation gap makes it incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the sole parameter, practice_slug. However, the description does not mention or explain this parameter at all. While the parameter name is self-explanatory, there is no guidance on how to obtain or format the slug, nor any indication of required format beyond the schema constraints. The description fails to compensate for the low schema coverage.

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?

The description clearly states a specific verb ('List') and resource ('current public booking, request, form, call, and website actions for a dental practice'). It enumerates the action types and specifies the ordering ('preference order'), making it distinct from siblings that focus on services or slots. An agent can easily tell this from list_public_booking_services or list_xona_booking_slots.

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?

The description does not explicitly mention when to use this tool versus alternatives or provide exclusions. The purpose itself implies usage for listing actions, but no alternatives are named or conditions given. An agent must infer from the resource type, which is adequate but not explicit.

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

list_public_booking_servicesList a clinic's public booking servicesB
Read-onlyIdempotent
Inspect

Read services from a clinic's already-prepared supported public booking widget. Provider locators remain server-owned.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
servicesYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds context that the data comes from an 'already-prepared' widget and that provider locators are server-owned, which is meaningful behavioral scope. It does not contradict the annotations, but it also does not disclose much beyond those hints.

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?

The description is short and front-loaded with the core operation. The second sentence about provider locators is cryptic but brief. There is no filler, though the wording could be clearer about what 'server-owned' means for the caller.

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

Completeness3/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 the safety profile, the description does not need to explain return values or read-only semantics. It states the operation and one scope limitation, but it omits action_id semantics and sibling-tool routing, leaving the definition minimally adequate rather than complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description never explains action_id or how it maps to the clinic's widget. The phrase 'a clinic's ... widget' gives an indirect clue that the parameter identifies the relevant action/widget, but the agent must infer this from context rather than being told explicitly.

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?

The description clearly states the operation ('Read services') and the target ('a clinic's already-prepared supported public booking widget'), so an agent can tell it lists public booking services. It does not explicitly contrast with sibling tools like list_xona_booking_services or list_public_booking_slots, but the 'public booking widget' qualifier provides useful scope.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is provided. The description never mentions alternatives or exclusions, so an agent cannot confidently select this tool over sibling list tools based on the description alone. The public-widget phrasing only weakly implies the intended context.

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

list_public_booking_slotsList a clinic's public booking slotsA
Read-onlyIdempotent
Inspect

Read public availability from a supported clinic widget for one service and UTC window. This does not hold or book a slot.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
startYes
action_idYes
service_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
slotsYes
use_toolNo
action_idNo
practice_slugNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the core safety profile is covered. The description adds useful behavioral context beyond annotations by clarifying that this is a non-reserving, read-only availability lookup and that the window is UTC.

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

Conciseness5/5

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

Two short sentences with no filler. The core behavior and the non-booking caveat are front-loaded, making the tool easy to scan and understand quickly.

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 simple read-only tool with rich annotations and an output schema, the description covers the essential behavior. It omits where action_id comes from and does not reference related setup tools like list_public_booking_services, but overall the agent has enough to use it correctly.

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?

The description adds some meaning beyond the raw schema: 'one service' clarifies service_id, and 'UTC window' clarifies start/end semantics. However, action_id is not explicitly explained; it is only implied by 'supported clinic widget.' With 0% schema description coverage, more field-level guidance would be expected.

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?

The description clearly states the operation ('Read public availability') and the resource scope ('from a supported clinic widget for one service and UTC window'). It also explicitly differentiates itself from booking tools by noting it does not hold or book a slot.

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

Usage Guidelines4/5

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

The description provides clear context: use this to read public availability for a single service over a specified UTC window. It also rules out holding/booking behavior, but it does not name alternative sibling tools or explicitly state when not to use this tool versus list_xona_booking_slots or hold_xona_booking_slot.

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

list_xona_booking_servicesList a connected practice's booking servicesA
Read-onlyIdempotent
Inspect

List the services a practice that connected its schedule to Xona books online. Use it where list_dental_practice_actions marks the Xona booking route as completes_in_conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
practice_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
practiceYes
servicesYes
next_stepYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is established. The description adds useful behavioral context by defining a precondition: the practice must have connected its schedule to Xona, and the tool is tied to a specific route state from list_dental_practice_actions. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is two sentences with no filler. It fronts the core action and resource, then adds the precise triggering condition, making it immediately 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?

For a single-parameter, read-only list tool with an output schema and strong annotations, the description provides the essential trigger context and scope. Nothing critical is missing for an agent to invoke it correctly.

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 description coverage is 0%, but there is only one parameter, practice_slug, whose meaning is implied by the title and description referencing 'a practice'. The description does not explicitly document the slug format or that it identifies the connected practice, so it provides only minimal compensation for the missing schema description.

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?

The description uses a specific verb ('List') and a specific resource ('the services a practice that connected its schedule to Xona books online'), and it distinguishes this tool from the sibling list_public_booking_services by scoping to connected practices. The title reinforces the same distinction.

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

Usage Guidelines4/5

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

The description gives an explicit trigger: use this tool where list_dental_practice_actions marks the Xona booking route as completes_in_conversation. It does not explicitly name alternatives or exclusions, so it stops just short of a full 5.

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

list_xona_booking_slotsList a connected practice's open timesA
Read-onlyIdempotent
Inspect

List open times at a connected practice for one service between date_from and date_to (inclusive, at most 8 weeks out). Returns the closest ten to preferred_time (else a balanced spread) plus the earliest open time, with a reason when empty. Each slot has a slot_fingerprint and date for hold_xona_booking_slot. Nothing is held.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toYesLast day to search (inclusive); at most 56 days after date_from and 8 weeks from today
date_fromYesFirst day to search, in the practice's time zone
doctor_idNoRestrict to one provider, using a doctor_id a previous slot listing returned
service_idYes
practice_slugYes
preferred_timeNoThe patient's preferred local start time, 24-hour HH:MM; slots closest to it come first

Output Schema

ParametersJSON Schema
NameRequiredDescription
slotsYes
reasonNo
earliestNo
practiceYes
next_stepYes
time_zoneYes
service_idYes
booking_urlNo
effective_toYes
instructionsNo
effective_fromYes
date_correctionNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate read-only and non-destructive behavior, and the description goes further: 'Nothing is held' explicitly states no side effects. It also discloses selection behavior (closest ten else balanced spread plus earliest open time) and the empty-result reason, which are meaningful behavioral details beyond the annotations.

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

Conciseness5/5

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

Three dense sentences with no filler. The core action and date constraint are front-loaded, followed by return behavior and the workflow hook to hold_xona_booking_slot. Every sentence earns its place.

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?

The description is complete for a read-only listing tool: it covers date constraints, selection algorithm, empty behavior, output identifiers, and the no-hold guarantee. With annotations and an output schema present, there is no critical missing context for an agent to select and invoke the tool 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 67%, so the description is expected to add meaning. It adds inclusive date-range semantics, the 8-week maximum, the preferred_time ranking behavior, and maps 'one service' to service_id and 'connected practice' to practice_slug. It does not elaborate on doctor_id beyond the schema's existing explanation.

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 specific verb and resource: 'List open times at a connected practice for one service between date_from and date_to'. It clearly distinguishes this from public slot listing and from holding a slot, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description gives clear context by saying each slot has a slot_fingerprint and date for hold_xona_booking_slot, signaling this tool is the read-only precursor to holding. It does not explicitly say when to prefer this over list_public_booking_slots, but the 'connected practice' framing implies the intended internal booking workflow.

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

prepare_dental_practice_actionOpen a dental action for reviewAInspect

Prepare an expiring, attributed dental action and return a visible patient review URL. This does not submit patient data or claim a booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
capabilityYes
practice_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYes
next_stepYes
manual_review_requiredYes
conversational_next_toolNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations provide no safety hints (all false), so the description carries the full burden. It adds useful behavioral context: it does not submit patient data or claim a booking, and the action is expiring and attributed. However, it does not disclose other side effects (e.g., whether a record is created, if it is reversible, or permission requirements). This is partial transparency.

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

Conciseness5/5

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

The description is exactly two sentences: the first states the core action and output, the second clarifies non-behaviors. It is front-loaded with the primary purpose and contains zero redundant wording. This is an efficient, well-structured description.

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

Completeness2/5

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

Given the tool's moderate complexity (2 parameters, many siblings, no annotation guidance), the description is incomplete. It lacks usage context (when to use vs alternatives), parameter selection guidance, and fuller behavioral disclosure. While the output schema likely covers return details, the description alone does not equip an agent to select or invoke this tool confidently among 15 siblings.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the schema has no parameter descriptions. The tool description does not mention either parameter (practice_slug or capability) or explain how to choose a capability. The enum values are self-explanatory but there is no guidance on selection or constraints. The description fails to compensate for the missing schema documentation.

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?

The description clearly states the verb ('prepare'), the resource ('an expiring, attributed dental action'), and the result ('return a visible patient review URL'). It also explicitly excludes what it does not do ('does not submit patient data or claim a booking'), which helps distinguish it from sibling tools like start_dental_request or confirm_dental_request.

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?

The description implies usage for preparation rather than execution, but it does not explicitly state when to use this tool over alternatives. It mentions what it does not do, which gives a hint, but there is no direct guidance on selection criteria or mention of sibling tools. Given the large sibling list, this is a moderate gap.

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

search_canadian_dentistsSearch Canadian dentistsA
Read-onlyIdempotent
Inspect

Search evidence-backed public profiles in the Canadian dental directory by name or place, and filter by a service, a language, published weekend or evening hours, and a booking route you can use now. Each row says which published fact matched and when it was read. No login or clinic membership is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
openNoPublished hours: open that day, or closing at/after 18:00 on some day
limitNo
queryNo
bookingNoA route the agent can use now: the clinic's online booking page, its request form, an appointment request Xona delivers, a phone number, or any of these
serviceNoA service the clinic's own site lists: cleaning, implants, invisalign, emergency, kids, root canal, whitening …
languageNoA language the clinic's own site lists
localityNo
provinceNo
postal_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
resultsYes
projectionNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, and the description adds meaningful context beyond those: results are 'evidence-backed public profiles,' each row reports which published fact matched and when it was read, and no login is required. This gives the agent useful expectations about result provenance and access without contradicting the annotations.

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

Conciseness5/5

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

Three sentences carry all essential information: the search scope and filters, the output row behavior, and the authentication requirement. The purpose is front-loaded and every sentence earns its place with no filler.

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?

Given nine optional parameters, an output schema, and read-only annotations, the description covers search inputs, access requirements, and result-row behavior without needing to restate the output schema. It leaves minor ambiguity about how filters combine and whether at least one search criterion is expected, so it is strong but not exhaustive.

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 description coverage is only 44%, and the description compensates by mapping 'by name or place' to query/locality/province/postal_code and 'service, language, published weekend or evening hours, booking route' to the filter parameters. It adds semantic meaning to enum values, such as published hours and a route usable now, though it does not detail every parameter like limit.

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?

The description opens with a specific verb ('Search') and names the exact resource: evidence-backed public profiles in the Canadian dental directory. It enumerates the search axes (name/place, service, language, published hours, booking route) and thus distinguishes this discovery tool from sibling retrieval or booking tools like get_canadian_dental_practice and list_public_booking_slots.

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

Usage Guidelines4/5

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

The description clearly implies a search/discovery context: it explains what can be searched and notes that 'No login or clinic membership is required,' which is useful usage framing. It does not explicitly name alternatives or exclusion criteria, so it stops short of a full when/when-not guide, but the context is clear enough for an agent to select this tool for finding dentists.

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

start_dental_requestStart a dental appointment requestAInspect

Start an appointment request that Xona emails to the selected clinic, without leaving the conversation. Xona emails the patient a code to confirm their address; nothing reaches the clinic yet. Use it where list_dental_practice_actions marks xona_email_appointment_request as completes_in_conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_nameYesThe patient's name as they typed it
patient_emailYesThe patient's own email; the code goes there
practice_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYes
practiceYes
next_stepYes
consent_textYes
verificationYes
consent_versionYes

TDQS

A4.4/5.0
Behavior4/5

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

With annotations all false and no readOnly/destructive/idempotency hints, the description carries the transparency burden. It discloses non-obvious behavior: the patient receives a confirmation code by email, the request is not sent to the clinic yet, and the whole flow happens 'without leaving the conversation.' It does not discuss repeat-call effects or failure modes, but the core side effects are clear.

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

Conciseness5/5

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

Three short sentences carry all essential information, with the action and key constraint front-loaded. There is no redundant restatement of the input schema or annotation fields.

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?

The tool is moderately complex, but the description covers when to use it, what side effects occur, and the key distinction that the clinic is not contacted. An output schema exists to cover return values, and practice_slug is the only thin spot across all required inputs.

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 description coverage is 67%; patient_name and patient_email are already documented in the schema, and the description only lightly reinforces them ('the code goes there'). practice_slug lacks a schema description and is only glossed as 'the selected clinic' in the first sentence. This partially compensates but does not fully explain how to obtain or format the slug.

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?

The description opens with a specific verb and resource ('Start an appointment request') and immediately differentiates this from the request-confirmation step by stating 'nothing reaches the clinic yet.' It also references the matching action name (xona_email_appointment_request), so an agent can distinguish it from siblings like confirm_dental_request.

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?

The description gives an explicit trigger condition: 'Use it where list_dental_practice_actions marks xona_email_appointment_request as completes_in_conversation.' This tells the agent when to invoke this tool and ties it to a sibling discovery tool, leaving no ambiguity about selection.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updates
    • First observedabandon_xona_booking
    • First observedanswer_dental_practice_question
    • First observedconfirm_dental_request
    • First observedconfirm_xona_booking
    • First observedget_canadian_dental_practice
    • First observedget_dental_action_status
    • First observedhold_xona_booking_slot
    • First observedlist_dental_practice_actions
    • First observedlist_public_booking_services
    • First observedlist_public_booking_slots
    • First observedlist_xona_booking_services
    • First observedlist_xona_booking_slots
    • First observedprepare_dental_practice_action
    • First observedsearch_canadian_dentists
    • First observedstart_dental_request

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources