Reservio MCP by usefulapi
Check open slots, list bookings, services and staff, book appointments and group events in Reservio.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin reservio_create_appointment_booking
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"reservio": {
"url": "https://reservio.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://reservio.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (16)
🟢reservio_get_business(business_id)
Get the business profile: name, address, contact details, time zone. Reservio API: GET /businesses/{businessId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_services(business_id, sort, filter, limit, offset)
List the services clients can book, with duration, price and capacity. Reservio API: GET /businesses/{businessId}/services.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"sort": {
"description": "Sort column, prefix - for descending, e.g. -createdAt.",
"type": "string",
"pattern": "^-?[A-Za-z.]+$"
},
"filter": {
"description": "Filters as {\"name\": \"Bob\"}; each key becomes filter[key]=value (JSON:API).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z.]+$"
},
"additionalProperties": {
"type": "string"
}
},
"limit": {
"description": "Page size (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Number of items to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_get_service(business_id, service_id)
Get one service by id. Reservio API: GET /businesses/{businessId}/services/{serviceId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"service_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Service id (from reservio_list_services)."
}
},
"required": [
"service_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_resources(business_id, sort, filter, limit, offset)
List bookable resources, such as staff members or rooms. Reservio API: GET /businesses/{businessId}/resources.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"sort": {
"description": "Sort column, prefix - for descending, e.g. -createdAt.",
"type": "string",
"pattern": "^-?[A-Za-z.]+$"
},
"filter": {
"description": "Filters as {\"name\": \"Bob\"}; each key becomes filter[key]=value (JSON:API).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z.]+$"
},
"additionalProperties": {
"type": "string"
}
},
"limit": {
"description": "Page size (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Number of items to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_get_resource(business_id, resource_id)
Get one resource (staff member or room) by id. Reservio API: GET /businesses/{businessId}/resources/{resourceId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"resource_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Resource id (from reservio_list_resources)."
}
},
"required": [
"resource_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_events(business_id, sort, filter, limit, offset)
List calendar events (appointments, group events, blocked time) with start, end, type and capacity. Reservio API: GET /businesses/{businessId}/events.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"sort": {
"description": "Sort column, prefix - for descending, e.g. -createdAt.",
"type": "string",
"pattern": "^-?[A-Za-z.]+$"
},
"filter": {
"description": "Filters as {\"name\": \"Bob\"}; each key becomes filter[key]=value (JSON:API).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z.]+$"
},
"additionalProperties": {
"type": "string"
}
},
"limit": {
"description": "Page size (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Number of items to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_bookings(business_id, sort, filter, limit, offset)
List bookings with client name, state, cost and linked event. Sort by -createdAt to see the newest first (Reservio has no webhooks, so polling this is the way to find new bookings). Reservio API: GET /businesses/{businessId}/bookings.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"sort": {
"description": "Sort column, prefix - for descending, e.g. -createdAt.",
"type": "string",
"pattern": "^-?[A-Za-z.]+$"
},
"filter": {
"description": "Filters as {\"name\": \"Bob\"}; each key becomes filter[key]=value (JSON:API).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z.]+$"
},
"additionalProperties": {
"type": "string"
}
},
"limit": {
"description": "Page size (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Number of items to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_coupons(business_id, sort, filter, limit, offset)
List coupons (credit or visit packages). Reservio API: GET /businesses/{businessId}/coupons.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"sort": {
"description": "Sort column, prefix - for descending, e.g. -createdAt.",
"type": "string",
"pattern": "^-?[A-Za-z.]+$"
},
"filter": {
"description": "Filters as {\"name\": \"Bob\"}; each key becomes filter[key]=value (JSON:API).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z.]+$"
},
"additionalProperties": {
"type": "string"
}
},
"limit": {
"description": "Page size (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Number of items to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_get_coupon(business_id, coupon_id)
Get one coupon by id. Reservio API: GET /businesses/{businessId}/coupons/{couponId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"coupon_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Coupon id (from reservio_list_coupons)."
}
},
"required": [
"coupon_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_opening_hours(business_id)
List the opening hours of the business (days and start/end in seconds from midnight). Reservio API: GET /businesses/{businessId}/opening-hours.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_list_rosters(business_id, sort, filter, limit, offset)
List staff work schedules (rosters) per resource and date. Reservio API: GET /businesses/{businessId}/rosters.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"sort": {
"description": "Sort column, prefix - for descending, e.g. -createdAt.",
"type": "string",
"pattern": "^-?[A-Za-z.]+$"
},
"filter": {
"description": "Filters as {\"name\": \"Bob\"}; each key becomes filter[key]=value (JSON:API).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z.]+$"
},
"additionalProperties": {
"type": "string"
}
},
"limit": {
"description": "Page size (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Number of items to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_get_booking_slots(business_id, from, to, service_id, resource_id)
List free time slots for a service in a date range, optionally for one resource. Use before creating a booking. Reservio API: GET /businesses/{businessId}/availability/booking-slots.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"from": {
"type": "string",
"minLength": 8,
"description": "Date or datetime, e.g. 2026-11-02 or 2026-11-02T09:00:00+01:00."
},
"to": {
"type": "string",
"minLength": 8,
"description": "Date or datetime, e.g. 2026-11-02 or 2026-11-02T09:00:00+01:00."
},
"service_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Service id."
},
"resource_id": {
"description": "Limit to one resource (staff member), from reservio_list_resources.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"from",
"to",
"service_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_get_booking_days(business_id, from, to, service_id, resource_id)
For each day in a range, tell whether any slot is free for a service. Reservio API: GET /businesses/{businessId}/availability/booking-days.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"from": {
"type": "string",
"minLength": 8,
"description": "Date or datetime, e.g. 2026-11-02 or 2026-11-02T09:00:00+01:00."
},
"to": {
"type": "string",
"minLength": 8,
"description": "Date or datetime, e.g. 2026-11-02 or 2026-11-02T09:00:00+01:00."
},
"service_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Service id."
},
"resource_id": {
"description": "Limit to one resource (staff member), from reservio_list_resources.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"from",
"to",
"service_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢reservio_get_event_days(business_id, from, to, resource_id)
For each day in a range, tell whether a group event is open for booking. Reservio API: GET /businesses/{businessId}/availability/event-days.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"from": {
"type": "string",
"minLength": 8,
"description": "Date or datetime, e.g. 2026-11-02 or 2026-11-02T09:00:00+01:00."
},
"to": {
"type": "string",
"minLength": 8,
"description": "Date or datetime, e.g. 2026-11-02 or 2026-11-02T09:00:00+01:00."
},
"resource_id": {
"description": "Limit to one resource (staff member), from reservio_list_resources.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
}
},
"required": [
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴reservio_create_appointment_booking(business_id, service_id, start, end, client, ...)
WRITE: create a real appointment booking for a service at a start/end time (use a slot from reservio_get_booking_slots). Reservio may notify the client. Not safe to repeat: a second call books a second appointment. Reservio API: POST /businesses/{businessId}/bookings.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"service_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Service id."
},
"start": {
"type": "string",
"minLength": 8,
"description": "Slot start, ISO 8601 with offset."
},
"end": {
"type": "string",
"minLength": 8,
"description": "Slot end, ISO 8601 with offset."
},
"client": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Client name."
},
"email": {
"description": "Client e-mail.",
"type": "string"
},
"phone": {
"description": "Client phone.",
"type": "string"
}
},
"required": [
"name"
]
},
"note": {
"description": "Note for the booking.",
"type": "string"
}
},
"required": [
"service_id",
"start",
"end",
"client"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴reservio_create_group_booking(business_id, event_id, client)
WRITE: book a client into an existing group event (event id from reservio_list_events). Reservio may notify the client. Not safe to repeat: a second call books a second seat. Reservio API: POST /businesses/{businessId}/bookings.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_id": {
"description": "Business id. Default: the business you entered at login.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$"
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Group event id."
},
"client": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Client name."
},
"email": {
"description": "Client e-mail.",
"type": "string"
},
"phone": {
"description": "Client phone.",
"type": "string"
}
},
"required": [
"name"
]
}
},
"required": [
"event_id",
"client"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis