cliniko_get_account
Get account details
Get the Cliniko account and subscription details for the authenticated API key. A good first call to sanity-check auth, shard, and User-Agent. GET /account.
Takes no parameters.
io.usefulapiPublished by usefulapi.ioOfficial publisherv1.37.3Updated Nov 8, 2026
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
The publisher's own server: Ably MCP by usefulapi
Hosted Cliniko MCP server that lets an assistant look up patients, appointments, availability, invoices and treatment notes, and create or archive records.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.usefulapi%2Fcliniko/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"cliniko-by-usefulapi": {
"type": "http",
"url": "https://cliniko.usefulapi.io/mcp"
}
}
}Manage your Cliniko practice — patients, appointments, availability, invoices and treatment notes — from Claude, Cursor, or any MCP client. Hosted, no local install — connect with your Cliniko API key.
Live endpoint: https://cliniko.usefulapi.io/mcp · Homepage: https://usefulapi.io/cliniko
https://cliniko.usefulapi.io/mcp.claude mcp add --transport http cliniko https://cliniko.usefulapi.io/mcp, then run /mcp to log in.Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Cliniko credentials.
Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/cliniko/
On first connect you'll paste your Cliniko API key. It's validated, stored per-user, and scoped to you.
read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.
*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].
Pro covers this server only. Subscribe with cliniko_upgrade (it returns a Stripe Checkout link). Cancel any time with cliniko_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running cliniko_upgrade before then undoes the cancel. Or write to [email protected].
MIT — see LICENSE. Documentation only; the server is hosted.
Source: servers/cliniko/README.md at commit 2450437
Get account details
Get the Cliniko account and subscription details for the authenticated API key. A good first call to sanity-check auth, shard, and User-Agent. GET /account.
Takes no parameters.
List patients
Search/list patients. Name/email filters use Cliniko 'contains' matching (q[]=field:~value). GET /patients.
pagesortemailorderper_pagelast_namefirst_nameGet a patient
Fetch a single patient by id. GET /patients/{id}.
idrequiredList appointments
List individual appointments, optionally filtered by patient/practitioner/business/type and a starts_at window (starts_from / starts_to: ISO 8601 with Z or an offset, or YYYY-MM-DD = 00:00 UTC; sent to Cliniko in UTC). GET /individual_appointments.
pagesortorderper_pagestarts_topatient_idbusiness_idstarts_frompractitioner_idappointment_type_idGet an appointment
Fetch a single individual appointment by id. GET /individual_appointments/{id}.
idrequiredList practitioners
List practitioners in the account. GET /practitioners.
pageper_pageList businesses
List businesses (practice locations) in the account. GET /businesses.
pageper_pageList appointment types
List appointment types (service definitions). GET /appointment_types.
pageper_pageList products
List billable products/items. GET /products.
pageper_pageList invoices
List invoices, optionally filtered by patient. GET /invoices.
pagesortorderper_pagepatient_idGet an invoice
Fetch a single invoice by id. GET /invoices/{id}.
idrequiredList treatment notes
List treatment notes, optionally filtered by patient. NOTE: treatment notes are protected health information (PHI) — handle with care. Read-only. GET /treatment_notes.
pageper_pagepatient_idGet a treatment note
Fetch a single treatment note by id. NOTE: treatment notes are protected health information (PHI). Read-only. GET /treatment_notes/{id}.
idrequiredList available times
List bookable appointment slots for a business + practitioner + appointment type within a date range (from/to, yyyy-mm-dd, span <= 7 days). High-value booking-slot lookup. GET /businesses/{business_id}/practitioners/{practitioner_id}/appointment_types/{appointment_type_id}/available_times.
torequiredfromrequiredbusiness_idrequiredpractitioner_idrequiredappointment_type_idrequiredNext available time
Get the single next bookable slot for a business + practitioner + appointment type (optionally from a date). GET /businesses/{business_id}/practitioners/{practitioner_id}/appointment_types/{appointment_type_id}/next_available_time.
frombusiness_idrequiredpractitioner_idrequiredappointment_type_idrequiredCreate a patient
WRITE — creates a REAL new patient record in the live Cliniko practice. Requires first_name + last_name. POST /patients.
cityemailnotesstateaddress_1last_namerequiredpost_codefirst_namerequiredcountry_codephone_numberdate_of_birthCreate an appointment
WRITE — books a REAL new individual appointment in the live Cliniko practice. Requires patient_id, practitioner_id, business_id, appointment_type_id, and starts_at (ISO 8601 with Z or an offset; sent in UTC). ends_at defaults from the appointment type if omitted. To hold time without a patient (a room block, lunch, leave), use cliniko_create_unavailable_block instead. POST /individual_appointments.
notesends_atstarts_atrequiredpatient_idrequiredbusiness_idrequiredpractitioner_idrequiredappointment_type_idrequiredList unavailable block types
List the practice's unavailable block types (e.g. Room Block, Lunch, Leave) with id, name, colour and default duration. Use the id as unavailable_block_type_id in cliniko_create_unavailable_block. GET /unavailable_block_types.
pageper_pageList unavailable blocks
List unavailable blocks (diary time held without a patient: room blocks, lunch, leave), optionally filtered by business, practitioner, block type and a starts_at window (ISO 8601 with Z or an offset, or YYYY-MM-DD = 00:00 UTC). Archived blocks are excluded. GET /unavailable_blocks.
pagesortorderper_pagestarts_tobusiness_idstarts_frompractitioner_idunavailable_block_type_idCreate an unavailable block
WRITE — holds REAL diary time in the live Cliniko practice without a patient: a room block, lunch, leave or meeting. No patient_id. Requires business_id, practitioner_id (the diary column to block), starts_at and ends_at (ISO 8601 with Z or an offset; sent in UTC). Set unavailable_block_type_id (from cliniko_list_unavailable_block_types, e.g. the Room Block type) and put the room or reason in notes. repeat_rule repeats the block. Undo with cliniko_archive_unavailable_block. POST /unavailable_blocks.
notesends_atrequiredstarts_atrequiredbusiness_idrequiredrepeat_rulepractitioner_idrequiredunavailable_block_type_idArchive an unavailable block
WRITE — archives (removes from the diary) one REAL unavailable block in the live Cliniko practice, e.g. to undo a block created by mistake. POST /unavailable_blocks/{id}/archive.
idrequired100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
io.usefulapiOfficial publisher
Hosted MCP server for Ably realtime messaging: inspect channel history, presence and occupancy, publish messages, and review app usage and configuration.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant read Tiltify campaigns, donations and top donor and fundraiser leaderboards.
io.usefulapiOfficial publisher
Hosted Termii server that lets an assistant send SMS, check wallet balance, DND status, sender IDs and message history.
io.usefulapiOfficial publisher
Hosted MCP server that lets an assistant read Temp Stick temperature and humidity sensors, their readings and alert notifications.
io.usefulapiOfficial publisher
Connects an assistant to a Stibee email marketing workspace to read address books, subscribers and email stats, and to add subscribers and group members.
{ "mcpServers": { "cliniko": { "url": "https://cliniko.usefulapi.io/mcp" } }}