Reservio MCP by usefulapi
Check open slots, list bookings, services and staff, book appointments and group events in Reservio.
使うべきか
品質と安全性
検出事項(1)
- LOWreservio_create_appointment_booking 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"reservio": {
"url": "https://reservio.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://reservio.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(16)
🟢reservio_get_business(business_id)
Get the business profile: name, address, contact details, time zone. Reservio API: GET /businesses/{businessId}.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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"
}コミュニティ
エビデンス