Un protocolo abierto que conecta sistemas de gestión hotelera con herramientas de IA — sin modificar tu infraestructura existente.
Tres principios de diseño que hacen que la integración hotel-IA sea confiable, auditable y segura.
Cualquier IA, un solo Adaptador
Un adaptador HBSP se conecta con cualquier IA compatible con MCP — Claude, GPT, Gemini, o el modelo que prefieras. Construye una vez, funciona en todas partes.
Modelo de Datos Canónico
Un vocabulario compartido para tipos de habitación, canales, planes de tarifa y métricas de ingresos. Un esquema único para todos los PMS — sin mapeos personalizados.
Aprobación Humana Requerida
Los agentes de IA proponen cambios. Los humanos aprueban o rechazan. Ningún cambio de tarifa, restricción o asignación se ejecuta sin una confirmación explícita.
Una especificación clara, esquemas tipados y ejemplos funcionales. Implementa tu primera herramienta en menos de una hora.
HBSP se ubica entre tu PMS y la capa de IA. Tu sistema de producción nunca es modificado.
HBSP funciona como un puente de solo lectura. Tu PMS, base de datos y flujos internos permanecen intactos. Ningún agente escribe directamente en producción.
Comienza con el módulo de Distribución. Agrega Reservaciones, Huésped, Operaciones y A&B de forma incremental. No se requiere una migración total.
Cada llamada a herramienta, propuesta y decisión de aprobación queda registrada. Retención mínima de 90 días. Diseñado para requisitos de licitaciones empresariales.
Adaptadores de referencia y de la comunidad para las plataformas PMS más utilizadas.
Adaptador para el sistema de gestión hotelera FNS. Conecta los datos de propiedad de FNS con cualquier agente de IA compatible con HBSP sin modificar el sistema central.
Adaptador para la plataforma de gestión hotelera Erbon. Conecta las operaciones de propiedad de Erbon con agentes de IA mediante el estándar HBSP.
Adaptador de producción construido por UNOZERO. Valida la especificación HBSP contra operaciones hoteleras reales.
Chatbook — el WhatsApp AI hotelero de UNOZERO — funciona sobre HBSP en producción. Antes de pedirle a cualquier proveedor PMS que adoptara el protocolo, lo enviamos nosotros en hoteles reales.
// reservations.quoteStay // composes listRoomTypes · getAvailability · getRates · getRestrictions { "check_in" : "2025-06-14", "check_out" : "2025-06-16", "nights" : 2, "room_type" : "DLX_DBL", "bookable" : true, "nightly_breakdown": [ { "date": "2025-06-14", "rate": 189.00, "label": "weekday" }, { "date": "2025-06-15", "rate": 229.00, "label": "weekend +30" } ], "total" : 418.00, "currency" : "USD", "restrictions": { "min_stay" : 2, "lead_time_ok": true } }
El adaptador es un servicio que llama a la REST API existente de Chatbook como cliente. El sistema central no se modifica. Este es el modelo de cumplimiento para cualquier proveedor PMS.
El modelo de cumplimiento para cualquier proveedor PMS.
Ruta B2B
El adaptador es un servicio que actúa como cliente y llama a la API REST existente de Chatbook. El sistema central permanece intacto. Este es el modelo de cumplimiento para cualquier proveedor de PMS.
Ruta B2C
El personal del hotel recibe un paquete .thoon.json — un bundle autocontenido de datos + prompt — vía WhatsApp. Pégalo en cualquier LLM para análisis profundo de tarifas sin acceso de desarrollador.
Dos SDKs oficiales. Tipado fuerte. Códigos de error claros. Sin boilerplate.
from hbsp import HBSPServer server = HBSPServer( "my-hotel", property_id="hotel_playa_001", timezone="America/Cancun", currency="MXN", ) # Register a read tool — no approval needed @server.tool("distribution.getRates", schema={...}) async def get_rates(date_range, room_types=None, channels=None): rates = await my_pms.query_rates(date_range, room_types, channels) return { "property_id": "hotel_playa_001", "currency": "MXN", "rates": rates, } server.run() # <1h from zero to compliant
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; import { HBSP_VERSION } from "@hbsp/sdk"; const server = new McpServer({ name: "my-hotel", version: HBSP_VERSION }); server.registerTool( "distribution.getRates", { inputSchema: { date_range: z.object({ start: z.string().regex(/^\d{4}-\d{2}-\d{2}$/), end: z.string().regex(/^\d{4}-\d{2}-\d{2}$/), }), room_types: z.array(z.string()).optional(), channels: z.array(z.string()).optional(), }, annotations: { readOnlyHint: true, destructiveHint: false }, }, async ({ date_range, room_types, channels }) => { const rates = await queryYourPMS(date_range, room_types, channels); return { content: [{ type: "text", text: JSON.stringify(rates) }] }; } );
Agrega un módulo a la vez. Sin migraciones forzadas.