Cliniko logoMCP server · Work management

Cliniko MCP server

Cliniko in any MCP client, through Memtro: Cliniko does not publish this server. Memtro's Cliniko connector reads Cliniko through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.

What the model can do

Cliniko practice management: appointments by practitioner and day with the patient's name and attendance, practitioners, businesses, appointment types, free appointment times, working hours and blocked-out time, and a patient lookup by name that returns only the id. Never clinical notes, medical alerts or patient details. Can book, move, cancel or archive an appointment, block out or free a practitioner's time, and record a communication memo on a patient's file.

Reads

  • cliniko_list_appointmentsCliniko appointments in a day range (default today, at most 31 days), earliest first: start and end, practitioner, business, appointment type…
  • cliniko_list_practitionersPractitioners in Cliniko: name, title, designation, whether active and bookable online.
  • cliniko_list_businessesThe practice's businesses (locations) in Cliniko: name, city, country and time zone.
  • cliniko_list_appointment_typesAppointment types in Cliniko: name, category, minutes, maximum attendees and whether telehealth.
  • cliniko_available_timesFree appointment start times for one practitioner, business and appointment type, over at most 7 days from today or later.
  • cliniko_working_hoursPractitioners' regular working hours in Cliniko by weekday and business (their daily availabilities).
  • cliniko_find_patientFinds a Cliniko patient's id by name, to book or move an appointment for them.
  • cliniko_list_unavailable_blocksTime blocked out in Cliniko (leave, meetings) in a day range (default today, at most 31 days): practitioner, business, type, start and end…
  • cliniko_list_unavailable_block_typesThe kinds of blocked-out time set up in Cliniko (e.g. Annual leave, Meeting): name, id and default minutes, for cliniko_block_time.

Acts, when you ask

These change something in Cliniko. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.

  • cliniko_add_communication_memoRecords on a patient's Cliniko file that a communication took place (a phone call, SMS, email or other, sent or received), as the key's user.
  • cliniko_create_appointmentBooks an individual appointment in Cliniko for a patient (id from cliniko_find_patient) with a practitioner, appointment type and business…
  • cliniko_reschedule_appointmentMoves a Cliniko appointment (id from cliniko_list_appointments) to a new start (and end), or changes its practitioner, appointment type or business.
  • cliniko_cancel_appointmentCancels a Cliniko appointment with a reason (feeling better, condition worse, sick, away, work, other) and an optional short note…
  • cliniko_archive_appointmentArchives a Cliniko appointment record, taking it out of the appointment book (Cliniko's delete).
  • cliniko_block_timeBlocks out a practitioner's time at a business in Cliniko (leave, a meeting) so nobody can book into it, from starts_at to ends_at (ISO, UTC)…
  • cliniko_unblock_timeRemoves a block of unavailable time from a Cliniko practitioner's diary (id from cliniko_list_unavailable_blocks), so that time can be booked again.

Connect it

First connect Cliniko on Dashboard → Connections, then add Memtro to your client once. The Cliniko tools appear alongside the tools of everything else you have connected; nothing is configured per connector.

Claude Code

The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.

claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...

Cursor

Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.

{
  "mcpServers": {
    "memtro": {
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Claude Desktop

Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…

OpenCode

A remote server in opencode.json.

{
  "mcp": {
    "memtro": {
      "type": "remote",
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Pi

One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.

Any other client

Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.

Who may use it

The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Cliniko connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.

Ask it like this

  • › How full is Dr Lee's diary on Thursday?
  • › When is the next free initial consult with Dr Lee?
  • › Which patients did not arrive yesterday?
  • › Book Sarah Chen in with Dr Lee for a follow-up at 10 on Friday.
  • › Block out Dr Lee's Wednesday afternoon for training.

Questions

Is this an official Cliniko MCP server?
No. It is Memtro's MCP server with Memtro's Cliniko connector behind it: the connector reads Cliniko through its API with the credentials you connect on Dashboard → Connections, and Cliniko publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
What does it cost?
Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
Can it change anything in Cliniko?
Only when you ask, and only what it has been granted: record a communication memo on a patient's file (it sends nothing); book an appointment for a patient with a practitioner (Cliniko may send the patient a confirmation); move an appointment, or change its practitioner, type or location (Cliniko may tell the patient); cancel an appointment with a reason (Cliniko may tell the patient); archive an appointment record; block out a practitioner's time as unavailable, or remove a block. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
Which clients work?
Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.

Other MCP servers · Work management

Where agents remember your company

Sign in, add a provider key, create an API key and point your tools at Memtro. It takes about five minutes.

7-day free trial · card on file, nothing charged until it ends · cancel any time