revpar-mcp
A Revenue Management MCP server for hotels and short-term rentals that provides market intelligence, event data, and dynamic pricing recommendations.
README
RevPar MCP
Agente de Revenue Management para hotelaria e aluguel por temporada, com integração entre OpenAI, Model Context Protocol (MCP) e uma interface web em Next.js.
O sistema combina inteligência de mercado, eventos locais e regras determinísticas de precificação para produzir recomendações de ADR, ocupação, RevPAR e estadia mínima (LOS).
Status: MVP técnico pronto para demonstração e evolução. Os dados de mercado e eventos atualmente são mocks locais; não representam dados de produção.
Sumário
Visão geral
O RevPar MCP recebe uma pergunta em linguagem natural, como:
Qual a diária recomendada para um imóvel de 1 quarto no Centro de Chapecó em fevereiro?
O agente interpreta a solicitação e coordena as ferramentas MCP para:
- Consultar métricas de mercado por cidade, bairro, mês e tipologia.
- Identificar eventos locais e seu impacto na demanda.
- Calcular a tarifa dinâmica, o RevPAR estimado e a estadia mínima recomendada.
- Retornar uma resposta textual acompanhada de métricas estruturadas para o dashboard.
Principais recursos
- Dashboard web responsivo para consulta e visualização de indicadores.
- Agente conversacional usando a API Chat Completions da OpenAI.
- Ferramentas MCP com schemas validados por Zod.
- Precificação determinística com:
- ponderação de ADR Airbnb e hotel;
- multiplicador de demanda por evento;
- estratégia de lead time;
- ajuste por ocupação-alvo;
- piso operacional de R$ 150 por noite;
- cálculo de RevPAR;
- recomendação de LOS.
- Normalização de cidade e bairro, incluindo acentos e variações de caixa.
- Recurso MCP estático com política de precificação.
- Testes automatizados para as ferramentas MCP e o adaptador OpenAI.
Interface
Dashboard de Revenue Management
Dashboard desenvolvido para acompanhar ADR sugerida, RevPAR, ocupação, estadia mínima e comparação entre tarifas de mercado.

Interações com o agente
O agente interpreta perguntas em linguagem natural, consulta as ferramentas MCP e apresenta recomendações de precificação contextualizadas.

Arquitetura
Usuário
│
▼
Next.js Dashboard (src/app/page.tsx)
│ POST /api/chat
▼
RevParAgent (OpenAI Function Calling)
│
▼
OpenAI Adapter
│
▼
MCP Client ⇄ MCP Server em memória
├── get_market_intelligence
├── get_local_events
├── calculate_dynamic_pricing_v2
└── revpar://policies/pricing
O servidor MCP é executado em memória pelo adaptador. Isso simplifica o MVP e elimina a necessidade de um processo MCP separado, mas permite substituir posteriormente o transporte por uma implementação persistente ou remota.
Stack
- Next.js 16
- React 19
- TypeScript 5
- OpenAI SDK
- Model Context Protocol SDK
- Zod
- Tailwind CSS
- Vitest
Ferramentas MCP
get_market_intelligence
Consulta métricas por localização, tipologia e mês.
Parâmetros principais:
city: cidade.neighborhood: bairro ou região.propertyType:studio,1br,2brouluxury.month: mês numérico de01a12.
get_local_events
Busca eventos de alto impacto por cidade e mês, incluindo multiplicador de demanda e LOS recomendado.
calculate_dynamic_pricing_v2
Calcula a recomendação de preço com base em:
baseAirbnbAdr;baseHotelAdr;targetOccupancy;eventDemandMultiplier;eventMinStayDays;leadTimeDays.
O retorno inclui suggestedAdr, estimatedRevPar e suggestedMinStayDays.
Testes
Os testes foram pensados para validar as partes mais importantes do domínio, sem depender de uma chamada real à API da OpenAI.
tests/tools.test.tsverifica as regras de negócio do motor de Revenue Management: diferenciação por tipologia e localização, identificação de eventos, impacto da demanda, estratégia de lead time, RevPAR e estadia mínima.tests/adapter.test.tsverifica o contrato de integração entre o servidor MCP e o formato de ferramentas esperado pela OpenAI.
Essa separação torna os testes rápidos e previsíveis: a camada determinística de cálculo pode evoluir com segurança, enquanto a integração com o modelo permanece isolada.
A suíte é executada com Vitest:
npm test
Estrutura do projeto
src/
├── agent/
│ ├── openaiAdapter.ts # Ponte MCP → ferramentas OpenAI
│ └── runner.ts # Orquestração conversacional e métricas
├── app/
│ ├── api/chat/route.ts # Endpoint HTTP do agente
│ ├── globals.css # Estilos globais
│ ├── layout.tsx # Layout raiz
│ └── page.tsx # Dashboard
├── mcp/
│ ├── mockData.ts # Dados locais de mercado e eventos
│ ├── server.ts # Servidor MCP e resource de política
│ └── tools.ts # Tools MCP e regras de pricing
tests/
├── adapter.test.ts # Contrato MCP/OpenAI
└── tools.test.ts # Regras das ferramentas de negócio
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.