# Usefulapi Cliniko MCP server

Source: https://glimind.com/server/mcp-registry%2Fio.usefulapi%2Fcliniko
Registry id: `mcp-registry/io.usefulapi/cliniko`
Status: auth-required (checked 2026-10-27T05:37:46.788Z)

## Verdict

Usefulapi Cliniko MCP server answered 100% of Glimind's liveness checks over 30 days, better than 42% of MCP servers, with 72 ms median handshake and 0 outages in 90 days. Its agent-readiness grade is A (96/100) across 17 tools, costing an agent about 3,581 tokens to load. Checked every few minutes; no tool is ever called.

## Measurements (30 days)

| Metric | Value | Better than |
|---|---|---|
| Uptime, 30 days | 100% | 42% of MCP servers |
| Median handshake latency | 72 ms | 87% of MCP servers |
| p95 handshake latency | 305 ms | — |
| Checks in 30 days | 218 | — |
| Outages, 90 days | 0 | — |
| Median recovery | — | — |
| Agent-readiness score | 96/100 (A) | 82% of MCP servers |
| Tools | 17 | — |
| Tool-list size for an agent | ~3,581 tokens | 43% of MCP servers |
| Days observed | 28 | — |

## Install

```json
{
  "mcpServers": {
    "usefulapi-cliniko-mcp-server": {
      "type": "http",
      "url": "https://cliniko.usefulapi.io/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http usefulapi-cliniko-mcp-server https://cliniko.usefulapi.io/mcp
```

## Tools (17)

- `cliniko_create_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
- `cliniko_create_patient`: WRITE — creates a REAL new patient record in the live Cliniko practice. Requires first_name + last_name. POST /patients.
- `cliniko_get_account`: 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.
- `cliniko_get_appointment`: Fetch a single individual appointment by id. GET /individual_appointments/{id}.
- `cliniko_get_invoice`: Fetch a single invoice by id. GET /invoices/{id}.
- `cliniko_get_patient`: Fetch a single patient by id. GET /patients/{id}.
- `cliniko_get_treatment_note`: Fetch a single treatment note by id. NOTE: treatment notes are protected health information (PHI). Read-only. GET /treatment_notes/{id}.
- `cliniko_list_appointment_types`: List appointment types (service definitions). GET /appointment_types.
- `cliniko_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). GE
- `cliniko_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-s
- `cliniko_list_businesses`: List businesses (practice locations) in the account. GET /businesses.
- `cliniko_list_invoices`: List invoices, optionally filtered by patient. GET /invoices.
- `cliniko_list_patients`: Search/list patients. Name/email filters use Cliniko 'contains' matching (q[]=field:~value). GET /patients.
- `cliniko_list_practitioners`: List practitioners in the account. GET /practitioners.
- `cliniko_list_products`: List billable products/items. GET /products.
- `cliniko_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
- `cliniko_next_available_time`: Get the single next bookable slot for a business + practitioner + appointment type (optionally from a date). GET /businesses/{business_id}/practitioners/{practi

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
