Rakuten Travel

Pesquise hotéis e verifique a disponibilidade deles usando a API Rakuten Travel.

Documentação

Servidor MCP Rakuten Travel

Um servidor Model Context Protocol (MCP) que fornece uma interface para a API Rakuten Travel para busca de hotéis e verificação de disponibilidade.

Recursos

  • Busca de Hotéis: Busque hotéis por localização, número do hotel ou código de área
  • Busca de Disponibilidade: Encontre hotéis vagos com disponibilidade em tempo real
  • Recurso de Código de Área: Acesse dados hierárquicos de localização do Japão
  • Type-Safe: Tipos TypeScript abrangentes com validação Zod
  • Compatível com MCP: Funciona com qualquer cliente compatível com MCP

Pré-requisitos

Instalação

  1. Clone o repositório:
git clone https://github.com/yourusername/rakuten_travel_mcp.git
cd rakuten_travel_mcp

Uso

Executando o Servidor

  1. Configure seu cliente MCP. (o exemplo a seguir é para Claude Desktop)
```json
{
    "mcpServers": {
        "rakuten_travel_mcp": {
            "command": "deno",
            "args": [
                "run",
                "--allow-net=app.rakuten.co.jp",
                "--allow-env=APPLICATION_ID",
                "/path/to/rakuten_travel_mcp/serve.ts"
            ],
            "env": {
                "APPLICATION_ID": "<your_application_id>"
            }
        }
    }
}

Ferramentas Disponíveis

1. Busca de Hotéis (hotel-search)

Busque hotéis usando vários critérios:

Busca por Número do Hotel:

{
  "hotelNo": ["123456", "789012"]
}

Busca por Coordenadas:

{
  "latitude": 35.6762,
  "longitude": 139.6503,
  "searchRadius": 3,
  "datumType": 1
}

Busca por Código de Área:

{
  "largeClassCode": "japan",
  "middleClassCode": "tokyo",
  "smallClassCode": "shibuya"
}

2. Busca de Hotéis Disponíveis (vacant-hotel-search)

Busque hotéis disponíveis:

{
  "checkinDate": "2024-03-15",
  "checkoutDate": "2024-03-17",
  "rooms": 1,
  "adultNum": 2,
  "largeClassCode": "japan",
  "middleClassCode": "tokyo"
}

Recursos Disponíveis

Recurso de Código de Área (config://area_code)

Acesse dados hierárquicos de localização para o Japão:

  • Nível de país (ex.: "japan")
  • Nível de prefeitura (ex.: "tokyo", "osaka")
  • Nível de cidade (ex.: "shibuya", "shinjuku")
  • Nível de área (distritos detalhados)

Desenvolvimento

Executando Testes

# Run all tests
deno task test

# Run tests in watch mode
deno task test:watch

Estrutura do Projeto

rakuten_travel_mcp/
├── serve.ts           # Main MCP server implementation
├── types.ts           # TypeScript types and Zod schemas
├── area_code.json     # Hierarchical location data
├── *.test.ts          # Test files
├── deno.json          # Deno configuration
└── .env              # Environment variables (create this)

Parâmetros da API

Parâmetros Comuns

  • hits: Número de resultados por página (1-30, padrão: 30)
  • page: Número da página para paginação
  • sort: Ordem de classificação (várias opções disponíveis)

Específicos da Busca de Hotéis

  • hotelNo: Matriz de números de hotéis
  • latitude/longitude: Coordenadas para busca geográfica
  • searchRadius: Raio de busca em km (1-3)
  • squeezeCondition: Filtro para hotéis com/sem vagas
  • hotelType: Filtro por tipo de hotel (0-3)

Específicos da Busca de Hotéis Disponíveis

  • checkinDate/checkoutDate: Datas obrigatórias (AAAA-MM-DD)
  • rooms: Número de quartos (1-5)
  • adultNum: Adultos por quarto (1-5)
  • minCharge/maxCharge: Filtros de faixa de preço

Testes

O projeto inclui testes abrangentes para:

  • Validação de esquema
  • Construção de parâmetros da API
  • Processamento de respostas
  • Tratamento de erros
  • Timeouts de rede

Tratamento de Erros

O servidor lida com vários cenários de erro:

  • Parâmetros obrigatórios ausentes
  • Formatos de data inválidos
  • Limites de taxa da API
  • Timeouts de rede
  • Respostas inválidas da API

Contribuindo

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

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

Agradecimentos