Skip to main content
Glama
README.md
# MCP Server - Travel

Un MCP Server para búsqueda de vuelos, hoteles, clima y atracciones turísticas.

## Características

- ✈️ **Búsqueda de Vuelos** - Encuentra vuelos de ida y vuelta entre aeropuertos
- 🏨 **Búsqueda de Hoteles** - Busca alojamientos por ciudad y fechas
- 🌤️ **Pronóstico del Clima** - Obtén el clima para tu destino
- 🎯 **Atracciones Turísticas** - Descubre museos, restaurantes y puntos de interés
- 🍽️ **Búsqueda de Restaurantes** - Encuentra restaurantes por tipo de cocina

## Instalación

### Requisitos
- Node.js 18 o superior
- npm o yarn
- APIs keys gratuitas (instrucciones abajo)

### Pasos

1. **Clonar el repositorio**
   ```bash
   git clone <repo-url>
   cd mcp-server-travel
   ```

2. **Instalar dependencias**
   ```bash
   npm install
   ```

3. **Configurar API Keys**
   ```bash
   cp .env.example .env
   ```
   
   Luego editar `.env` con tus API keys:
   ```env
   # Obtener en: https://openweathermap.org/api
   OPENWEATHER_API_KEY=your_key_here
   
   # Obtener en: https://developers.amadeus.com/
   AMADEUS_API_KEY=your_key_here
   
   # Obtener en: https://www.geoapify.com/
   GEOAPIFY_API_KEY=your_key_here
   ```

## Desarrollo

### Ejecutar en modo desarrollo
```bash
npm run dev
```

El servidor se iniciará y mostrará los tools disponibles.

### Compilar TypeScript
```bash
npm run build
```

## Integración con clientes MCP

Este MCP Server es compatible con cualquier cliente que soporte el protocolo Model Context Protocol.

### Configuración del cliente

Consulta la documentación de tu cliente MCP para saber cómo agregar servidores MCP personalizados. Por ejemplo, para **Claude Desktop**, la configuración se realiza en:

### Ejemplo de configuración

Este es un ejemplo de cómo se vería la configuración (varía según el cliente):

```json
{
  "mcpServers": {
    "travel": {
      "command": "node",
      "args": ["/path/to/mcp-server-travel/dist/index.js"],
      "env": {
        "OPENWEATHER_API_KEY": "your_key_here",
        "AMADEUS_API_KEY": "your_key_here",
        "GEOAPIFY_API_KEY": "your_key_here"
      }
    }
  }
}
```

### Configuración
- Reemplaza `/path/to/mcp-server-travel` con la ruta actual al directorio del proyecto
- Reemplaza los valores de `env` con tus API keys
- Reinicia tu cliente MCP para que los cambios tomen efecto

## Tools Disponibles

### ✈️ Vuelos

#### `search_flights`
Busca vuelos de ida entre dos aeropuertos.

**Parámetros:**
- `origin` (string): Código IATA del aeropuerto de origen (ej: "BUE", "JFK")
- `destination` (string): Código IATA del destino (ej: "FCO", "CDG")
- `departure_date` (string): Fecha de salida en formato YYYY-MM-DD

**Ejemplo:**
```
Buscar vuelos de Buenos Aires a Roma para el 15 de mayo
```

#### `search_round_trip_flights`
Busca vuelos de ida y vuelta.

**Parámetros:**
- `origin` (string): Código IATA del origen
- `destination` (string): Código IATA del destino
- `departure_date` (string): Fecha de salida (YYYY-MM-DD)
- `return_date` (string): Fecha de regreso (YYYY-MM-DD)

### 🏨 Hoteles

#### `search_hotels`
Busca hoteles en una ciudad para fechas específicas.

**Parámetros:**
- `city` (string): Nombre de la ciudad
- `check_in_date` (string): Fecha de entrada (YYYY-MM-DD)
- `check_out_date` (string): Fecha de salida (YYYY-MM-DD)
- `adults` (number, opcional): Número de adultos (default: 1)

#### `get_hotel_details`
Obtiene detalles y precios de un hotel específico.

**Parámetros:**
- `hotel_id` (string): ID del hotel
- `check_in_date` (string): Fecha de entrada (YYYY-MM-DD)
- `check_out_date` (string): Fecha de salida (YYYY-MM-DD)

### 🌤️ Clima

#### `get_weather`
Obtiene el pronóstico del clima para una ciudad en una fecha específica.

**Parámetros:**
- `city` (string): Nombre de la ciudad
- `date` (string): Fecha (YYYY-MM-DD)

#### `get_weather_forecast`
Obtiene el pronóstico extendido (hasta 5 días).

**Parámetros:**
- `city` (string): Nombre de la ciudad
- `start_date` (string): Fecha de inicio (YYYY-MM-DD)
- `days` (number, opcional): Número de días (default: 5, max: 5)

### 🎯 Atracciones

#### `search_attractions`
Busca atracciones turísticas por categoría.

**Parámetros:**
- `city` (string): Nombre de la ciudad
- `category` (string): Categoría (ej: "tourism", "museum", "park", "historic")

**Categorías disponibles:** tourism, museum, park, historic, restaurant, landmark

#### `search_attractions_by_categories`
Busca atracciones en múltiples categorías a la vez.

**Parámetros:**
- `city` (string): Nombre de la ciudad
- `categories` (array, opcional): Array de categorías

#### `search_restaurants`
Busca restaurantes, opcionalmente por tipo de cocina.

**Parámetros:**
- `city` (string): Nombre de la ciudad
- `cuisine` (string, opcional): Tipo de cocina (ej: "Italian", "Japanese")

## Códigos IATA Comunes

### Aeropuertos Argentina
- **BUE**: Buenos Aires (Ministro Pistarini)
- **ARB**: Buenos Aires (Aeroparque)

### Aeropuertos Principales
- **JFK**: Nueva York (John F. Kennedy)
- **LAX**: Los Ángeles
- **ORD**: Chicago
- **LHR**: Londres (Heathrow)
- **CDG**: París (Charles de Gaulle)
- **FCO**: Roma (Fiumicino)
- **MAD**: Madrid
- **BCN**: Barcelona
- **VCE**: Venecia
- **MIL**: Milán

## Licencia

MIT

## Soporte

Para reportar bugs o sugerencias, abre un issue en el repositorio.