Setora MCP by usefulapi
Read locations, slots and bookings; create clients, book, move and cancel in Setora.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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": {
"setora": {
"url": "https://setora.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://setora.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (10)
🟢setora_list_locations(cursor)
List the active locations (shops) of the Setora organisation: slug, name, timezone, address, phone and the Booking Protection policy. Start here: the slug is needed by most other tools.
Esquema de entrada
{
"type": "object",
"properties": {
"cursor": {
"description": "Pagination cursor: pass next_cursor from the previous page. Cursors expire, use them at once.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢setora_list_services(location_slug, cursor)
List the services bookable at a location with price and deposit (in minor units, for example pence), duration, category and the staff who can deliver each service.
Esquema de entrada
{
"type": "object",
"properties": {
"location_slug": {
"type": "string",
"minLength": 1,
"description": "Location slug from setora_list_locations (for example 'soho')."
},
"cursor": {
"description": "Pagination cursor: pass next_cursor from the previous page. Cursors expire, use them at once.",
"type": "string"
}
},
"required": [
"location_slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢setora_list_staff(location_slug, cursor)
List the active staff at a location. Each staff member shows the ids of the services they deliver.
Esquema de entrada
{
"type": "object",
"properties": {
"location_slug": {
"type": "string",
"minLength": 1,
"description": "Location slug from setora_list_locations (for example 'soho')."
},
"cursor": {
"description": "Pagination cursor: pass next_cursor from the previous page. Cursors expire, use them at once.",
"type": "string"
}
},
"required": [
"location_slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢setora_get_availability(location_slug, service_ids, date, days, staff_id)
Get bookable time slots for one or more services at a location, from a local date forward. Slots use the location's local time with a UTC offset. Use a slot's starts_at as-is in setora_create_booking.
Esquema de entrada
{
"type": "object",
"properties": {
"location_slug": {
"type": "string",
"minLength": 1,
"description": "Location slug from setora_list_locations (for example 'soho')."
},
"service_ids": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "One or more service ids from setora_list_services."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local start date, yyyy-mm-dd."
},
"days": {
"description": "Days to search forward, 1 to 14 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 14
},
"staff_id": {
"description": "Only slots of this staff member.",
"type": "string",
"minLength": 1
}
},
"required": [
"location_slug",
"service_ids",
"date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢setora_lookup_client(phone, email)
Find a client by phone (E.164, for example +447700900123) or by email. Give at least one. Returns 404 when no client matches.
Esquema de entrada
{
"type": "object",
"properties": {
"phone": {
"description": "Phone number in E.164 format.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢setora_get_booking(reference)
Get one booking by reference: status, services, staff, client, times and Booking Protection state.
Esquema de entrada
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"minLength": 1,
"description": "Booking reference such as SET-A1B2C3."
}
},
"required": [
"reference"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡setora_create_client(first_name, last_name, phone, email, marketing_consent)
WRITE: create a client (first and last name, and a phone or an email). If the phone or email already exists, Setora returns the existing client and creates no duplicate. Needs a read_write key.
Esquema de entrada
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"phone": {
"description": "Phone number in E.164 format.",
"type": "string"
},
"email": {
"type": "string"
},
"marketing_consent": {
"description": "Set true only if the client agreed to marketing messages (default false).",
"type": "boolean"
}
},
"required": [
"first_name",
"last_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴setora_create_booking(location_slug, service_ids, client_id, starts_at, staff_id, ...)
WRITE: create a booking for a client. starts_at must be a slot from setora_get_availability. If the service needs a deposit, the booking stays in pending_payment and the result has a payment_url. Locations with Booking Protection return 409 booking_protection_required: use the Setora booking page there. Needs a read_write key. To retry after a network error, pass the same idempotency_key.
Esquema de entrada
{
"type": "object",
"properties": {
"location_slug": {
"type": "string",
"minLength": 1,
"description": "Location slug from setora_list_locations (for example 'soho')."
},
"service_ids": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"client_id": {
"type": "string",
"minLength": 1,
"description": "Client id from setora_lookup_client or setora_create_client."
},
"starts_at": {
"type": "string",
"minLength": 1,
"description": "Slot start with UTC offset, for example 2026-05-12T09:30:00+01:00."
},
"staff_id": {
"description": "Omit for any available staff member.",
"type": "string",
"minLength": 1
},
"notes": {
"description": "Free text shown to staff in the Hub.",
"type": "string",
"maxLength": 1000
},
"idempotency_key": {
"description": "UUID v4. Reuse the same value to retry safely (Setora keeps it 24 hours). Generated when omitted.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"location_slug",
"service_ids",
"client_id",
"starts_at"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴setora_reschedule_booking(reference, starts_at, staff_id)
WRITE: move a booking to a new slot of the same service and location, and optionally to another eligible staff member. The shop's cancellation policy window applies (409 if it blocks the change). Needs a read_write key.
Esquema de entrada
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"minLength": 1,
"description": "Booking reference such as SET-A1B2C3."
},
"starts_at": {
"type": "string",
"minLength": 1,
"description": "New slot start from setora_get_availability, with UTC offset."
},
"staff_id": {
"description": "Move to this eligible staff member.",
"type": "string",
"minLength": 1
}
},
"required": [
"reference",
"starts_at"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴setora_cancel_booking(reference, reason)
WRITE: cancel a booking. The shop's cancellation policy decides if a deposit is refunded (see deposit_refunded in the result). This cannot be undone. Needs a read_write key.
Esquema de entrada
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"minLength": 1,
"description": "Booking reference such as SET-A1B2C3."
},
"reason": {
"description": "Free text shown to staff.",
"type": "string",
"maxLength": 1000
}
},
"required": [
"reference"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia