Saltar al contenido
MCP · Model Context Protocol

Una integración MCP.
Todos los proveedores.

La interfaz de distribución unificada para agentes de IA: búsqueda, tarifas en tiempo real y reserva confirmada en dos fases, con cotizaciones que incluyen su propia evidencia y reglas de precios que tú configuras.

El nuevo impuesto de integración

Cada proveedor hotelero está lanzando su propio MCP. Cada integración implica otra cuenta, otro espacio de IDs y otra caja negra de precios: tu agente reconstruye la misma infraestructura para cada proveedor, sin fin.

supplier-MCP × N → N × (auth + ids + pricing + ops)
HotelByte

Agrega una sola vez

Todos los conectores de proveedores (Dida, Tourmind, Yalago, Hotelbeds, ...) funcionan detrás de una única superficie de herramientas MCP. Cuando un proveedor lance su propio MCP mañana, será una conexión upstream más para nosotros, no una integración más para ti.

your-agent → /mcp → todos los proveedores

Tres formas de entrar

La misma superficie de herramientas, el mismo contrato: elige la ruta que corresponde a donde se ejecuta tu agente.

Gateway local

Equipos que controlas (Claude Code / Cursor / Codex): hbcli ejecuta un gateway stdio local; la clave permanece en el almacén local de credenciales y las configuraciones del agente no contienen ningún secreto.

{ "mcpServers": { "hotelbyte":
  { "command": "hbcli", "args": ["mcp", "serve"] } } }

Clave estática

Plataformas alojadas y CI: genera una clave estática de inactividad prolongada (solo caduca tras 30 días sin uso; vida útil absoluta limitada por el servidor a 365 días) y colócala directamente en la configuración.

$ hbcli mcp token
{ "type": "http", "url": "https://…/mcp",
  "headers": { "Authorization": "Bearer <token>" } }

Conectores de plataforma OAuth 2.1

Claude web / conectores de ChatGPT: descubrimiento estándar RFC 9728/8414, registro dinámico y PKCE. La página de consentimiento está alojada de nuestro lado; el token es un JWT de la plataforma.

GET /.well-known/oauth-protected-resource
→ 401 WWW-Authenticate: resource_metadata=…

Conecta tu agente en un minuto

Cada tarjeta empieza con un solo comando —hbcli mcp setup <client>— que escribe la configuración (o imprime tu token y los campos exactos para pegar) y verifica la conexión. Las herramientas de escritura siguen exigiendo confirmación explícita.

Sin registro: pruébalo ya

hbcli mcp setup <client> --demo funciona desde ahora: la identidad compartida del sandbox viene integrada en la CLI, sin cuenta ni credenciales. Busca hoteles reales en segundos y pasa a tu propio tenant cuando necesites más.

Usa tu propio tenant

Regístrate en el portal, emite credenciales de API y luego ejecuta hbcli auth set-credentials && hbcli mcp setup: tus reglas de proveedores, tu margen, tus clientes. Un mismo usuario puede tener ambas identidades.

Claude CodeCLI

HTTP remoto en una sola línea; o el gateway stdio local para que las claves no viajen por la red.

hbcli mcp setup claude-code
# runs: claude mcp add hotelbyte --scope user -- hbcli mcp serve
# (no claude on PATH? prints a paste-ready snippet instead)
CursorIDE

Global en ~/.cursor/mcp.json o por proyecto en .cursor/mcp.json.

hbcli mcp setup cursor
# merges hotelbyte into ~/.cursor/mcp.json
# (your other MCP servers are preserved)
ChatGPTConnector

Plugin personalizado (modo desarrollador): URL de MCP + autenticación con API key. Elige API key, no OAuth, o la creación fallará en la verificación.

hbcli mcp setup chatgpt
# prints your token + the exact form fields:
#   Server URL:     https://api-test.hotelbyte.com/mcp
#   Authentication: API key   ← NOT OAuth
#   Header: Authorization · Value: Bearer <token>
GrokConnector · xAI

Conectores de Grok: servidor MCP personalizado en grok.com, para web y móvil.

hbcli mcp setup grok
# writes [mcp_servers.hotelbyte] into ~/.grok/config.toml
# web/mobile connectors instead: grok.com/connectors → Custom
#   (hbcli mcp setup generic prints a token for it)
CodexCLI

~/.codex/config.toml — el gateway stdio.

hbcli mcp setup codex
# appends [mcp_servers.hotelbyte] to ~/.codex/config.toml
AntigravityIDE · Google

El IDE agent-first de Google (2.0 en I/O 2026): MCP nativo, control del navegador y gestor de agentes.

hbcli mcp setup generic   # token + fields, then paste into mcp_config.json
{ "mcpServers": { "hotelbyte":
  { "command": "hbcli", "args": ["mcp", "serve"] } } }
# note: no "type" field in Antigravity configs
Devin DesktopAgent · Cognition

La aplicación de escritorio de agentes autónomos de Cognition, antes Windsurf (junio de 2026).

hbcli mcp setup generic   # token + URL
# Devin → Settings → MCP Marketplace → Add Your Own → paste
# (needs the Manage MCP Servers permission)
Claude Desktop · WebConnectors

