Lodging Decision MCP
Ferramenta voltada para agentes que classifica candidatos de hospedagem com uma recomendação determinística e baseada em evidências.
Documentação
Servidor Lodging Decision MCP (alpha)
Servidor MCP estreito e voltado para agentes que encapsula o kernel de decisão de hospedagem do PR #25 (Scenic-Stay/staygraph, branch agent/scenicgraph-lodging-decision-api) sem modificações. Regido por gauntlet/projects/decision-intelligence-v0.1/WORK-ORDERS.yaml (DI-001-A) em Scenic-Stay/scenic-intelligence. Leia essa Ordem de Trabalho antes de alterar o escopo.
Em produção: https://di-001-a-lodging-decision-mcp.scenicstay.workers.dev/mcp
Extraído de Scenic-Stay/staygraph (services/di-001-a-mcp-decision-server/, branch agent/di-001-a-mcp-decision-server, commits 8c8f4c7/f7df7b3) para um repositório público próprio para que a descoberta de MCP baseada no GitHub (o Registro Oficial de MCP, o crawler da Glama) possa encontrá-lo sem expor o restante do código de staygraph. Esse branch é preservado como registro histórico; implante a partir deste repositório daqui em diante.
O que é
Uma ferramenta MCP, lodging_decision. Os chamadores fornecem um perfil de viajante, contexto de viagem e uma lista de anúncios candidatos; a ferramenta retorna uma recomendação determinística e baseada em evidências com detalhamento de pontuação, tradeoffs, sinalizadores de risco, informações ausentes e confiança. Ela não pesquisa inventário, não reserva, não transaciona nem persiste nada.
Escopo
Apenas categorias não sensíveis: orçamento, localização, comodidades, qualidade/avaliações, política de cancelamento, taxas, enquadramento de viagem para trabalho remoto/família/negócios/realocação/eventos e necessidades de acessibilidade declaradas. Nenhuma entrada relacionada a Safety & Belonging, Medical Recovery ou características protegidas é aceita — veja src/guard.ts, uma denylist de defesa em profundidade que rejeita (não remove silenciosamente) campos de texto livre que referenciem uma característica protegida ou critério discriminatório de direcionamento, além do fato de que o kernel subjacente não possui tais campos em primeiro lugar.
Estrutura
src/kernel/— contratos, scorer, validação e fixtures do PR #25, copiados byte a byte (test/kernel-parity.test.tsprova isso contra os seis testes do próprio PR #25 e os exemplos de fixtures commitados).src/guard.ts— a proteção denylist descrita acima.src/worker.ts— ponto de entrada do Cloudflare Worker: MCPWebStandardStreamableHTTPServerTransportemPOST /mcp, além de um teto diário suave de requisições baseado em KV e uma verificação de/health.test/— testes de paridade do kernel, testes da proteção.
Desenvolvimento 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
Implantação
npm run deploy # wrangler deploy
Requer o namespace KV DI_001_A_ABUSE_CEILING vinculado em wrangler.jsonc (já provisionado; veja o execution_result da Ordem de Trabalho para o ID do namespace e o custo real da Cloudflare registrado no momento da implantação).
Limitações conhecidas (herdadas do PR #25, não resolvidas aqui)
Não autenticado, sem versão, sem limite de taxa além do teto diário suave, não calibrado contra decisões reais de reserva humana. Não exponha a tráfego de alto volume não confiável sem uma decisão adicional de endurecimento — veja os circuit breakers da Ordem de Trabalho para o kill-switch manual (remova o Worker; retire de todos os diretórios) se sinais de abuso aparecerem.