Setora MCP by usefulapi

Read locations, slots and bookings; create clients, book, move and cancel in Setora.

¿Debería usar esto?

Calidad y seguridad

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

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

Costo de contexto

~1,872Tokens (definiciones de herramientas)
~1.3 KBTamaño de respuesta típico
Impacto moderado en la atención (1.46% 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": {
    "setora": {
      "url": "https://setora.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (10)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada10 herramientas