Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Xona Dental Gateway is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Find Canadian dentists; send an appointment request or book with a connected practice.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http xona-dental-gateway-mcp https://book.xonark.com/mcp
# 2 — ask your agent for something these tools do
# search_canadian_dentists, get_canadian_dental_practice, answer_dental_practice_question and 17 more
Xona Dental Gateway costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http xona-dental-gateway-mcp https://book.xonark.com/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
20 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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, a booking route you can use now, and a payment plan the clinic says it accepts (the Canadian Dental Care Plan). Each row says which published fact matched and when it was read. A search with order=soonest, the patient's postal code or ci
| Parameter | Type | Required | Notes |
|---|---|---|---|
| booking | string | no | A 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 |
| coverage | string | no | A payment plan the clinic says it accepts, on its own website or in a correction its owner made: cdcp is the Canadian Dental Care Plan. Each row quotes the clinic's own words and the day they were rea |
| language | string | no | A language the clinic's own site lists |
| limit | integer | no | — |
| locality | string | no | — |
| open | string | no | Published hours: open that day, or closing at/after 18:00 on some day |
| order | string | no | route (default) orders by booking route; soonest orders one place's practices by when they can be seen, and needs that place: its locality (and province when the name is in more than one), or a postal |
| page | integer | no | Page of results, from 1; each page holds limit rows |
| postal_code | string | no | — |
| province | string | no | — |
| query | string | no | — |
| service | string | no | A service the clinic's own site lists: cleaning, implants, invisalign, emergency, kids, root canal, whitening … |
Get one public dental practice profile, fact evidence, citations, and current public actions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| practice_slug | string | yes | — |
Answer a bounded factual question from the selected practices' evidence. Unknown is returned explicitly; missing data is never inferred as no.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| practice_slugs | array | yes | — |
| topic | string | yes | — |
List current public booking, request, form, call, and website actions for a dental practice in preference order.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| practice_slug | string | yes | — |
Creates a short-lived action for one capability the clinic's action options list (its scheduler page, a Xona request, a request form, a call or its website) and returns the URL of the page for it. A capability the clinic does not list is refused. A connected practice's time from list_xona_booking_slots is held with hold_xona_booking_slot, not through this tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| capability | string | yes | — |
| practice_slug | string | yes | — |
Read the exact outcome of an expiring dental action. Handoff, request, and confirmed booking outcomes remain distinct.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
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 schedule
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fresh | boolean | no | Read this clinic's scheduler now rather than from a read up to 5 minutes old |
| practice_slug | string | yes | — |
Read open times from a clinic's own online scheduler, by practice_slug, for one service_id between date_from and date_to (the clinic's dates, both included, at most 14 days). Each time carries starts_at, start_local (the time at the clinic), time_zone and booking_url, the page where the patient books that time (Xona's page on that service and day where Xona books the clinic's scheduler, else the c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date_from | string | yes | First day to read, in the clinic's time zone; today or later |
| date_to | string | yes | Last day to read (inclusive), at most 13 days after date_from |
| fresh | boolean | no | Read this clinic's scheduler now rather than from a read up to 5 minutes old |
| practice_slug | string | yes | — |
| preferred_time | string | no | The patient's preferred local start time, 24-hour HH:MM; the closest times come first |
| service_id | string | yes | A service_id from list_public_booking_services, or from a soonest search row's services |
For a public_provider_booking action: keeps one time from list_public_booking_slots (or a soonest search row's earliest) and returns continue_url, Xona's page where the patient enters their own details and presses Book. Xona then books that time in the clinic's own scheduler. It takes the action and the time (service_id, slot_id, starts_at) only, reads that time again and keeps it only if it is st
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
| service_id | string | yes | The chosen time's service_id. |
| slot_id | string | yes | The chosen time's id from list_public_booking_slots (slot_id on a soonest row's earliest). |
| starts_at | string | yes | The chosen time's starts_at, exactly as returned. |
Start an appointment request that Xona sends to the selected clinic (by email, or through the clinic's own website form), without leaving the conversation. Xona first emails the patient a code that confirms their address; confirm_dental_request then sends the request. Use it where list_dental_practice_actions marks xona_email_appointment_request as completes_in_conversation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| patient_email | string | yes | The patient's own email; the code goes there |
| patient_name | string | yes | The patient's name as they typed it |
| practice_slug | string | yes | — |
Send the started request to the clinic. It takes the 6-digit code Xona emailed the patient and the consent_version of the consent_text the patient agreed to. The outcome is a delivered, held or failed request, never a confirmed booking. Calling again with the same action_id returns the same outcome.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
| consent_version | string | yes | — |
| note | string | no | — |
| preferred_window | string | yes | When the patient is free, in their words |
| service_category | string | yes | — |
| verification_code | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| practice_slug | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date_from | string | yes | First day to search, in the practice's time zone |
| date_to | string | yes | Last day to search (inclusive); at most 56 days after date_from and 8 weeks from today |
| doctor_id | string | no | Restrict to one provider, using a doctor_id a previous slot listing returned |
| practice_slug | string | yes | — |
| preferred_time | string | no | The patient's preferred local start time, 24-hour HH:MM; slots closest to it come first |
| service_id | string | yes | — |
Hold one open time and text the patient a link to it. The page the link opens shows the time and the details above a Book this appointment button. When the patient presses it the appointment is booked, or, at a practice that confirms bookings itself, sent to the practice as a request.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | yes | The chosen slot's date exactly as list_xona_booking_slots returned it |
| date_of_birth | string | yes | The patient's date of birth, as the patient gave it in this conversation |
| first_name | string | yes | The patient's first name, as the patient gave it in this conversation |
| guardian_name | string | no | Required when the patient is under 16 |
| last_name | string | yes | The patient's last name, as the patient gave it in this conversation |
| note | string | no | — |
| patient_phone | string | yes | The patient's own Canadian or US mobile number, as the patient gave it in this conversation; the booking link is texted there |
| practice_slug | string | yes | — |
| service_id | string | yes | — |
| slot_fingerprint | string | yes | — |
Get the result once the patient has tapped the text link and pressed Book this appointment. Until then it returns waiting_for_patient. Xona finds an existing patient itself; when it cannot tell, it returns the practice's booking page instead of guessing. If the booking stopped before it was written, the first call tries it once more. Calling again returns the same outcome.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
Text a patient one link to see, move or cancel the appointments they already have at a practice connected to Xona, for a conversation with no booking action_id that still works. If the mobile number, name and date of birth match a patient there, Xona texts them the link; after they tap it and press Show my appointments, list_xona_appointments reads their appointments. The answer is the same whethe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date_of_birth | string | yes | — |
| first_name | string | yes | — |
| last_name | string | yes | — |
| patient_phone | string | yes | The patient's own Canadian or US mobile number, as the practice has it on file |
| practice_slug | string | yes | — |
Read the named patient's upcoming appointments at the practice, live from its schedule, after the patient tapped the text link. Works with the action_id of a booking made in this conversation (for 30 minutes after the tap, and for that appointment until its day) or of start_xona_appointment_access. Before the tap it says it is still waiting.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
List open times one of the patient's appointments can move to, for its own service and provider, between date_from and date_to. appointment_ref comes from list_xona_appointments.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
| appointment_ref | string | yes | — |
| date_from | string | yes | First day to search, in the practice's time zone |
| date_to | string | yes | Last day to search (inclusive); at most 56 days after date_from and 8 weeks from today |
Move or cancel one of the patient's appointments. Xona texts the patient a link to a page that shows the exact change. When they press its button (or type the code from the text on book.xonark.com/code) the practice's schedule changes, or, at a practice that confirms changes itself, the practice receives the request. Calling again with the same arguments returns the result, read live from the prac
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_id | string | yes | — |
| appointment_ref | string | yes | — |
| date | string | no | For a reschedule: the new time's date exactly as list_xona_reschedule_times returned it |
| kind | string | yes | — |
| slot_fingerprint | string | no | For a reschedule: the new time's slot_fingerprint from list_xona_reschedule_times |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Xona Dental Gateway or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Xona Dental Gateway can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.