Rakuten Travel
Busca hoteles y verifica su disponibilidad utilizando la API de Rakuten Travel.
Documentación
Servidor MCP de Rakuten Travel
Un servidor de Model Context Protocol (MCP) que proporciona una interfaz para la API de Rakuten Travel para búsqueda de hoteles y verificación de disponibilidad.
Características
- Búsqueda de Hoteles: Busca hoteles por ubicación, número de hotel o código de área
- Búsqueda de Disponibilidad: Encuentra hoteles vacantes con disponibilidad en tiempo real
- Recurso de Código de Área: Accede a datos jerárquicos de ubicaciones en Japón
- Seguridad de Tipos: Tipos TypeScript completos con validación Zod
- Compatible con MCP: Funciona con cualquier cliente compatible con MCP
Requisitos Previos
- Deno runtime instalado
- ID de Aplicación de la API de Rakuten Travel (Obtén uno aquí)
Instalación
- Clona el repositorio:
git clone https://github.com/yourusername/rakuten_travel_mcp.git
cd rakuten_travel_mcp
Uso
Ejecutar el Servidor
- Configura tu cliente MCP. (el siguiente ejemplo es 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>"
}
}
}
}
Herramientas Disponibles
1. Búsqueda de Hoteles (hotel-search)
Busca hoteles usando varios criterios:
Búsqueda por Número de Hotel:
{
"hotelNo": ["123456", "789012"]
}
Búsqueda por Coordenadas:
{
"latitude": 35.6762,
"longitude": 139.6503,
"searchRadius": 3,
"datumType": 1
}
Búsqueda por Código de Área:
{
"largeClassCode": "japan",
"middleClassCode": "tokyo",
"smallClassCode": "shibuya"
}
2. Búsqueda de Hoteles Vacantes (vacant-hotel-search)
Busca hoteles disponibles:
{
"checkinDate": "2024-03-15",
"checkoutDate": "2024-03-17",
"rooms": 1,
"adultNum": 2,
"largeClassCode": "japan",
"middleClassCode": "tokyo"
}
Recursos Disponibles
Recurso de Código de Área (config://area_code)
Accede a datos jerárquicos de ubicaciones en Japón:
- Nivel de país (por ejemplo, "japan")
- Nivel de prefectura (por ejemplo, "tokyo", "osaka")
- Nivel de ciudad (por ejemplo, "shibuya", "shinjuku")
- Nivel de área (distritos detallados)
Desarrollo
Ejecutar Pruebas
# Run all tests
deno task test
# Run tests in watch mode
deno task test:watch
Estructura del Proyecto
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 de la API
Parámetros Comunes
hits: Número de resultados por página (1-30, predeterminado: 30)page: Número de página para paginaciónsort: Orden de clasificación (varias opciones disponibles)
Específicos de Búsqueda de Hoteles
hotelNo: Matriz de números de hotellatitude/longitude: Coordenadas para búsqueda geográficasearchRadius: Radio de búsqueda en km (1-3)squeezeCondition: Filtro para hoteles con/sin vacanteshotelType: Filtro por tipo de hotel (0-3)
Específicos de Búsqueda de Hoteles Vacantes
checkinDate/checkoutDate: Fechas requeridas (AAAA-MM-DD)rooms: Número de habitaciones (1-5)adultNum: Adultos por habitación (1-5)minCharge/maxCharge: Filtros de rango de precios
Pruebas
El proyecto incluye pruebas completas para:
- Validación de esquemas
- Construcción de parámetros de API
- Procesamiento de respuestas
- Manejo de errores
- Tiempos de espera de red
Manejo de Errores
El servidor maneja varios escenarios de error:
- Parámetros requeridos faltantes
- Formatos de fecha inválidos
- Límites de velocidad de la API
- Tiempos de espera de red
- Respuestas de API inválidas
Contribuciones
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Haz commit de tus cambios (
git commit -m 'Add some amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - Abre una Solicitud de Extracción
Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
Agradecimientos
- Construido con Model Context Protocol SDK
- Impulsado por Rakuten Travel API