MCP Server
Reservly includes a Model Context Protocol (MCP) server that lets AI assistants like Claude, ChatGPT, and others interact with your booking system through natural language. Customers can check availability, browse services, and book appointments through AI conversations.
Available Tools
The MCP server exposes seven tools. Each maps directly to a public REST API endpoint, so the data returned is identical.
| Tool | Description | REST Equivalent |
|---|---|---|
get_business_info | Get business profile, hours, contact, and social links | GET /info |
search_services | List available services with prices and durations | GET /services |
list_staff | Get staff members, optionally filtered by service | GET /staff |
check_availability | Find available time slots for a date and service | GET /slots |
list_events | Browse upcoming events with dates and capacity | GET /events |
list_rentals | Browse rental items with prices | GET /rentals |
book_appointment | Create a new booking with customer details | POST /book |
Claude Desktop Setup
To connect your Reservly business to Claude Desktop, add the following to your claude_desktop_config.json file. Replace YOUR-BUSINESS-SLUG with your actual business slug (found in Settings on your dashboard).
{
"mcpServers": {
"reservly": {
"command": "npx",
"args": [
"mcp-remote",
"https://reservly.io/api/mcp/YOUR-BUSINESS-SLUG/sse"
]
}
}
}jsonOn macOS, the config file is located at ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows, it is at %APPDATA%\Claude\claude_desktop_config.json.
HTTP Transport
The MCP server is available over HTTP at:
https://reservly.io/api/mcp/{slug}/ssetextAny MCP-compatible client can connect to this URL. The server uses the Streamable HTTP transport in stateless mode — each request is independent, which means no session tracking is required and the server scales horizontally.
The protocol uses JSON-RPC 2.0 over POST requests. Supported methods are initialize, tools/list, tools/call, and ping.
Tool Parameters
Most tools only require your business slug, which is injected automatically by the MCP endpoint. The two tools that accept additional parameters are:
check_availability
| Parameter | Type | Required | Description |
|---|---|---|---|
date | string | Yes | Date to check (YYYY-MM-DD) |
service_id | string | Yes | Comma-separated service UUIDs |
staff_id | string | No | Filter slots by a specific staff member |
book_appointment
| Parameter | Type | Required | Description |
|---|---|---|---|
service_ids | string[] | Yes | Array of service UUIDs to book |
date | string | Yes | Booking date (YYYY-MM-DD) |
time | string | Yes | Booking time (HH:MM, 24-hour) |
customer_name | string | Yes | Customer full name |
customer_email | string | Yes | Customer email address |
staff_id | string | No | Preferred staff member |
customer_phone | string | No | Customer phone number |
party_size | number | No | Party size for group bookings (default 1) |
Example Conversation
Here is how a typical AI-assisted booking conversation works. The AI assistant handles tool calls behind the scenes while the customer interacts in natural language.
Customer
What services does Luxe Salon offer?
search_servicesAI Assistant
Luxe Salon offers Haircut ($45, 60 min), Blowout ($35, 45 min), Color Treatment ($120, 120 min), and several other services. Would you like to book one?
Customer
Book me a haircut for tomorrow at 2pm.
check_availability→ confirms 2:00 PM is openbook_appointment→ booking confirmedAI Assistant
Done! Your haircut at Luxe Salon is booked for tomorrow at 2:00 PM. A confirmation has been sent to your email.