DOCUMENTACIÓN MCP

BKlayer MCP: reservas con identidad conectada

Consulta disponibilidad y gestiona tus citas desde un cliente MCP autorizado. Esta página describe la superficie OAuth / Connected Identity del endpoint público.

Conexión y autenticación

Endpoint canónico:

https://mcp.bklayer.com/mcp

Transporte Streamable HTTP, mediante POST. Las respuestas pueden usar text/event-stream dentro de este transporte; no hay un endpoint SSE heredado separado. GET /mcp devuelve 405 y no es una página de conexión.

La conexión requiere OAuth mediante Authorization Code con PKCE. El cliente debe estar previamente registrado y autorizado en BKlayer. Añadir la URL por sí sola no concede acceso: el usuario debe completar la vinculación de su cuenta y autorizar las operaciones correspondientes.

El recurso publica metadatos de descubrimiento OAuth con el servidor de autorización y el scope openid. Las operaciones de reservas requieren además permisos privados de BKlayer. Los scopes adicionales dependen del cliente registrado; no deben deducirse del listado general del servidor de autorización. No se anuncia registro dinámico de clientes (DCR).

Una petición POST sin Bearer recibe 401 con el challenge WWW-Authenticate y la dirección de los metadatos del recurso. Tras autenticarse, tools/list entrega los esquemas exactos de las herramientas habilitadas.

8 herramientas: 5 de lectura y 3 con efectos reales

La tabla resume las entradas; no sustituye inputSchema ni outputSchema de tools/list. Todas las herramientas declaran ambos esquemas y devuelven structuredContent en respuestas satisfactorias, junto con una representación de texto. La lista disponible puede reducirse si se deshabilita una capacidad.

search_my_bookings

Solo lectura

Consulta las reservas propias vinculadas a la identidad autenticada, con filtros y paginación.

Entradas: status, limit y offset opcionales.

get_my_booking

Solo lectura

Obtiene una reserva accesible para esa identidad.

Entradas: booking_reference.

check_my_booking_availability

Solo lectura

Consulta horarios y profesionales para reprogramar una cita propia.

Entradas: booking_reference y local_date.

search_bookable_business

Solo lectura

Busca por nombre negocios que han habilitado reservas mediante agentes conectados.

Entradas: query; city y limit opcionales.

check_business_availability

Solo lectura

Devuelve el catálogo y, para un servicio y fecha, disponibilidad por profesional.

Entradas: business_reference; service_reference y local_date para horarios; with_staff_reference opcional.

cancel_my_booking

Mutación: requiere confirmación para ejecutar

Prepara el resumen de cancelación y cancela tras la confirmación explícita.

Entradas: booking_reference; resumen, confirmación e idempotencia para ejecutar.

reschedule_my_booking

Mutación: requiere confirmación para ejecutar

Prepara y ejecuta un cambio de cita; permite cambiar de profesional cuando está disponible.

Entradas: booking_reference, requested_starts_at; with_staff_reference opcional; resumen, confirmación e idempotencia para ejecutar.

create_my_booking

Mutación: requiere confirmación para ejecutar

Prepara y crea una cita para la identidad autenticada en un negocio habilitado.

Entradas: business_reference, service_reference, starts_at y profesional disponible; notes opcional; resumen, confirmación e idempotencia para ejecutar.

Anotaciones MCP: las lecturas declaran readOnlyHint=true y destructiveHint=false; las tres mutaciones, readOnlyHint=false y destructiveHint=true. Todas declaran idempotentHint=true y openWorldHint=false. Son indicaciones para el cliente; la autorización y las reglas se validan en el servidor.

Resumen, confirmación y ejecución

  1. Buscar el negocio, obtener su catálogo y consultar disponibilidad real. Para reprogramar, consultar la disponibilidad de la reserva propia.
  2. Usar las referencias y el instante exacto devueltos por BKlayer. No inventar servicios, profesionales ni horarios.
  3. Llamar a la mutación sin campos de confirmación para obtener el confirmed_summary. Mostrarlo completo, incluyendo el profesional, la zona horaria y, al crear, el precio de catálogo y el aviso de privacidad.
  4. Esperar una confirmación explícita del usuario posterior al resumen. Elegir una hora, aportar datos o responder de forma ambigua no basta.
  5. Repetir la llamada con el resumen intacto, confirmation_summary_presented=true, confirmation_obtained=true, user_confirmation_text y una idempotency_key estable de 16–200 caracteres.

Reutilizar la clave solo al reintentar la misma operación; una intención nueva requiere otra clave. Si cambia el resumen, debe pedirse una nueva confirmación. La disponibilidad es informativa y se revalida al ejecutar: consultar un hueco no lo bloquea.

Solo debe comunicarse éxito cuando la respuesta lo acredita. No se debe inferir el envío de notificaciones, la sincronización de calendarios ni cuántas reservas quedan.

Límites actuales

  • Creación y reprogramación de citas (appointment). Crear o reprogramar reservas de restaurante no está soportado por esta superficie OAuth.
  • El conector no acepta ni procesa pagos. La creación con depósito o garantía obligatorios se rechaza; el cliente debe continuar por la web de reservas.
  • La cancelación o reprogramación con pagos activos, garantías o retenciones programadas no soportadas se rechaza sin simular una operación completada.
  • Las reservas propias solo incluyen vínculos verificados y activos. La búsqueda de negocios solo cubre los que permiten agentes conectados; deben respetarse los indicadores de paginación y de resultados incompletos.
  • Se admiten notas opcionales de hasta 500 caracteres al crear. No hay una herramienta OAuth para añadir notas a reservas existentes ni para enviar OTP o mensajes WhatsApp.

Las herramientas guest históricas, como create_booking, tienen un contrato diferente y no forman parte de este endpoint OAuth. No deben mezclarse sus nombres, parámetros ni capacidades.

Seguridad y privacidad

La identidad procede del Bearer verificado y de la conexión autorizada, no de un teléfono, email o identificador aportado por el agente. Las operaciones personales comprueban los permisos y el vínculo de la reserva. Un fallo de autorización o validación se devuelve como error; no concede acceso alternativo ni debe presentarse como éxito.

Mantén tokens y referencias técnicas fuera de la conversación con el usuario. Las notas son visibles para el negocio: evita datos sensibles innecesarios.

Política de privacidad · Términos y condiciones · Contacto