MCP Cliniko Server
Provides comprehensive integration with the Cliniko API for healthcare practice management, including patient, appointment, and invoice administration. It enables tools for complex clinical workflows and direct access to practice resources through the Model Context Protocol.
README
MCP Cliniko Server
A Model Context Protocol (MCP) server that provides integration with the Cliniko API for healthcare practice management.
Features
Tools (Actions)
-
Patient Management
list_patients- Search and list patientsget_patient- Get patient by IDcreate_patient- Create new patientupdate_patient- Update patient detailsdelete_patient- Archive patient
-
Appointment Management
list_appointments- Search and list appointmentsget_appointment- Get appointment by IDcreate_appointment- Book new appointmentupdate_appointment- Modify appointmentcancel_appointment- Cancel appointmentdelete_appointment- Delete appointmentget_available_times- Get practitioner availability
-
Invoice Management
list_invoices- List and filter invoicesget_invoice- Get invoice detailscreate_invoice- Create new invoiceupdate_invoice- Update invoice status or detailsdelete_invoice- Delete draft invoice
-
Invoice Items
list_invoice_items- List items on an invoiceadd_invoice_item- Add item to invoiceupdate_invoice_item- Modify invoice itemdelete_invoice_item- Remove item from invoice
-
Payment Processing
list_payments- List payments with filteringcreate_payment- Record a paymentdelete_payment- Delete payment record
-
Products & Services
list_products- List billable products/servicesget_product- Get product detailscreate_product- Create new product/service
-
Tax Configuration
list_taxes- List available tax ratesget_tax- Get tax details
-
Complex Workflows
create_invoice_from_appointments- Generate invoices from appointmentsbulk_invoice_generation- Bulk create invoices for date rangelist_patient_cases- List patient caseslist_invoices_for_case- Get invoices for a case
-
Supporting Tools
list_practitioners- List all practitionerslist_appointment_types- List appointment typeslist_businesses- List businesses
-
Test Data
generate_test_data- Generate synthetic Australian healthcare datacleanup_test_data- Remove test patients
Resources (Data Access)
patient://{id}- Individual patient datapatients://list- All patientsappointment://{id}- Individual appointmentappointments://list- All appointmentsappointments://today- Today's appointmentspractitioners://list- All practitionersbusinesses://list- All businessesappointment-types://list- All appointment typesopenapi://spec- Cliniko API OpenAPI specification (YAML format)
Installation
- Clone the repository:
git clone https://github.com/yourusername/mcp-cliniko.git
cd mcp-cliniko
- Install dependencies:
npm install
- Set up your Cliniko API key:
cp .env.example .env
# Edit .env and add your Cliniko API key
- Build the project:
npm run build
Configuration
Environment Variables
CLINIKO_API_KEY- Your Cliniko API key (required)
Getting a Cliniko API Key
- Log into your Cliniko account
- Go to Settings → Integrations → API Keys
- Create a new API key
- Copy the key to your
.envfile
Usage
Development Mode
npm run dev
Production Mode
npm start
Testing with MCP Inspector
npm run inspect
Integration with Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"cliniko": {
"command": "node",
"args": ["/path/to/mcp-cliniko/dist/index.js"],
"env": {
"CLINIKO_API_KEY": "your-api-key-here"
}
}
}
}
Examples
Using Tools
List Patients:
{
"tool": "list_patients",
"arguments": {
"q": "Smith",
"per_page": 10
}
}
Create Patient:
{
"tool": "create_patient",
"arguments": {
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone_number": "0412345678",
"date_of_birth": "1980-01-15",
"medicare_number": "1234567890"
}
}
Book Appointment:
{
"tool": "create_appointment",
"arguments": {
"starts_at": "2024-01-20T10:00:00Z",
"patient_id": 123,
"practitioner_id": 456,
"appointment_type_id": 789,
"business_id": 101
}
}
Generate Test Data:
{
"tool": "generate_test_data",
"arguments": {
"num_patients": 5,
"num_appointments": 10,
"days_ahead": 7
}
}
Using Resources
Resources provide read-only access to Cliniko data:
patient://123- Get patient with ID 123patients://list- List all patientsappointments://today- Get today's appointments
API Rate Limits
Cliniko API has a rate limit of 200 requests per minute. The server does not implement rate limiting internally, so be mindful of this limit when making bulk operations.
Error Handling
The server uses standard HTTP error conventions:
- 400 - Bad Request
- 401 - Unauthorized (check API key)
- 404 - Resource not found
- 429 - Rate limit exceeded
- 500 - Internal server error
Development
Project Structure
mcp-cliniko/
├── src/
│ ├── index.ts # Main server
│ ├── cliniko-client.ts # API client
│ ├── types.ts # TypeScript types
│ ├── tools/ # MCP tools
│ │ ├── patients.ts
│ │ ├── appointments.ts
│ │ └── synthetic-data.ts
│ └── resources/ # MCP resources
│ └── index.ts
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── .env
Building
npm run build
Type Checking
npx tsc --noEmit
License
MIT
Support
For Cliniko API documentation, visit: https://docs.api.cliniko.com/
For MCP documentation, visit: https://modelcontextprotocol.io/# mcp-cliniko
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。