# Cliniko MCP

> Cliniko connects your entire healthcare practice into your AI agent. Stop juggling tabs when you need patient data. Use this MCP to manage everything—appointments, medical records, practitioners, treatment notes, and business locations—all through natural conversation with your preferred client.

## Overview
- **Category:** customer-relationship-management
- **Price:** Free
- **Tags:** practice-management, medical-records, appointment-booking, patient-management, clinic-operations

## Description

This connector lets you run your whole clinic operation directly from your AI agent. You can handle basic administration tasks, like scheduling a follow-up or confirming a practitioner's availability, without leaving your chat window. Need to update a patient's address? Just ask. Want to find the treatment notes for last quarter's visit? Your AI finds them and organizes them. It acts like having a dedicated medical receptionist who has access to every single system in your practice, whether it’s managing appointments, creating new patient profiles, or keeping track of where you operate across different locations. Getting set up is simple: connect your credentials via Vinkius and start working immediately from Claude, Cursor, or any MCP-compatible client.

## Tools

### create_appointment
Schedules a brand new appointment for a patient in the system.

### create_patient
Adds an entirely new person into your clinic's official patient database.

### create_treatment_note
Writes and saves a formal medical note to the patient’s permanent file.

### delete_appointment
Cancels or removes an existing appointment from the clinic's calendar.

### get_appointment
Pulls up all the specific details for a single, known appointment time slot.

### get_patient
Retrieves all available demographic and clinical data for one specific patient ID.

### get_practitioner
Shows the full details, credentials, and contact info for a single healthcare provider.

### list_appointments
Lists all appointments across your clinic, supporting filters like date ranges or specific staff members.

### list_businesses
Retrieves a list of every physical location and business unit you operate under.

### list_patients
Lists all patients in the database, allowing searches by date or status.

### list_practitioners
Shows a searchable list of every credentialed practitioner registered with the clinic.

### list_treatment_notes
Retrieves all saved treatment notes for a specific patient over time.

### update_appointment
Changes details, dates, or times for an appointment that already exists.

### update_patient
Corrects or adds new information to a patient's existing profile (e.g., phone number change).

## Prompt Examples

**Prompt:** 
```
List all appointments scheduled for today.
```

**Response:** 
```
I've retrieved today's schedule. You have 5 appointments, including an 'Initial Consultation' with John Doe at 9:00 AM and a 'Follow-up' with Sarah Smith at 11:30 AM.
```

**Prompt:** 
```
Get the details for patient ID 12345.
```

**Response:** 
```
Fetching patient data... Patient ID 12345 is Robert Brown. His records show he is 42 years old and his last visit was on October 12th. Would you like to see his recent treatment notes?
```

**Prompt:** 
```
Show me all business locations registered in Cliniko.
```

**Response:** 
```
I found 2 business locations: 'City Health Center' (ID: 101) and 'Riverside Clinic' (ID: 102). Which one would you like to explore further?
```

## Capabilities

### Manage patient demographics
Create new patient records or pull detailed information on existing profiles using the `get_patient` tool.

### Handle appointment scheduling
List, create, update, or cancel appointments to keep your clinic's calendar always accurate and organized.

### Access clinical history
Retrieve detailed records of treatment notes or pull comprehensive lists of all patients associated with a location.

### Manage staff and locations
Get details on specific practitioners, list available providers, or check information about your various business sites.

## Use Cases

### A new patient needs intake.
The front desk staff can't find the right ID for a new client. Instead of manually searching, they ask their agent to `list_patients` and then use `create_patient` with all the required demographics in one flow.

### A patient needs follow-up care.
The practitioner finishes a consultation. They ask their agent to retrieve the patient's full history using `get_patient`, then immediately call `create_treatment_note` so all notes are logged without leaving the chat.

### A large group appointment needs rescheduling.
The administrator realizes three appointments need to move. They use `list_appointments` to confirm the details, then ask their agent to update each one using `update_appointment`, avoiding manual calendar edits.

### Checking provider availability across multiple sites.
A staff member needs to know which practitioner is available at a secondary clinic location. They use `list_businesses` first, then ask their agent to check the schedule (`list_appointments`) for that specific site.

## Benefits

- Stop clicking through multiple tabs. Need to check a patient's last visit? Using `get_patient` and then calling `list_treatment_notes` lets your agent gather the whole story in one go.
- Never lose track of staff or location details again. You can ask for all business locations (`list_businesses`) or list all available practitioners (`list_practitioners`) without opening a dashboard.
- Scheduling is instant. Instead of navigating to an internal calendar, just tell your agent to `create_appointment` and get it done. It handles the backend timing automatically.
- Data correction happens fast. If a patient moves or updates their phone number, you don't have to manually find the record; simply ask your agent to use `update_patient`.
- The entire process stays in one place. Your AI acts as the single point of truth for scheduling (`list_appointments`), records, and history, freeing up time for actual patient care.
- Audit trails are simple. When a doctor finishes an exam, they just ask your agent to `create_treatment_note` instead of logging into a separate EMR system.

## How It Works

The bottom line is that your AI acts as an administrative layer sitting on top of Cliniko, handling the back-and-forth with the system so you don't have to.

1. Subscribe to this MCP and enter your Cliniko API Key and User Agent.
2. Connect your AI client (like Cursor or Claude) through the Vinkius marketplace.
3. Tell your agent exactly what you need. For example, 'List all appointments for next Tuesday' or 'Create a new patient profile for Jane Doe.'

## Frequently Asked Questions

**How do I check if an appointment exists with the get_appointment tool?**
You must provide a unique identifier for both the patient and the date/time range to `get_appointment`. This function retrieves all specific details for one known slot, helping you confirm it's still active before updating or canceling.

**What is the best way to handle bulk patient updates using update_patient?**
The MCP doesn't support true batch operations. You must call `list_patients` first, and then request your agent to run `update_patient` individually for each person whose details need correcting.

**Can I use the list_treatment_notes tool before creating a new patient?**
No. You must call `get_patient` or `create_patient` first to establish an ID. The system needs a record to attach any treatment notes or history to.

**Does the list_businesses tool show all my clinic locations?**
Yes, it provides a complete roster of every physical business location registered in your Cliniko account, giving you the IDs needed for other operations. It’s perfect for staff needing to verify where services are offered.

**What happens if I try to use the create_appointment tool without all required details?**
The API will return a specific error message, indicating exactly which mandatory field is missing. This immediate feedback lets you fix the data and successfully schedule the appointment right away.

**How do I use delete_appointment to properly cancel an existing booking?**
You must provide the unique ID of the appointment along with a cancellation reason code. The system handles this as a soft deletion, meaning the record remains in your history for compliance checks.

**If I need to update patient records, should I run list_patients first?**
No, you only need the patient's unique ID to use the update_appointment tool. Running list_patients simply helps you find that specific ID if you don't know it already.

**When I call create_patient, how do I ensure all demographic information is accurate?**
You must supply all required fields, including contact details and date of birth. Always cross-reference these data points with source documents before using the tool to minimize errors.

**Can I search for a specific patient by name using the AI?**
Yes! You can use the `list_patients` tool with a query parameter `q` to filter patients by name or other identifiers.

**Is it possible to cancel an appointment through the agent?**
Absolutely. Use the `delete_appointment` tool with the specific Appointment ID to cancel or remove a booking from your Cliniko calendar.

**How do I see all the practitioners registered in my account?**
Simply ask the agent to run the `list_practitioners` tool. It will return a list of all healthcare providers associated with your Cliniko account.