usefulapi

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

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://cliniko.usefulapi.io/mcp
  3. Authenticate with Cliniko when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "cliniko": {
      "url": "https://cliniko.usefulapi.io/mcp"
    }
  }
}
live19 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 19

ToolTypeWhat it does
cliniko_get_accountread
Get account
Get the Cliniko account and subscription details for the API key — a quick way to confirm auth, region shard, and User-Agent are all correct.
cliniko_list_patientsread
List patients
Search and list patients with 'contains' filters on first name, last name, and email, paginated and sortable.
cliniko_get_patientread
Get patient
Fetch a single patient's full record by id, including contact details and demographics.
cliniko_list_appointmentsread
List appointments
List individual appointments, optionally filtered by patient, practitioner, business, or type within a start-time window.
cliniko_get_appointmentread
Get appointment
Fetch a single individual appointment by id with its full scheduling details.
cliniko_list_practitionersread
List practitioners
List the practitioners in the account.
cliniko_list_businessesread
List businesses
List the businesses (practice locations) in the account.
cliniko_list_appointment_typesread
List appointment types
List the appointment types (service definitions) offered by the practice.
cliniko_list_productsread
List products
List the billable products and items configured in the account.
cliniko_list_invoicesread
List invoices
List invoices, optionally filtered by patient, paginated and sortable.
cliniko_get_invoiceread
Get invoice
Fetch a single invoice by id with its line items and totals.
cliniko_list_treatment_notesread
List treatment notes
List treatment notes (protected health information), optionally filtered by patient — read-only, handle with care.
cliniko_get_treatment_noteread
Get treatment note
Fetch a single treatment note by id (protected health information) — read-only.
cliniko_list_available_timesread
List available times
List bookable appointment slots for a business, practitioner, and appointment type across a date range of up to seven days.
cliniko_next_available_timeread
Next available time
Get the single next bookable slot for a business, practitioner, and appointment type, optionally from a given date.
cliniko_create_patientwrite
Create patient
Create a real new patient record in the live practice from a first and last name, plus optional contact and demographic details.
cliniko_create_appointmentwrite
Create appointment
Book a real new individual appointment in the live practice for a patient, practitioner, business, and appointment type at a given start time.
cliniko_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter.
cliniko_upgrademeta
Upgrade to Pro (unlimited)
Subscribe to the Pro plan for UNLIMITED Cliniko tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Pro$9/mo · $90/yrUnlimited

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.