Lodging Decision MCP

Herramienta orientada a agentes que clasifica candidatos de alojamiento con una recomendación determinista y respaldada por evidencia.

Documentación

Servidor MCP de Decisión de Alojamiento (alpha)

Servidor MCP estrecho, orientado a agentes, que envuelve el kernel de decisión de alojamiento del PR #25 (Scenic-Stay/staygraph, rama agent/scenicgraph-lodging-decision-api) sin modificaciones. Regido por gauntlet/projects/decision-intelligence-v0.1/WORK-ORDERS.yaml (DI-001-A) en Scenic-Stay/scenic-intelligence. Lea esa Orden de Trabajo antes de cambiar el alcance.

En vivo: https://di-001-a-lodging-decision-mcp.scenicstay.workers.dev/mcp

Extraído de Scenic-Stay/staygraph (services/di-001-a-mcp-decision-server/, rama agent/di-001-a-mcp-decision-server, commits 8c8f4c7/f7df7b3) a su propio repositorio público para que el descubrimiento de MCP basado en GitHub (el Registro Oficial de MCP, el rastreador de Glama) pueda encontrarlo sin exponer el resto del código de staygraph. Esa rama se conserva como registro histórico; implemente desde este repositorio en adelante.

Qué es esto

Una herramienta MCP, lodging_decision. Quienes la llaman proporcionan un perfil de viajero, contexto de viaje y una lista de listados candidatos; la herramienta devuelve una recomendación determinista y respaldada por evidencia con desglose de puntuación, compensaciones, indicadores de riesgo, información faltante y confianza. No busca inventario, no reserva, no realiza transacciones ni persiste nada.

Alcance

Solo categorías no sensibles: presupuesto, ubicación, comodidades, calidad/reseñas, política de cancelación, tarifas, marco de viaje remoto/familiar/negocios/relocalización/eventos, y necesidades de accesibilidad declaradas. No se acepta entrada de Seguridad y Pertenencia, Recuperación Médica ni características protegidas adyacentes — consulte src/guard.ts, una lista de denegación de defensa en profundidad que rechaza (no elimina silenciosamente) campos de texto libre que hagan referencia a una característica protegida o criterio de direccionamiento discriminatorio, además del hecho de que el kernel subyacente no tiene tales campos desde el principio.

Estructura

  • src/kernel/ — contratos, puntuador, validación y fixtures del PR #25, copiados byte por byte (test/kernel-parity.test.ts lo demuestra contra las seis pruebas propias del PR #25 y los fixtures de ejemplo confirmados).
  • src/guard.ts — la guardia de lista de denegación descrita anteriormente.
  • src/worker.ts — punto de entrada del Worker de Cloudflare: MCP WebStandardStreamableHTTPServerTransport en POST /mcp, más un límite diario de solicitudes suave respaldado por KV y una verificación de /health.
  • test/ — pruebas de paridad del kernel, pruebas de la guardia.

Desarrollo local

npm install
npm test        # kernel parity + guard tests
npm run typecheck
npm run dev      # wrangler dev, serves http://127.0.0.1:8787/mcp

Implementación

npm run deploy   # wrangler deploy

Requiere el espacio de nombres KV DI_001_A_ABUSE_CEILING vinculado en wrangler.jsonc (ya aprovisionado; consulte el resultado de ejecución de la Orden de Trabajo para el ID del espacio de nombres y el costo real de Cloudflare registrado en el momento de la implementación).

Limitaciones conocidas (heredadas del PR #25, sin resolver aquí)

Sin autenticación, sin versionado, sin límite de tasa más allá del techo diario suave, no calibrado contra decisiones humanas reales de reserva. No exponga a tráfico de alto volumen no confiable sin una decisión de endurecimiento adicional — consulte los interruptores de circuito de la Orden de Trabajo para el interruptor de apagado manual (retire el Worker; elimine de todos los directorios) si aparecen señales de abuso.