Skip to main content
Glama

Cliniko MCP by usefulapi

Server Details

Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
69.5% over 55 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair such as patients, appointments, invoices, treatment notes, or availability. Even the two availability tools are clearly separated by description: list_available_times returns multiple slots while next_available_time returns one.

Naming Consistency4/5

Tools consistently use the cliniko_ prefix with get_, list_, or create_ verbs before a resource name. The only notable deviation is cliniko_next_available_time, which lacks an explicit verb, but the overall pattern remains predictable and easy to navigate.

Tool Count4/5

At 17 tools, the server is on the higher end but still reasonable for a practice-management API covering account info, businesses, practitioners, patients, appointments, invoices, treatment notes, products, and availability. Each tool maps to a meaningful endpoint, though next_available_time could be seen as partially redundant with list_available_times.

Completeness3/5

The core booking workflow is covered well: clients can look up availability and create appointments, and patient lookup is supported. However, there are no update, delete, or cancel operations for appointments or patients, and invoices and treatment notes are read-only, leaving notable lifecycle gaps.

Available Tools

17 tools
cliniko_create_appointmentCreate an appointment
Destructive
Inspect

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). ends_at defaults from the appointment type if omitted. POST /individual_appointments.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAppointment notes.
ends_atNoEnd time, ISO 8601. Defaults from the appointment type if omitted.
starts_atYesStart time, ISO 8601 e.g. 2026-07-20T09:00:00Z (required).
patient_idYesPatient id (required).
business_idYesBusiness id (required).
practitioner_idYesPractitioner id (required).
appointment_type_idYesAppointment type id (required).
cliniko_create_patientCreate a patient
Destructive
Inspect

WRITE — creates a REAL new patient record in the live Cliniko practice. Requires first_name + last_name. POST /patients.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity.
emailNoEmail address.
notesNoFree-text notes.
stateNoState / region.
address_1NoStreet address line 1.
last_nameYesPatient last name (required).
post_codeNoPost / ZIP code.
first_nameYesPatient first name (required).
country_codeNoISO country code, e.g. AU.
phone_numberNoA phone number (stored as a Mobile phone number).
date_of_birthNoDate of birth yyyy-mm-dd.
cliniko_get_accountGet account details
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

cliniko_get_appointmentGet an appointment
Read-only
Inspect

Fetch a single individual appointment by id. GET /individual_appointments/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIndividual appointment id.
cliniko_get_invoiceGet an invoice
Read-only
Inspect

Fetch a single invoice by id. GET /invoices/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInvoice id.
cliniko_get_patientGet a patient
Read-only
Inspect

Fetch a single patient by id. GET /patients/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPatient id.
cliniko_get_treatment_noteGet a treatment note
Read-only
Inspect

Fetch a single treatment note by id. NOTE: treatment notes are protected health information (PHI). Read-only. GET /treatment_notes/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTreatment note id.
cliniko_list_appointmentsList appointments
Read-only
Inspect

List individual appointments, optionally filtered by patient/practitioner/business/type and a starts_at date-time window (starts_from / starts_to, ISO 8601). GET /individual_appointments.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
sortNoField to sort by, e.g. created_at.
orderNoSort direction. asc | desc.
per_pageNoResults per page (max 100). Default 50.
starts_toNoOnly appointments starting before this ISO 8601 time (q[]=starts_at:<).
patient_idNoFilter by patient id (q[]=patient_id:=).
business_idNoFilter by business id.
starts_fromNoOnly appointments starting at/after this ISO 8601 time (q[]=starts_at:>).
practitioner_idNoFilter by practitioner id.
appointment_type_idNoFilter by appointment type id.
cliniko_list_appointment_typesList appointment types
Read-only
Inspect

List appointment types (service definitions). GET /appointment_types.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
per_pageNoResults per page (max 100). Default 50.
cliniko_list_available_timesList available times
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRange end yyyy-mm-dd (cannot be more than 7 days after `from`).
fromYesRange start yyyy-mm-dd (cannot be more than 7 days before `to`).
business_idYesBusiness id (path).
practitioner_idYesPractitioner id (path).
appointment_type_idYesAppointment type id (path).
cliniko_list_businessesList businesses
Read-only
Inspect

List businesses (practice locations) in the account. GET /businesses.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
per_pageNoResults per page (max 100). Default 50.
cliniko_list_invoicesList invoices
Read-only
Inspect

List invoices, optionally filtered by patient. GET /invoices.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
sortNoField to sort by, e.g. created_at.
orderNoSort direction. asc | desc.
per_pageNoResults per page (max 100). Default 50.
patient_idNoFilter by patient id (q[]=patient_id:=).
cliniko_list_patientsList patients
Read-only
Inspect

Search/list patients. Name/email filters use Cliniko 'contains' matching (q[]=field:~value). GET /patients.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
sortNoField to sort by, e.g. created_at.
emailNoFilter by email (contains match).
orderNoSort direction. asc | desc.
per_pageNoResults per page (max 100). Default 50.
last_nameNoFilter by last name (contains match).
first_nameNoFilter by first name (contains match).
cliniko_list_practitionersList practitioners
Read-only
Inspect

List practitioners in the account. GET /practitioners.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
per_pageNoResults per page (max 100). Default 50.
cliniko_list_productsList products
Read-only
Inspect

List billable products/items. GET /products.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
per_pageNoResults per page (max 100). Default 50.
cliniko_list_treatment_notesList treatment notes
Read-only
Inspect

List treatment notes, optionally filtered by patient. NOTE: treatment notes are protected health information (PHI) — handle with care. Read-only. GET /treatment_notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default 1.
per_pageNoResults per page (max 100). Default 50.
patient_idNoFilter by patient id (q[]=patient_id:=).
cliniko_next_available_timeNext available time
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoOptional earliest date yyyy-mm-dd to search from.
business_idYesBusiness id (path).
practitioner_idYesPractitioner id (path).
appointment_type_idYesAppointment type id (path).

Tool Schema Changelog

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

  1. 17 tool updates
    • Changedcliniko_create_appointment1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_create_patient1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_get_account1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_get_appointment1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_get_invoice1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_get_patient1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_get_treatment_note1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_appointment_types1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_appointments1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_available_times1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_businesses1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_invoices1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_patients1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_practitioners1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_products1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_list_treatment_notes1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcliniko_next_available_time1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 17 tool updates
    • First observedcliniko_create_appointment
    • First observedcliniko_create_patient
    • First observedcliniko_get_account
    • First observedcliniko_get_appointment
    • First observedcliniko_get_invoice
    • First observedcliniko_get_patient
    • First observedcliniko_get_treatment_note
    • First observedcliniko_list_appointment_types
    • First observedcliniko_list_appointments
    • First observedcliniko_list_available_times
    • First observedcliniko_list_businesses
    • First observedcliniko_list_invoices
    • First observedcliniko_list_patients
    • First observedcliniko_list_practitioners
    • First observedcliniko_list_products
    • First observedcliniko_list_treatment_notes
    • First observedcliniko_next_available_time

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that lets AI assistants query your Halaxy practice-management data—appointments, invoices, referrals, and practitioners—via natural language, exposing read-only tools for daily schedules, billing status, and session limits.
    GPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for the Semble practice-management API, enabling AI agents to search for patients, contacts, and users, as well as retrieve patient relationships via read-only tools.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Clinical decision-support MCP server that lets AI agents reason over live FHIR patient data for medication review, appointment scheduling, and care gap identification.
    8,040 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.