Deja que agentes de IA reserven con tu negocio
Un servidor MCP, una API REST y webhooks firmados, con claves que controla el dueño y las reglas del salón comprobadas en cada reserva.
Referencia completa de la API y del MCP disponible bajo petición [email protected]
Servidor MCP
El Model Context Protocol permite a un asistente de IA llamar directamente a las herramientas de Cadenspot: Streamable HTTP y JSON-RPC 2.0 en una sola URL, y cada clave actúa solo para un negocio.
POSThttps://cadenspot.com/api/mcp
Herramientas
Una clave solo ve y usa las herramientas que permiten sus permisos.
Permiso availability:read
list_event_typesLos servicios que se pueden reservar, con duración, precio, opciones, política y preparación.list_staffLas estilistas que un cliente puede pedir para un servicio.get_available_slotsHoras libres de un servicio, hasta 14 días por llamada, según horario, reservas y calendarios conectados.
Permiso bookings:read
get_bookingUna reserva por su referencia, con su estado y lo que aún se puede cambiar.find_client_bookingsLas citas de un cliente, buscadas por teléfono o correo.get_client_contextUna ficha breve de quien llama: visitas, ausencias, último servicio, próximas citas.
Permiso bookings:write
intakeEmpieza aquí: pasa las palabras del cliente; el servidor elige el servicio y el siguiente paso.propose_slotsHasta 3 horas que encajan con lo que pide el cliente; si se conoce un teléfono o un correo, la primera queda reservada 10 minutos.hold_slotRetiene una hora hasta 10 minutos mientras el cliente confirma.release_holdLibera una hora retenida.create_bookingReserva una hora, comprobada de nuevo contra las reglas y los calendarios; la misma persona nunca queda reservada dos veces en ella.reschedule_bookingCambia una reserva de hora; ambas partes reciben la invitación actualizada.escalate_to_ownerPasa al dueño los reembolsos, las quejas y todo lo inusual.join_waitlistApunta al cliente en la lista de espera cuando ninguna hora le va bien.
Permiso bookings:cancel
cancel_bookingCancela cuando el agente pasa confirmed: true (tras el sí del cliente) y ofrece horas cercanas para volver a reservar.
Permiso bookings:approve
decide_requestAcepta o rechaza una solicitud de reserva; exige el permiso bookings:approve.
Conecta tu asistente
Añade esto a la configuración de tu cliente MCP (Claude Code la lee de .mcp.json) y sustituye YOUR_API_KEY por una clave de Panel → Ajustes → Claves API. Otros clientes necesitan la misma URL y la cabecera Authorization.
{
"mcpServers": {
"cadenspot": {
"type": "http",
"url": "https://cadenspot.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Referencia completa de la API y del MCP disponible bajo petición [email protected]
API REST v1
Para código que no es un cliente MCP: HTTPS y JSON, con las mismas claves y permisos. Envía la clave como token Bearer.
GET
El negocio y sus servicios reservables, con los precios configurados por el dueño./api/v1/servicesavailability:readGET
Horas libres de un servicio, calculadas al momento, hasta 14 días./api/v1/availabilityavailability:readPOST
Reserva una hora. Envía la cabecera Idempotency-Key para que un reintento nunca reserve dos veces./api/v1/bookingsbookings:writeGET
Una reserva y las acciones que aún se permiten./api/v1/bookings/:idbookings:readPATCH
Cancela (bookings:cancel) o cambia de hora (bookings:write) una reserva./api/v1/bookings/:idbookings:cancelbookings:write
Los errores vuelven en JSON con un código estable y un mensaje: 401 si la clave no vale, 403 si le falta el permiso, 429 al llegar al límite.
Una primera llamada
curl https://cadenspot.com/api/v1/services \
-H "Authorization: Bearer YOUR_API_KEY"Referencia completa de la API y del MCP disponible bajo petición [email protected]
Webhooks
Entérate cuando pasa algo. El dueño añade un endpoint en Panel → Ajustes → Webhooks y elige los eventos.
booking.createdSe confirma una reserva.booking.requestedUna reserva espera la aprobación del dueño.booking.rescheduledUna reserva cambió de hora.booking.cancelledSe canceló una reserva.booking.declinedEl dueño rechazó una solicitud, o caducó.booking.reminderUnas 24 horas antes de la cita.booking.no_showEl dueño marcó que el cliente no vino.escalation.createdUn agente pasó una conversación al dueño.waitlist.slot_openedSe liberó una hora y se avisó a la lista de espera.rebook.dueUn cliente debería reservar su próxima visita.
Envíos firmados
Cada envío lleva x-veyracal-signature (v1= y un HMAC-SHA256 en hexadecimal del timestamp, un punto y el cuerpo sin modificar), x-veyracal-timestamp (segundos Unix), x-veyracal-event y x-veyracal-delivery. Antes de comparar el HMAC, rechaza el envío si falta el timestamp o la firma o tienen un formato incorrecto, o si el timestamp se aleja más de 300 segundos de tu reloj; luego compara en tiempo constante y elimina duplicados con el id de envío. Un envío fallido se intenta hasta 5 veces en total.
Seguro por diseño
Claves con el mínimo poder
Cada clave pertenece a un solo negocio y hace solo lo que el dueño marca: ver horas libres, reservar, cancelar o aprobar. Las claves pueden caducar, se pueden revocar y solo se guardan como hash.
Las reglas del salón en cada petición
El servidor comprueba el horario, los márgenes, la antelación, los límites diarios y hasta cuándo se puede reservar en cada reserva, bloqueo y cambio de hora. Ninguna herramienta acepta un precio: los precios solo salen de la configuración del dueño. La misma persona nunca puede tener dos reservas a la misma hora.
Reintentos sin riesgo
Con una clave de idempotencia, una petición repetida devuelve la misma reserva en vez de crear otra, y una clave nunca devuelve la reserva de otro negocio. Por MCP, si la hora se ocupó mientras tanto, la respuesta trae alternativas cercanas.
Una persona para lo difícil
Los reembolsos, las quejas y las urgencias llegan al dueño con escalate_to_owner, e intake los detecta en las palabras del cliente. Cancelar exige confirmed: true, que solo se envía tras el sí del cliente, y aceptar o rechazar una solicitud exige una clave con el permiso bookings:approve.
Preguntas
- ¿Qué asistentes de IA se pueden conectar?
- Cualquier asistente o plataforma de agentes que admita servidores MCP remotos por HTTP, y cualquier código capaz de llamar a una API HTTPS.
- ¿Cómo consigo una clave API?
- El dueño del negocio la crea en Panel → Ajustes → Claves API, elige sus permisos y la copia una sola vez: no se vuelve a mostrar.
- ¿Puede un agente reservar fuera del horario o cambiar un precio?
- No. Cada reserva, bloqueo y cambio de hora se comprueba contra el horario, los márgenes, la antelación y los límites diarios del dueño, y ninguna herramienta acepta un precio: los precios solo salen de su configuración.
- ¿Y si la misma petición se envía dos veces?
- Envía la misma clave de idempotencia (idempotencyKey en MCP, la cabecera Idempotency-Key en REST) y la segunda petición devuelve la primera reserva.
- ¿Qué pasa si un cliente pide un reembolso o se queja?
- El agente llama a escalate_to_owner: el dueño recibe un correo, el caso aparece en su Bandeja y se envía el webhook escalation.created.
- ¿Hay límites de uso?
- Sí. Hoy cada clave tiene 120 peticiones de golpe y luego 2 por segundo, contadas por separado para MCP y REST. Los límites pueden cambiar.
¿Listo para conectar?
¿Tienes un salón o estudio? Crea primero tu enlace de reservas; tu asistente reserva en él.
Crear mi enlace de reservas gratis¿Construyes un agente? Escríbenos y te enviaremos la referencia completa de la API y del MCP.
Escríbenos