Configuración → Extensiones / Conectores → Agregar conector personalizado: pega la URL del endpoint, autenticación = Bearer. Los conectores de plataforma tipo directorio usan el flujo de descubrimiento OAuth 2.1 descrito arriba.

hbcli mcp setup claude-connectors
# prints your token, then:
#   Add custom connector → paste URL → auth: Bearer <token>
# order.book / order.cancel always require confirm=true
VS Code · CopilotIDE

Archivo del espacio de trabajo .vscode/mcp.json (tipo stdio).

hbcli mcp setup vscode
# writes .vscode/mcp.json in the current folder (servers key)
Cualquier agente · desarrollo propioJSON-RPC

No necesitas SDK: MCP sobre streamable-http son tres llamadas JSON-RPC. Funciona desde cualquier lenguaje, framework o runtime, incluidos los agentes que construyes tú mismo. Los SDK oficiales (Python mcp, TypeScript @modelcontextprotocol/sdk) apuntan a la misma URL.

POST https://api-test.hotelbyte.com/mcp
Authorization: Bearer <token> · Accept: application/json, text/event-stream

# 1) initialize — protocol version + client info
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
  "protocolVersion":"2025-06-18","capabilities":{},
  "clientInfo":{"name":"my-agent","version":"1.0"}}}

# 2) tools/list — discover the tools and their schemas
{"jsonrpc":"2.0","id":2,"method":"tools/list"}

# 3) tools/call — search hotels in Dubai for two adults
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{
  "name":"hotel.list","arguments":{
    "destinationName":"Dubai","checkIn":"2026-11-20","checkOut":"2026-11-22",
    "rooms":[{"adultCount":2}]}}}

Cada resultado devuelve { response, evidence }: conserva el traceId para la conciliación. order.book requiere primero check_avail y confirm=true; los reintentos reutilizan customerReferenceNo.

Origen del token: hbcli mcp token (clave estática que caduca tras 30 días sin uso) o cualquier ticket emitido por el portal. Nunca pegues aquí credenciales de proveedores: el token es tu identidad en HotelByte.

La superficie de herramientas

Las herramientas cubren toda la transacción. Las herramientas de escritura solo existen cuando un despliegue las habilita, y nunca se ejecutan sin confirmación explícita.

hotel.listlecturaBusca hoteles; devuelve el sessionId que se usa en todo el flujo
hotel.rateslecturaTipos de habitación y tarifas en tiempo real, con reembolsabilidad y cargos por cancelación
hotel.check_availlecturaFase 1 de 2: vuelve a verificar inventario y precio antes de reservar
order.querylecturaConsulta del estado de la reserva y de los números de confirmación
order.bookescritura · confirmarRequiere confirm=true; customerReferenceNo es la clave de idempotencia
order.cancelescritura · confirmarRequiere confirm=true; la cancelación puede tener cargo y es irreversible

Cotizaciones con evidencia incluida

Cada resultado de herramienta devuelve { response, evidence }. La response replica la API HTTP; el sobre de evidencia hace que cada cotización sea citable y trazable: entrega el traceId a soporte y podrán reconstruir exactamente esa cotización.

{
  "response": { "list": [ … ] },
  "evidence": {
    "tool": "hotel.list",
    "traceId": "20261003…",
    "sessionId": "S-2026…",
    "currency": "USD"
  }
}

Reservas con un límite de confirmación estricto

  1. hotel.rates — presenta al usuario el precio, la reembolsabilidad y los cargos por cancelación.
  2. hotel.check_avail — vuelve a verificar la tarifa exacta; los precios en tiempo real pueden cambiar.
  3. order.book con confirm=true — solo después de que el usuario dé su consentimiento. Cualquier otra cosa se rechaza en el servidor antes de que inicie el flujo de la reserva.
  4. Los reintentos reutilizan customerReferenceNo — idempotentes por clave; los duplicados aparecen como una advertencia suave que debes confirmar.

Prueba el sandbox ahora

UAT · no SLA

El endpoint del sandbox es de acceso público. Cualquier cliente MCP puede inicializarse contra él con un ticket válido:

curl -X POST https://api-test.hotelbyte.com/mcp \
  -H "Authorization: Bearer <ticket>" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Visión de compras

Qué revisar al evaluar una interfaz de distribución con IA

Neutral respecto a proveedores. Tres preguntas que distinguen una capa de agregación de otro MCP con un solo inventario, y cómo comprobar cada una en el momento.

What to check

Is this yet another single-inventory supplier MCP

What we do

No. We are the aggregation layer: every supplier connector sits behind one tool surface, and every new supplier MCP is just another upstream lane for us.

How to verify

Run hotel.list for one destinationName and check whether results span multiple suppliers with a true minimum price.

What to check

Can the agent accidentally fire a real booking

What we do

No. order.book requires confirm=true (after the user consents to the exact price, dates and cancellation policy); missing or false confirm is rejected server-side before the order flow starts.

How to verify

Call order.book without confirm and check for an explicit rejection and zero side effects.

What to check

How transparent is pricing

What we do

Every quote carries an evidence envelope (traceId / sessionId / currency / time) that is citable and traceable; cost and markup composition opens in tiers via configurable rules, not a black box.

How to verify

Take the traceId from a response and ask the vendor to reconstruct the full chain of that one quote.