Setora MCP by usefulapi
Read locations, slots and bookings; create clients, book, move and cancel in Setora.
Sollte ich dies verwenden
Qualität und Sicherheit
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": {
"setora": {
"url": "https://setora.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://setora.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}Community
Nachweis