brunovlucena/mcp-booking-server
If you are the rightful owner of mcp-booking-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The MCP Booking Server is a Model Context Protocol server designed to automate hotel searches and bookings on Booking.com.
MCP Booking Server 🏨✈️
Um servidor MCP (Model Context Protocol) para fazer reservas e buscar hotéis no Booking.com automaticamente.
🚀 Funcionalidades
- Busca de Hotéis: Pesquisar hotéis por destino, datas e critérios específicos
- Detalhes de Hotéis: Obter informações completas sobre acomodações
- Sistema de Reservas: Simular reservas (implementação completa requer integração com APIs)
- Filtros Avançados: Buscar por faixa de preço, classificação, etc.
- Destinos Populares: Lista de destinos mais procurados
- Ofertas Atuais: Promoções e descontos disponíveis
🛠️ Instalação
- Clone o repositório:
cd /Users/brunolucena/workspace/mcp-booking-server
- Instale as dependências:
npm install
- Configure as variáveis de ambiente:
cp env.example .env
# Edite o arquivo .env com suas configurações
- Compile o projeto:
npm run build
🎯 Uso
Iniciar o servidor:
npm start
Modo desenvolvimento:
npm run dev
Modo watch (desenvolvimento):
npm run watch
🔧 Configuração
Variáveis de Ambiente (.env)
# Configurações do MCP Booking Server
MCP_SERVER_NAME=booking-server
MCP_SERVER_VERSION=1.0.0
# Configurações do Booking.com
BOOKING_BASE_URL=https://www.booking.com
BOOKING_LANGUAGE=pt-br
BOOKING_CURRENCY=BRL
# Configurações do navegador (Puppeteer)
BROWSER_HEADLESS=true
BROWSER_TIMEOUT=30000
BROWSER_USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
# Configurações de autenticação (opcional)
BOOKING_USERNAME=your_username_here
BOOKING_PASSWORD=your_password_here
# Configurações do servidor
PORT=3001
LOG_LEVEL=info
# Configurações de rate limiting
RATE_LIMIT_REQUESTS=10
RATE_LIMIT_WINDOW=60000
🛠️ Ferramentas Disponíveis
1. search_hotels
Buscar hotéis em um destino específico.
Parâmetros:
destination(obrigatório): Destino da viagemcheckin(obrigatório): Data de check-in (YYYY-MM-DD)checkout(obrigatório): Data de check-out (YYYY-MM-DD)guests(opcional): Número de hóspedes (padrão: 2)rooms(opcional): Número de quartos (padrão: 1)children(opcional): Número de crianças (padrão: 0)childrenAges(opcional): Idades das crianças
Exemplo:
{
"destination": "São Paulo, Brasil",
"checkin": "2024-12-25",
"checkout": "2024-12-30",
"guests": 2,
"rooms": 1
}
2. get_hotel_details
Obter detalhes completos de um hotel.
Parâmetros:
hotelUrl(obrigatório): URL do hotel no Booking.com
3. make_reservation
Fazer uma reserva (simulação).
Parâmetros:
hotelUrl(obrigatório): URL do hotelhotelName(obrigatório): Nome do hotelcheckin(obrigatório): Data de check-incheckout(obrigatório): Data de check-outguests(obrigatório): Número de hóspedesrooms(obrigatório): Número de quartostotalPrice(obrigatório): Preço total
4. get_popular_destinations
Obter lista de destinos populares.
5. get_current_offers
Obter ofertas atuais e promoções.
6. search_hotels_by_price_range
Buscar hotéis dentro de uma faixa de preço.
Parâmetros:
destination(obrigatório): Destinocheckin(obrigatório): Data de check-incheckout(obrigatório): Data de check-outminPrice(obrigatório): Preço mínimomaxPrice(obrigatório): Preço máximoguests(opcional): Número de hóspedesrooms(opcional): Número de quartos
7. search_hotels_by_rating
Buscar hotéis com classificação mínima.
Parâmetros:
destination(obrigatório): Destinocheckin(obrigatório): Data de check-incheckout(obrigatório): Data de check-outminRating(obrigatório): Classificação mínima (1-10)guests(opcional): Número de hóspedesrooms(opcional): Número de quartos
🔍 Exemplos de Uso
Buscar hotéis em São Paulo:
# Via MCP client
mcp call search_hotels --destination "São Paulo, Brasil" --checkin "2024-12-25" --checkout "2024-12-30"
Buscar hotéis por faixa de preço:
mcp call search_hotels_by_price_range --destination "Rio de Janeiro" --checkin "2024-12-25" --checkout "2024-12-30" --minPrice 200 --maxPrice 500
Buscar hotéis com classificação alta:
mcp call search_hotels_by_rating --destination "Paris, França" --checkin "2024-12-25" --checkout "2024-12-30" --minRating 8
⚠️ Avisos Importantes
-
Simulação de Reservas: O sistema atual simula reservas. Para implementação real, seria necessário integração com APIs oficiais do Booking.com.
-
Rate Limiting: O sistema implementa rate limiting para evitar bloqueios.
-
Web Scraping: O sistema usa web scraping com Puppeteer. Respeite os termos de uso do Booking.com.
-
Dados Sensíveis: Nunca commite credenciais reais no código.
🛡️ Segurança
- Use variáveis de ambiente para credenciais
- Implemente rate limiting adequado
- Respeite os termos de uso do Booking.com
- Monitore o uso para evitar bloqueios
📝 Licença
MIT License - veja o arquivo LICENSE para detalhes.
🤝 Contribuição
Contribuições são bem-vindas! Por favor, abra uma issue ou pull request.
📞 Suporte
Para dúvidas ou problemas, abra uma issue no repositório.
Desenvolvido por Bruno Lucena 🚀