Zenoti Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Zenoti Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that provides intelligent access to the Zenoti spa/wellness management API. Designed for AI agents to efficiently manage appointments, guests, services, and billing workflows.
git clone https://github.com/yourusername/zenoti-mcp-server.git
cd zenoti-mcp-servernpm installcp .env.example .env
# Edit .env with your Zenoti API credentialsnpm run buildZENOTI_API_KEY: Your Zenoti API key (required)ZENOTI_API_URL: Zenoti API base URL (default: https://api.zenoti.com)ZENOTI_CENTER_ID: Default center ID for operationsZENOTI_ORG_ID: Your organization ID# Development mode with auto-reload
npm run dev
# Production mode
npm start
# Test the server with example client
npm testAdd to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"zenoti": {
"command": "node",
"args": ["/path/to/zenoti-mcp-server/dist/index.js"],
"env": {
"ZENOTI_API_KEY": "your_api_key",
"ZENOTI_API_URL": "https://api.zenoti.com",
"ZENOTI_CENTER_ID": "your_center_id"
}
}
}
}#### book_service Complete 4-step service booking workflow in a single tool.
Parameters:
guest_id (required): Guest ID or search queryservice_id (required): Service ID or namedate (required): Appointment date (YYYY-MM-DD)time (optional): Preferred time (HH:MM)therapist_id (optional): Therapist ID or namenotes (optional): Booking notespay_later (optional): Skip payment (default: true)Example:
{
"guest_id": "[email protected]",
"service_id": "Deep Tissue Massage",
"date": "2025-11-15",
"time": "14:00"
}#### search_guests Search for guests by name, email, or phone.
Parameters:
query (required): Search querylimit (optional): Max results (default: 10)#### create_guest Create a new guest profile.
Parameters:
first_name (required)last_name (required)email (optional)phone (optional)gender (optional)date_of_birth (optional)#### list_appointments List appointments with filters.
Parameters:
start_date (required): Start date (YYYY-MM-DD)end_date (optional): End date (default: start_date)status (optional): Filter by statusguest_id (optional): Filter by guestlimit (optional): Max results (default: 50)#### check_in_appointment Check in a guest for their appointment.
Parameters:
appointment_id (required): Appointment or group ID#### update_appointment_status Update appointment status (confirm, cancel, no-show).
Parameters:
appointment_id (required)status (required): "confirmed", "cancelled", "no_show"reason (optional): Cancellation reason#### get_invoice Retrieve invoice details.
Parameters:
invoice_id (required)include_details (optional): Include line items (default: true)#### close_invoice Process payment and close invoice.
Parameters:
invoice_id (required)payment_method (optional): Payment typeamount (optional): Payment amount#### list_appointment_forms Get forms for an appointment.
Parameters:
appointment_id (required)#### submit_feedback Submit guest feedback for appointment.
Parameters:
appointment_id (required)rating (required): 1-5 or 1-10comments (optional)The server provides actionable error messages to guide agents:
{
"error": "No available slots found",
"suggestion": "Try a different date or remove therapist preference",
"alternatives": ["2025-11-16", "2025-11-17"]
}The server implements intelligent rate limiting:
zenoti-mcp-server/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── zenoti-client.ts # Zenoti API client
│ ├── tools/ # Tool implementations
│ │ ├── booking.ts # Service booking tools
│ │ ├── guests.ts # Guest management tools
│ │ ├── appointments.ts # Appointment tools
│ │ └── invoices.ts # Invoice tools
│ ├── utils/ # Shared utilities
│ │ ├── errors.ts # Error handling
│ │ ├── formatters.ts # Response formatting
│ │ └── validators.ts # Input validation
│ └── test-client.ts # Test client
├── package.json
├── tsconfig.json
└── README.mdRun the test client to verify functionality:
npm testThe test client demonstrates:
MIT License - See LICENSE file for details
For issues or questions:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.