Servidor MCP

cliniko

io.usefulapi/cliniko
Negocio y operaciones Salud Público y accesible MCP 2026-07-28

Qué hace este MCP

Manages Cliniko patients, practitioners, practices, appointments, availability, treatment notes, products, and invoices.

cliniko_create_appointment
Create 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). ends_at defaults from the appointment type if omitted. POST /individual_appointments.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['patient_id', 'practitioner_id', 'business_id', 'appointment_type_id', 'starts_at'], 'properties': {'notes': {'type': 'string', 'description': 'Appointment notes.'}, 'ends_at': {'type': 'string', 'description': 'End time, ISO 8601. Defaults from the appointment type if omitted.'}, 'starts_at': {'type': 'string', 'minLength': 1, 'description': 'Start time, ISO 8601 e.g. 2026-07-20T09:00:00Z (required).'}, 'patient_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Patient id (required).'}, 'business_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Business id (required).'}, 'practitioner_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Practitioner id (required).'}, 'appointment_type_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Appointment type id (required).'}}}
cliniko_create_patient
Create a patient
WRITE — creates a REAL new patient record in the live Cliniko practice. Requires first_name + last_name. POST /patients.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['first_name', 'last_name'], 'properties': {'city': {'type': 'string', 'description': 'City.'}, 'email': {'type': 'string', 'description': 'Email address.'}, 'notes': {'type': 'string', 'description': 'Free-text notes.'}, 'state': {'type': 'string', 'description': 'State / region.'}, 'address_1': {'type': 'string', 'description': 'Street address line 1.'}, 'last_name': {'type': 'string', 'minLength': 1, 'description': 'Patient last name (required).'}, 'post_code': {'type': 'string', 'description': 'Post / ZIP code.'}, 'first_name': {'type': 'string', 'minLength': 1, 'description': 'Patient first name (required).'}, 'country_code': {'type': 'string', 'description': 'ISO country code, e.g. AU.'}, 'phone_number': {'type': 'string', 'description': 'A phone number (stored as a Mobile phone number).'}, 'date_of_birth': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date of birth yyyy-mm-dd.'}}}
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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
cliniko_get_appointment
Get an appointment
Fetch a single individual appointment by id. GET /individual_appointments/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Individual appointment id.'}}}
cliniko_get_invoice
Get an invoice
Fetch a single invoice by id. GET /invoices/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Invoice id.'}}}
cliniko_get_patient
Get a patient
Fetch a single patient by id. GET /patients/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Patient id.'}}}
cliniko_get_treatment_note
Get a treatment note
Fetch a single treatment note by id. NOTE: treatment notes are protected health information (PHI). Read-only. GET /treatment_notes/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Treatment note id.'}}}
cliniko_list_appointments
List appointments
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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'sort': {'type': 'string', 'description': 'Field to sort by, e.g. created_at.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. asc | desc.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}, 'starts_to': {'type': 'string', 'description': 'Only appointments starting before this ISO 8601 time (q[]=starts_at:<).'}, 'patient_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Filter by patient id (q[]=patient_id:=).'}, 'business_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Filter by business id.'}, 'starts_from': {'type': 'string', 'description': 'Only appointments starting at/after this ISO 8601 time (q[]=starts_at:>).'}, 'practitioner_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Filter by practitioner id.'}, 'appointment_type_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Filter by appointment type id.'}}}
cliniko_list_appointment_types
List appointment types
List appointment types (service definitions). GET /appointment_types.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}}}
cliniko_list_available_times
List 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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['business_id', 'practitioner_id', 'appointment_type_id', 'from', 'to'], 'properties': {'to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Range end yyyy-mm-dd (cannot be more than 7 days after `from`).'}, 'from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Range start yyyy-mm-dd (cannot be more than 7 days before `to`).'}, 'business_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Business id (path).'}, 'practitioner_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Practitioner id (path).'}, 'appointment_type_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Appointment type id (path).'}}}
cliniko_list_businesses
List businesses
List businesses (practice locations) in the account. GET /businesses.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}}}
cliniko_list_invoices
List invoices
List invoices, optionally filtered by patient. GET /invoices.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'sort': {'type': 'string', 'description': 'Field to sort by, e.g. created_at.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. asc | desc.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}, 'patient_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Filter by patient id (q[]=patient_id:=).'}}}
cliniko_list_patients
List patients
Search/list patients. Name/email filters use Cliniko 'contains' matching (q[]=field:~value). GET /patients.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'sort': {'type': 'string', 'description': 'Field to sort by, e.g. created_at.'}, 'email': {'type': 'string', 'description': 'Filter by email (contains match).'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. asc | desc.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}, 'last_name': {'type': 'string', 'description': 'Filter by last name (contains match).'}, 'first_name': {'type': 'string', 'description': 'Filter by first name (contains match).'}}}
cliniko_list_practitioners
List practitioners
List practitioners in the account. GET /practitioners.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}}}
cliniko_list_products
List products
List billable products/items. GET /products.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}}}
cliniko_list_treatment_notes
List 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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-based). Default 1.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'description': 'Results per page (max 100). Default 50.', 'exclusiveMinimum': 0}, 'patient_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Filter by patient id (q[]=patient_id:=).'}}}
cliniko_next_available_time
Next 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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['business_id', 'practitioner_id', 'appointment_type_id'], 'properties': {'from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional earliest date yyyy-mm-dd to search from.'}, 'business_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Business id (path).'}, 'practitioner_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Practitioner id (path).'}, 'appointment_type_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'string', 'minLength': 1}], 'description': 'Appointment type id (path).'}}}
Modificado
cliniko_create_appointment
1 de October de 2026 a las 02:50
Modificado
cliniko_create_patient
1 de October de 2026 a las 02:50
Modificado
cliniko_next_available_time
1 de October de 2026 a las 02:50
Modificado
cliniko_list_available_times
1 de October de 2026 a las 02:50
Modificado
cliniko_get_treatment_note
1 de October de 2026 a las 02:50
Modificado
cliniko_list_treatment_notes
1 de October de 2026 a las 02:50
Modificado
cliniko_get_invoice
1 de October de 2026 a las 02:50
Modificado
cliniko_list_invoices
1 de October de 2026 a las 02:50
Modificado
cliniko_list_products
1 de October de 2026 a las 02:50
Modificado
cliniko_list_appointment_types
1 de October de 2026 a las 02:50
Modificado
cliniko_list_businesses
1 de October de 2026 a las 02:50
Modificado
cliniko_list_practitioners
1 de October de 2026 a las 02:50
Modificado
cliniko_get_appointment
1 de October de 2026 a las 02:50
Modificado
cliniko_list_appointments
1 de October de 2026 a las 02:50
Modificado
cliniko_get_patient
1 de October de 2026 a las 02:50
Modificado
cliniko_list_patients
1 de October de 2026 a las 02:50
Modificado
cliniko_get_account
1 de October de 2026 a las 02:50
Añadido
cliniko_create_appointment
17 de September de 2026 a las 12:53
Añadido
cliniko_create_patient
17 de September de 2026 a las 12:53
Añadido
cliniko_next_available_time
17 de September de 2026 a las 12:53
Añadido
cliniko_list_available_times
17 de September de 2026 a las 12:53
Añadido
cliniko_get_treatment_note
17 de September de 2026 a las 12:53
Añadido
cliniko_list_treatment_notes
17 de September de 2026 a las 12:53
Añadido
cliniko_get_invoice
17 de September de 2026 a las 12:53
Añadido
cliniko_list_invoices
17 de September de 2026 a las 12:53
Añadido
cliniko_list_products
17 de September de 2026 a las 12:53
Añadido
cliniko_list_appointment_types
17 de September de 2026 a las 12:53
Añadido
cliniko_list_businesses
17 de September de 2026 a las 12:53
Añadido
cliniko_list_practitioners
17 de September de 2026 a las 12:53
Añadido
cliniko_get_appointment
17 de September de 2026 a las 12:53