Xona Dental Gatewaybook.xonark.com

Use this gateway with an AI assistant

An assistant connected to Xona can search Canadian dental practices, send an appointment request to one, and — where a practice has connected its schedule — book a real open time, all without leaving the conversation.

POST https://book.xonark.com/mcp

Streamable HTTP. No account, no API key, no OAuth. Tool definitions: /mcp/llms.txt

POST https://book.xonark.com/api/public/dental-network/tools/{tool}

The same tools over plain HTTP: the tool's arguments as the JSON body, its result as the response. Every operation is in /openapi.json. Pages on this site also offer the same tools to a browser agent through WebMCP.

Connect it

Claude: open the + menu next to the message box, go to Connectors, choose Add custom connector, paste https://book.xonark.com/mcp, and leave authentication off.

ChatGPT: turn on Developer mode under Settings, Security and login. Then open Plugins, press +, paste https://book.xonark.com/mcp and choose No Auth. In a chat, press + and pick Xona Dental Gateway before you ask.

Any other agent: call the HTTP route above, or point an OpenAPI-aware tool at /openapi.json.

An assistant without any of these can still find a practice and hand the patient its booking page, but it cannot book inside the conversation.

Two routes, and the practice decides which

Call list_dental_practice_actions first. It marks the route a practice actually offers; a route it does not offer is not there to call.

Appointment request

Any listed practice with a working mailbox. Xona emails the request to the clinic; a person there answers it.

  1. The assistant asks for the patient's name, their own email, a service category and when they are free. start_dental_request then emails the patient one link. Nothing has reached the clinic.
  2. The link shows the exact request and the consent text the tool returned, with one button: Send this request. The patient's press sends it. If the link will not open, the patient types the email's code on the request page. No code is read back in the conversation.
  3. confirm_dental_request reports the status: waiting for the patient until the press, then the result. It never sends.

Ends as delivered, unknown or failed, or stopped by the patient, never as a confirmed appointment. The link and the request expire 20 minutes after it starts. The clinic replies to the patient.

Booking

A practice that claimed its page and connected its schedule to Xona. The time is written into the clinic's own book.

  1. list_xona_booking_services, then list_xona_booking_slots for one service, a week at a time.
  2. The assistant asks the patient for their mobile, name and date of birth in the conversation and reads the time and details back. hold_xona_booking_slot then holds that time and texts the patient one link. The patient taps it, checks the details and presses Book this appointment; that books it. No code is read back in the conversation.
  3. confirm_xona_booking returns the result once the patient has pressed the button; until then it says the link is waiting. Every step returns booking_steps: what is done, what the patient still has to do, and when the link expires.
  4. At any step the patient can stop: abandon_xona_booking releases the time at once. Or they can finish in a browser: continue_url opens the practice's booking page on the held time.

Ends as a confirmed appointment in the clinic's book — or, where the practice confirms times itself, as a request the clinic answers. The outcome field says which. If Xona cannot tell whether the patient already has a chart there, it returns the practice's own booking page instead of guessing.

What the patient does themselves

Two things an assistant cannot do on the patient's behalf.

What leaves the conversation

Appointment booking, the same fields any booking takes. Nothing clinical.

Every tool this endpoint serves

Generated from the running server, so this list is what is actually there.

Reading the gateway without tools

Every public page has a Markdown twin at the same path with .md — /index.md, a locality page, a profile. /llms.txt is the guide to all of it, and /openapi.json describes the same reads as REST. Pages a crawler should not take in bulk are listed in /robots.txt, and the terms of use say what use is permitted.

Search by place and condition

For an assistant that can only open a URL. The same question the search tool answers, as one GET.

Corrections and support

A practice's facts come from its own public website and from public directory records, each carrying the day it was read. Being listed is not a Xona membership. A practice can correct or claim its page, and anyone can reach a person, through contact. How patient data is handled is set out in Xonark's privacy policy.