Travel MCP Server

Um servidor completo de planejamento de viagens para busca de voos, reserva de hospedagem, câmbio de moedas e previsão do tempo.

Documentação

Travel MCP Server

Um servidor Model Context Protocol (MCP) para planejamento de viagens abrangente, fornecendo busca de voos, reserva de acomodações, câmbio de moedas, previsão do tempo e cálculo de orçamento de viagem.

Recursos

  • 🛫 Busca de Voos: Encontre e compare voos com várias opções
  • 🏨 Busca de Acomodações: Pesquise hotéis, aluguéis de temporada e outras acomodações
  • 💱 Câmbio de Moedas: Obtenha taxas de câmbio em tempo real para o orçamento da viagem
  • 🌤️ Previsão do Tempo: Verifique as condições climáticas para as datas da sua viagem
  • 💰 Calculadora de Orçamento de Viagem: Calcule e planeje seus gastos de viagem

Instalação

  1. Clone o repositório:
git clone <repository-url>
cd travel-mcp-server
  1. Instale as dependências:
npm install
  1. Configure as variáveis de ambiente:

Configuração de Chaves de API

Você precisará obter chaves de API dos seguintes serviços:

  1. API de Voos: Amadeus, Skyscanner ou provedor de dados de voos similar
  2. API de Acomodações: Booking.com, Airbnb ou serviço de acomodações similar
  3. API de Câmbio de Moedas: Fixer.io, ExchangeRate-API ou serviço similar
  4. API de Previsão do Tempo: OpenWeatherMap, WeatherAPI ou serviço de previsão do tempo similar
  5. Google Places API: Para recomendações de atrações e restaurantes

Atualize seu arquivo .env com essas chaves:

FLIGHT_API_KEY=your_flight_api_key
BOOKING_API_KEY=your_booking_api_key
EXCHANGE_API_KEY=your_exchange_api_key
WEATHER_API_KEY=your_weather_api_key
GOOGLE_PLACES_API_KEY=your_google_places_api_key

Uso

Desenvolvimento

Execute o servidor em modo de desenvolvimento com recarregamento automático:

npm run dev

Produção

Compile e inicie o servidor:

npm run build
npm start

Modo de Observação

Execute com reinício automático em alterações de arquivos:

npm run watch

Ferramentas Disponíveis

O servidor MCP fornece as seguintes ferramentas:

1. Buscar Voos (search_flights)

Busque voos entre destinos com opções personalizáveis.

Parâmetros:

  • origin: Aeroporto/cidade de partida
  • destination: Aeroporto/cidade de chegada
  • departureDate: Data de partida
  • returnDate: Data de retorno (opcional para viagem de ida)
  • passengers: Número de passageiros
  • class: Classe do voo (econômica, executiva, primeira)

2. Buscar Acomodações (search_accommodation)

Encontre hotéis, aluguéis de temporada e outras opções de acomodação.

Parâmetros:

  • destination: Cidade ou local
  • checkIn: Data de check-in
  • checkOut: Data de check-out
  • guests: Número de hóspedes
  • rooms: Número de quartos
  • type: Tipo de acomodação (hotel, apartamento, etc.)

3. Obter Taxa de Câmbio (get_exchange_rate)

Obtenha taxas de câmbio atuais entre moedas.

Parâmetros:

  • from: Código da moeda de origem (ex.: USD)
  • to: Código da moeda de destino (ex.: EUR)
  • amount: Valor para conversão (opcional)

4. Obter Previsão do Tempo (get_weather_forecast)

Verifique as condições climáticas para o seu destino de viagem.

Parâmetros:

  • location: Cidade ou local
  • date: Data para a previsão
  • days: Número de dias para a previsão (opcional)

5. Calcular Orçamento de Viagem (calculate_trip_budget)

Calcule os custos estimados da viagem, incluindo voos, acomodação e despesas diárias.

Parâmetros:

  • destination: Destino da viagem
  • duration: Duração da viagem em dias
  • travelers: Número de viajantes
  • category: Categoria de orçamento (econômico, intermediário, luxo)

Estrutura do Projeto

travel-mcp-server/
├── src/
│   ├── index.ts              # Main server entry point
│   └── services/
│       ├── FlightService.ts       # Flight search functionality
│       ├── AccommodationService.ts # Accommodation search
│       ├── CurrencyService.ts     # Currency exchange
│       └── WeatherService.ts      # Weather forecasting
├── dist/                     # Compiled TypeScript output
├── package.json             # Project dependencies and scripts
├── tsconfig.json           # TypeScript configuration
├── .env                    # Environment variables (not in repo)
├── .gitignore             # Git ignore rules
└── README.md              # This file

Integração com Clientes MCP

Este servidor pode ser usado com qualquer cliente compatível com MCP, como:

  • Claude Desktop
  • Outros assistentes de IA que suportam MCP
  • Aplicações de cliente MCP personalizadas

Adicione o servidor à configuração do seu cliente MCP:

{
  "mcpServers": {
    "travel-planner": {
      "command": "npx",
      "args": ["travel-mcp-server"]
    }
  }
}

Guia de Desenvolvimento

Pilha Tecnológica

  • TypeScript: Desenvolvimento JavaScript com segurança de tipos
  • Node.js: Ambiente de execução
  • MCP SDK: Implementação do Model Context Protocol
  • Axios: Cliente HTTP para requisições de API
  • Zod: Validação de esquema
  • dotenv: Gerenciamento de variáveis de ambiente

Adicionando Novos Serviços

  1. Crie uma nova classe de serviço em src/services/
  2. Implemente os métodos necessários
  3. Registre o serviço em src/index.ts
  4. Adicione ferramentas e manipuladores correspondentes

Executando Testes

npm test

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de recurso: git checkout -b feature-name
  3. Faça suas alterações
  4. Execute os testes: npm test
  5. Faça commit das suas alterações: git commit -m 'Add feature'
  6. Envie para o branch: git push origin feature-name
  7. Envie um pull request

Licença

Este projeto está licenciado sob a Licença ISC - consulte o arquivo LICENSE para obter detalhes.

Suporte

Se você encontrar problemas ou tiver dúvidas:

  1. Verifique a seção Issues
  2. Crie um novo issue com informações detalhadas
  3. Forneça logs e etapas de reprodução

Roteiro

  • Adicionar mais integrações de serviços de viagem
  • Implementar cache para respostas de API
  • Adicionar planejamento de itinerário de viagem
  • Suporte para coordenação de viagens em grupo
  • Integração com serviços de calendário
  • Aplicativo complementar para celular

Nota: Lembre-se de manter suas chaves de API seguras e nunca as envie para o controle de versão. Sempre use variáveis de ambiente para configurações sensíveis.