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