# MCP Server de Clima

Este es un servidor MCP (Model Context Protocol) que proporciona información meteorológica actual y pronósticos.

## Herramientas

1. `get_weather`
   - Obtiene el clima actual para una ubicación específica
   - Entrada requerida: `location` (string) - Ciudad y país (ej. "Madrid,ES")
   - Entradas opcionales:
     - `units` (string) - Unidades de temperatura ("metric", "imperial", "standard")

2. `get_forecast`
   - Obtiene el pronóstico del clima para los próximos días
   - Entrada requerida: `location` (string) - Ciudad y país (ej. "Madrid,ES")
   - Entradas opcionales:
     - `days` (number) - Número de días para el pronóstico (máximo 5)
     - `units` (string) - Unidades de temperatura ("metric", "imperial", "standard")

## Características

- Conexión a la API de OpenWeatherMap
- Formateo de datos para mejor legibilidad
- Soporte para diferentes unidades de temperatura
- Manejo de errores robusto

## Configuración

Antes de usar este servidor MCP, necesitas:

1. Obtener una API key de [OpenWeatherMap](https://openweathermap.org/api)
2. Actualizar la constante `API_KEY` en el archivo `index.ts` con tu clave

## Instalación

### Requisitos previos

- Node.js (versión 14 o superior)
- npm

### Pasos de instalación

1. Clona este repositorio
2. Instala las dependencias:
   ```bash
   npm install
   ```
3. Construye el proyecto:
   ```bash
   npm run build
   ```

### Instalación en Claude Desktop

1. Ve a: Configuración > Desarrollador > Editar Configuración
2. Añade lo siguiente a tu archivo `claude_desktop_config.json`:
   ```json
   {
     "mcpServers": {
       "clima": {
         "command": "npx",
         "args": [
           "-y",
           "mcp-server-clima"
         ]
       }
     }
   }
   ```
3. Reinicia Claude Desktop

### Instalación mediante npm

Una vez publicado el paquete en npm, puedes utilizar la siguiente configuración:

```json
{
  "mcpServers": {
    "clima": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-clima"
      ]
    }
  }
}
```

## Uso

Una vez instalado, puedes pedirle a Claude que use las herramientas del servidor MCP de clima:

- "¿Puedes decirme el clima actual en Barcelona, España?"
- "Muestra el pronóstico para los próximos 3 días en Nueva York"

## Ejemplos de respuestas

### Clima actual

```json
{
  "location": {
    "name": "Barcelona",
    "country": "ES",
    "coordinates": {
      "lat": 41.3888,
      "lon": 2.159
    }
  },
  "current": {
    "temperature": 18.5,
    "feels_like": 17.9,
    "humidity": 68,
    "pressure": 1015,
    "description": "cielo despejado",
    "icon": "01d"
  },
  "wind": {
    "speed": 3.6,
    "direction": 220
  },
  "sun": {
    "sunrise": "7:12:45 AM",
    "sunset": "7:48:23 PM"
  },
  "units": "metric"
}
```

### Pronóstico

```json
{
  "location": {
    "name": "New York",
    "country": "US",
    "coordinates": {
      "lat": 40.7143,
      "lon": -74.006
    }
  },
  "forecast": [
    {
      "date": "2025-04-05",
      "forecasts": [
        {
          "time": "3:00:00 PM",
          "temperature": 15.2,
          "weather": {
            "main": "Clear",
            "description": "cielo despejado",
            "icon": "01d"
          },
          "wind": {
            "speed": 4.1,
            "direction": 250
          },
          "humidity": 45,
          "pressure": 1018
        },
        // Más pronósticos para este día...
      ]
    },
    // Más días...
  ],
  "units": "metric"
}
```

## Licencia

Este proyecto está bajo la Licencia MIT.
