cliniko
Server Details
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
17 toolscliniko_create_appointmentCreate an appointmentDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Appointment notes. | |
| ends_at | No | End time, ISO 8601. Defaults from the appointment type if omitted. | |
| starts_at | Yes | Start time, ISO 8601 e.g. 2026-07-20T09:00:00Z (required). | |
| patient_id | Yes | Patient id (required). | |
| business_id | Yes | Business id (required). | |
| practitioner_id | Yes | Practitioner id (required). | |
| appointment_type_id | Yes | Appointment type id (required). |
cliniko_create_patientCreate a patientDestructiveInspect
WRITE — creates a REAL new patient record in the live Cliniko practice. Requires first_name + last_name. POST /patients.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City. | |
| No | Email address. | ||
| notes | No | Free-text notes. | |
| state | No | State / region. | |
| address_1 | No | Street address line 1. | |
| last_name | Yes | Patient last name (required). | |
| post_code | No | Post / ZIP code. | |
| first_name | Yes | Patient first name (required). | |
| country_code | No | ISO country code, e.g. AU. | |
| phone_number | No | A phone number (stored as a Mobile phone number). | |
| date_of_birth | No | Date of birth yyyy-mm-dd. |
cliniko_get_accountGet account detailsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cliniko_get_appointmentGet an appointmentRead-onlyInspect
Fetch a single individual appointment by id. GET /individual_appointments/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Individual appointment id. |
cliniko_get_invoiceGet an invoiceRead-onlyInspect
Fetch a single invoice by id. GET /invoices/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice id. |
cliniko_get_patientGet a patientRead-onlyInspect
Fetch a single patient by id. GET /patients/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Patient id. |
cliniko_get_treatment_noteGet a treatment noteRead-onlyInspect
Fetch a single treatment note by id. NOTE: treatment notes are protected health information (PHI). Read-only. GET /treatment_notes/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Treatment note id. |
cliniko_list_appointmentsList appointmentsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| sort | No | Field to sort by, e.g. created_at. | |
| order | No | Sort direction. asc | desc. | |
| per_page | No | Results per page (max 100). Default 50. | |
| starts_to | No | Only appointments starting before this ISO 8601 time (q[]=starts_at:<). | |
| patient_id | No | Filter by patient id (q[]=patient_id:=). | |
| business_id | No | Filter by business id. | |
| starts_from | No | Only appointments starting at/after this ISO 8601 time (q[]=starts_at:>). | |
| practitioner_id | No | Filter by practitioner id. | |
| appointment_type_id | No | Filter by appointment type id. |
cliniko_list_appointment_typesList appointment typesRead-onlyInspect
List appointment types (service definitions). GET /appointment_types.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| per_page | No | Results per page (max 100). Default 50. |
cliniko_list_available_timesList available timesRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Range end yyyy-mm-dd (cannot be more than 7 days after `from`). | |
| from | Yes | Range start yyyy-mm-dd (cannot be more than 7 days before `to`). | |
| business_id | Yes | Business id (path). | |
| practitioner_id | Yes | Practitioner id (path). | |
| appointment_type_id | Yes | Appointment type id (path). |
cliniko_list_businessesList businessesRead-onlyInspect
List businesses (practice locations) in the account. GET /businesses.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| per_page | No | Results per page (max 100). Default 50. |
cliniko_list_invoicesList invoicesRead-onlyInspect
List invoices, optionally filtered by patient. GET /invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| sort | No | Field to sort by, e.g. created_at. | |
| order | No | Sort direction. asc | desc. | |
| per_page | No | Results per page (max 100). Default 50. | |
| patient_id | No | Filter by patient id (q[]=patient_id:=). |
cliniko_list_patientsList patientsRead-onlyInspect
Search/list patients. Name/email filters use Cliniko 'contains' matching (q[]=field:~value). GET /patients.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| sort | No | Field to sort by, e.g. created_at. | |
| No | Filter by email (contains match). | ||
| order | No | Sort direction. asc | desc. | |
| per_page | No | Results per page (max 100). Default 50. | |
| last_name | No | Filter by last name (contains match). | |
| first_name | No | Filter by first name (contains match). |
cliniko_list_practitionersList practitionersRead-onlyInspect
List practitioners in the account. GET /practitioners.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| per_page | No | Results per page (max 100). Default 50. |
cliniko_list_productsList productsRead-onlyInspect
List billable products/items. GET /products.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| per_page | No | Results per page (max 100). Default 50. |
cliniko_list_treatment_notesList treatment notesRead-onlyInspect
List treatment notes, optionally filtered by patient. NOTE: treatment notes are protected health information (PHI) — handle with care. Read-only. GET /treatment_notes.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default 1. | |
| per_page | No | Results per page (max 100). Default 50. | |
| patient_id | No | Filter by patient id (q[]=patient_id:=). |
cliniko_next_available_timeNext available timeRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Optional earliest date yyyy-mm-dd to search from. | |
| business_id | Yes | Business id (path). | |
| practitioner_id | Yes | Practitioner id (path). | |
| appointment_type_id | Yes | Appointment type id (path). |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!