Reservio MCP by usefulapi

Check open slots, list bookings, services and staff, book appointments and group events in Reservio.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
94%
Calidad de los nombres
79%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'reservio_create_appointment_booking' name length outside 3-30 rangeen reservio_create_appointment_booking

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,679Tokens (definiciones de herramientas)
~1.8 KBTamaño de respuesta típico
Impacto significativo en la atención (2.87% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "reservio": {
      "url": "https://reservio.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://reservio.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (16)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢reservio_get_business(business_id)

Get the business profile: name, address, contact details, time zone. Reservio API: GET /businesses/{businessId}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada16 herramientas