Open-Meteo

Accede a pronósticos meteorológicos globales y datos históricos a través de la API de Open-Meteo.

Documentación

Servidor MCP de Open-Meteo

npm version GitHub release Docker Image

Un servidor integral del Protocolo de Contexto de Modelo (MCP) que proporciona acceso a las APIs meteorológicas de Open-Meteo para su uso con Modelos de Lenguaje de Gran Escala.

Características

Este servidor MCP proporciona acceso completo a las APIs de Open-Meteo, incluyendo:

APIs Meteorológicas Principales

  • Pronóstico del Tiempo (weather_forecast) - Pronósticos de hasta 16 días (7 por defecto) con resolución horaria y diaria
  • Archivo Meteorológico (weather_archive) - Datos históricos ERA5 desde 1940 hasta el presente
  • Calidad del Aire (air_quality) - PM2.5, PM10, ozono, dióxido de nitrógeno, polen, índices AQI europeos/estadounidenses, índice UV y otros contaminantes
  • Meteorología Marina (marine_weather) - Altura de ola, período de ola, dirección de ola y temperatura superficial del mar
  • Elevación (elevation) - Datos de modelo de elevación digital para coordenadas dadas
  • Geocodificación (geocoding) - Busca ubicaciones en todo el mundo por nombre o código postal, obtén coordenadas e información detallada de ubicación

Modelos Meteorológicos Especializados

  • DWD ICON (dwd_icon_forecast) - Modelo de alta resolución del servicio meteorológico alemán para Europa
  • NOAA GFS (gfs_forecast) - Modelo global del servicio meteorológico estadounidense con datos de alta resolución para América del Norte
  • Météo-France (meteofrance_forecast) - Modelos AROME y ARPEGE del servicio meteorológico francés
  • ECMWF (ecmwf_forecast) - Centro Europeo de Pronósticos Meteorológicos a Medio Plazo
  • JMA (jma_forecast) - Modelo de alta resolución de la Agencia Meteorológica de Japón para Asia
  • MET Norway (metno_forecast) - Servicio meteorológico noruego para países nórdicos
  • Environment Canada GEM (gem_forecast) - Modelo del servicio meteorológico canadiense

Herramientas Avanzadas de Pronóstico

  • Pronóstico de Inundaciones (flood_forecast) - Caudal de ríos y pronósticos de inundaciones de GloFAS (Sistema Global de Concientización sobre Inundaciones)
  • Pronóstico Estacional (seasonal_forecast) - Pronósticos de largo alcance hasta ~7 meses de anticipación
  • Proyecciones Climáticas (climate_projection) - Proyecciones de cambio climático CMIP6 para diferentes escenarios de calentamiento
  • Pronóstico por Conjuntos (ensemble_forecast) - Múltiples ejecuciones de modelos que muestran la incertidumbre del pronóstico

Instalación

Requisitos

  • Node.js >= 22.0.0

Método 1: Usando npx (Recomendado)

¡No se requiere instalación! El servidor se ejecutará directamente mediante npx.

Método 2: Instalación Global mediante npm

npm install -g open-meteo-mcp-server

Método 3: Desde el Código Fuente (Desarrollo)

# Clone the repository
git clone https://github.com/cmer81/open-meteo-mcp.git
cd open-meteo-mcp

# Install dependencies
npm install

# Build the project
npm run build

Configuración

Configuración de Claude Desktop

Configuración Simple (Recomendada)

Agrega la siguiente configuración al archivo de configuración de Claude Desktop:

{
  "mcpServers": {
    "open-meteo": {
      "command": "npx",
      "args": ["-y", "-p", "open-meteo-mcp-server", "open-meteo-mcp-server"]
    }
  }
}

Configuración Completa (con variables de entorno)

{
  "mcpServers": {
    "open-meteo": {
      "command": "npx",
      "args": ["-y", "-p", "open-meteo-mcp-server", "open-meteo-mcp-server"],
      "env": {
        "OPEN_METEO_API_URL": "https://api.open-meteo.com",
        "OPEN_METEO_AIR_QUALITY_API_URL": "https://air-quality-api.open-meteo.com",
        "OPEN_METEO_MARINE_API_URL": "https://marine-api.open-meteo.com",
        "OPEN_METEO_ARCHIVE_API_URL": "https://archive-api.open-meteo.com",
        "OPEN_METEO_SEASONAL_API_URL": "https://seasonal-api.open-meteo.com",
        "OPEN_METEO_ENSEMBLE_API_URL": "https://ensemble-api.open-meteo.com",
        "OPEN_METEO_GEOCODING_API_URL": "https://geocoding-api.open-meteo.com",
        "OPEN_METEO_FLOOD_API_URL": "https://flood-api.open-meteo.com",
        "OPEN_METEO_CLIMATE_API_URL": "https://climate-api.open-meteo.com"
      }
    }
  }
}

Configuración de Desarrollo Local

Si estás desarrollando localmente o instalaste desde el código fuente:

{
  "mcpServers": {
    "open-meteo": {
      "command": "node",
      "args": ["/path/to/open-meteo-mcp/dist/index.js"],
      "env": {
        "OPEN_METEO_API_URL": "https://api.open-meteo.com",
        "OPEN_METEO_AIR_QUALITY_API_URL": "https://air-quality-api.open-meteo.com",
        "OPEN_METEO_MARINE_API_URL": "https://marine-api.open-meteo.com",
        "OPEN_METEO_ARCHIVE_API_URL": "https://archive-api.open-meteo.com",
        "OPEN_METEO_SEASONAL_API_URL": "https://seasonal-api.open-meteo.com",
        "OPEN_METEO_ENSEMBLE_API_URL": "https://ensemble-api.open-meteo.com",
        "OPEN_METEO_GEOCODING_API_URL": "https://geocoding-api.open-meteo.com",
        "OPEN_METEO_FLOOD_API_URL": "https://flood-api.open-meteo.com",
        "OPEN_METEO_CLIMATE_API_URL": "https://climate-api.open-meteo.com"
      }
    }
  }
}

Configuración de Instancia Personalizada

Si estás usando tu propia instancia de Open-Meteo:

{
  "mcpServers": {
    "open-meteo": {
      "command": "npx",
      "args": ["-y", "-p", "open-meteo-mcp-server", "open-meteo-mcp-server"],
      "env": {
        "OPEN_METEO_API_URL": "https://your-meteo-api.example.com",
        "OPEN_METEO_AIR_QUALITY_API_URL": "https://air-quality-api.example.com",
        "OPEN_METEO_MARINE_API_URL": "https://marine-api.example.com",
        "OPEN_METEO_ARCHIVE_API_URL": "https://archive-api.example.com",
        "OPEN_METEO_SEASONAL_API_URL": "https://seasonal-api.example.com",
        "OPEN_METEO_ENSEMBLE_API_URL": "https://ensemble-api.example.com",
        "OPEN_METEO_GEOCODING_API_URL": "https://geocoding-api.example.com",
        "OPEN_METEO_FLOOD_API_URL": "https://flood-api.example.com",
        "OPEN_METEO_CLIMATE_API_URL": "https://climate-api.example.com"
      }
    }
  }
}

Transporte HTTP Transmisible

El servidor también admite transporte HTTP transmisible para implementaciones remotas. Establece la variable de entorno TRANSPORT a http:

TRANSPORT=http PORT=3000 npx open-meteo-mcp-server

Esto inicia un servidor Express en el puerto especificado (predeterminado: 3000) con el endpoint MCP en /mcp. El transporte HTTP no tiene estado: cada POST /mcp se maneja de forma independiente, no se emite ningún ID de sesión, y GET/DELETE /mcp responden 405. Ninguna herramienta mantiene estado entre llamadas, por lo que los clientes no pierden nada, y no hay tabla de sesiones que un cliente pueda llenar.

El servidor se vincula a 127.0.0.1 por defecto, por lo que solo es accesible desde la máquina local. Para aceptar conexiones de otros hosts, establece HOST=0.0.0.0 explícitamente. La imagen Docker ya hace esto, por lo que los puertos publicados funcionan sin configuración adicional.

Para implementaciones de producción, vincúlate a una interfaz accesible y habilita autenticación y limitación de velocidad:

HOST=0.0.0.0 API_KEY=your-secret-key RATE_LIMIT_RPM=60 TRANSPORT=http PORT=3000 npx open-meteo-mcp-server

Si un cliente basado en navegador se conecta al servidor, lista su origen en ALLOWED_ORIGINS — las solicitudes que llevan un encabezado Origin no listado se rechazan con 403 como protección contra el rebinding de DNS.

Los clientes deben entonces incluir la clave en cada solicitud:

Authorization: Bearer your-secret-key
# or
X-API-Key: your-secret-key

Usando scripts de npm

# Start in HTTP mode (production)
npm run start:http

# Development with auto-reload in HTTP mode
npm run dev:http

Implementación con Docker

El servidor se puede implementar fácilmente usando Docker.

Usando Imagen Preconstruida del Registro de Contenedores de GitHub (Recomendado)

Extrae y ejecuta la imagen oficial:

# Pull the latest image
docker pull ghcr.io/cmer81/open-meteo-mcp:latest

# Run the container
docker run -d \
  --name open-meteo-mcp \
  -p 3000:3000 \
  ghcr.io/cmer81/open-meteo-mcp:latest

# Check health
curl http://localhost:3000/health

Etiquetas disponibles (sin prefijo v — la etiqueta git v2.0.0 publica la imagen como 2.0.0):

  • latest - Última versión estable
  • 2.0.0 - Versión específica
  • 2.0 - Última versión 2.0.x
  • 2 - Última versión 2.x.x

Usando Docker Compose

El repositorio incluye dos configuraciones de Docker Compose:

Producción (usa imagen preconstruida):

# Start with pre-built image from GitHub Container Registry
docker compose up -d

# View logs
docker compose logs -f

# Stop the server
docker compose down

Desarrollo (compila desde el código fuente):

# Build and start from local source
docker compose -f docker-compose.dev.yml up -d

# Rebuild after code changes
docker compose -f docker-compose.dev.yml up -d --build

Compilando desde el Código Fuente

Si prefieres compilar la imagen tú mismo:

# Build the image
npm run docker:build
# or
docker build -t open-meteo-mcp-server .

# Run the container
npm run docker:run
# or
docker run -p 3000:3000 open-meteo-mcp-server

Configuración de Entorno

Copia .env.example a .env y personaliza según sea necesario:

cp .env.example .env
# Edit .env with your configuration

Luego actualiza docker-compose.yml para usar el archivo .env o pasa las variables de entorno directamente.

Verificación de Salud

El servidor HTTP incluye un endpoint de verificación de salud:

curl http://localhost:3000/health
# Response: {"status":"ok"}

Este endpoint es utilizado por el HEALTHCHECK de Docker y se puede integrar con plataformas de orquestación de contenedores (Kubernetes, Docker Swarm, etc.).

Variables de Entorno

Todas las variables de entorno son opcionales y tienen valores predeterminados sensatos:

  • OPEN_METEO_API_URL - URL base para la API de pronóstico de Open-Meteo (predeterminado: https://api.open-meteo.com)
  • OPEN_METEO_AIR_QUALITY_API_URL - URL de la API de calidad del aire (predeterminado: https://air-quality-api.open-meteo.com)
  • OPEN_METEO_MARINE_API_URL - URL de la API meteorológica marina (predeterminado: https://marine-api.open-meteo.com)
  • OPEN_METEO_ARCHIVE_API_URL - URL de la API de datos históricos (predeterminado: https://archive-api.open-meteo.com)
  • OPEN_METEO_SEASONAL_API_URL - URL de la API de pronóstico estacional (predeterminado: https://seasonal-api.open-meteo.com)
  • OPEN_METEO_ENSEMBLE_API_URL - URL de la API de pronóstico por conjuntos (predeterminado: https://ensemble-api.open-meteo.com)
  • OPEN_METEO_GEOCODING_API_URL - URL de la API de geocodificación (predeterminado: https://geocoding-api.open-meteo.com)
  • OPEN_METEO_FLOOD_API_URL - URL de la API de pronóstico de inundaciones (predeterminado: https://flood-api.open-meteo.com)
  • OPEN_METEO_CLIMATE_API_URL - URL de la API de proyección climática (predeterminado: https://climate-api.open-meteo.com)
  • OPEN_METEO_CACHE_MAX_BYTES - Límite de tamaño para la caché de respuestas en memoria (predeterminado: 20000000). Establécelo a 0 para deshabilitar el almacenamiento en caché. El límite cuenta JSON serializado; los objetos analizados retenidos en memoria conservan aproximadamente 1.2-2.6x de eso dependiendo de la forma de la carga útil, por lo que una caché completa en el valor predeterminado cuesta alrededor de 50 MB de heap. Las solicitudes idénticas se sirven desde la caché hasta que expira su TTL por endpoint: 15 minutos para pronósticos y conjuntos, 30 minutos para calidad del aire y marina, 1 hora para inundaciones, 6 horas para estacional, 24 horas para archivo (1 hora cuando el rango termina dentro de los últimos 5 días, que el archivo aún está rellenando) y clima, 7 días para geocodificación, 30 días para elevación.
  • TRANSPORT - Modo de transporte: http para HTTP transmisible, omítelo para stdio (predeterminado: stdio)
  • PORT - Puerto del servidor HTTP al usar transporte HTTP (predeterminado: 3000)
  • HOST - Interfaz a la que se vincula el transporte HTTP (predeterminado: 127.0.0.1, solo loopback). Establécelo a 0.0.0.0 para aceptar conexiones de otras máquinas. La imagen Docker ya establece esto a 0.0.0.0, por lo que los puertos publicados funcionan de inmediato.

Seguridad del Transporte HTTP (opcional)

  • API_KEY - Cuando se establece, todas las solicitudes a /mcp deben incluir esta clave mediante Authorization: Bearer <key> o X-API-Key: <key>. Déjalo sin establecer para acceso abierto (modo local/desarrollo). Se aplica en GET, POST y DELETE por igual.
  • RATE_LIMIT_RPM - Máximo de solicitudes por minuto por IP (predeterminado: 60). Los clientes IPv6 se agrupan por /56. Solo transporte HTTP.
  • RATE_LIMIT_ANTHROPIC_RPM - Máximo de solicitudes por minuto para el rango saliente de Anthropic (160.79.104.0/21), compartido por todos los usuarios de claude.ai, que todos alcanzan el servidor desde él (predeterminado: 600). Detrás de un proxy inverso, listalo en TRUSTED_PROXIES para que se vea la IP real del cliente. Solo transporte HTTP.
  • TRUSTED_PROXIES - Lista separada por comas de IPs de proxy de confianza o rangos CIDR (por ejemplo, 10.0.0.0/8,172.16.0.0/12). Cuando se establece, X-Forwarded-For se honra solo para solicitudes que se originan desde estas direcciones. Déjalo sin establecer para usar siempre la IP de conexión directa.
  • ALLOWED_ORIGINS - Lista separada por comas de orígenes de navegador permitidos para alcanzar el servidor (por ejemplo, http://localhost:5173,https://app.example). Protege contra el rebinding de DNS: cualquier solicitud que lleve un encabezado Origin que no esté listado se rechaza con 403. Las solicitudes sin encabezado Origin — clientes CLI y transportes SDK — no se ven afectadas. Vacío por defecto.

/health permanece accesible sin clave y sin limitación de velocidad, por lo que las sondas de contenedor siguen funcionando.

Habilidades

El directorio skills/ contiene archivos SKILL.md que ayudan a los asistentes de IA a usar este servidor MCP de manera efectiva. Actúan como guías contextuales — la IA lee la habilidad relevante para saber qué herramienta llamar y cómo usar sus parámetros.

Habilidades disponibles

HabilidadArchivoMejor para
open-meteoskills/open-meteo/SKILL.mdClima cotidiano: pronósticos, datos históricos, calidad del aire, condiciones marinas, elevación
open-meteo-advancedskills/open-meteo-advanced/SKILL.mdModelos específicos (ECMWF, GFS, DWD ICON…), incertidumbre de conjuntos, perspectivas estacionales, proyecciones climáticas

Uso con Claude Code (CLI)

Copia las habilidades a tu directorio de habilidades de Claude:

cp -r skills/open-meteo ~/.claude/skills/
cp -r skills/open-meteo-advanced ~/.claude/skills/

Esto las instala en ~/.claude/skills/open-meteo/SKILL.md y ~/.claude/skills/open-meteo-advanced/SKILL.md. Claude Code cargará la habilidad relevante automáticamente cuando hagas preguntas relacionadas con el clima.

Uso con Claude Desktop

Sube el archivo SKILL.md directamente como documento en tu conversación de Claude Desktop:

  • Para preguntas meteorológicas cotidianas: sube skills/open-meteo/SKILL.md
  • Para selección de modelos, conjuntos o proyecciones climáticas: sube skills/open-meteo-advanced/SKILL.md

Sube una habilidad por conversación. La IA la usará como guía de referencia durante toda la sesión.

Ejemplos de Uso

Geocodificación y Búsqueda de Ubicaciones

Find the coordinates for Paris, France
Search for locations named "Berlin" and return the top 5 results
What are the coordinates for postal code 75001?
Search for "Lyon" in France only (countryCode: FR) with results in French (language: fr)
Find all cities named "London" in the United Kingdom with English descriptions

Pronóstico Meteorológico Básico

Can you get me the weather forecast for Paris (48.8566, 2.3522) with temperature, humidity, and precipitation for the next 3 days?

Datos Meteorológicos Históricos

What were the temperatures in London during January 2023?

Monitoreo de Calidad del Aire

What's the current air quality in Beijing with PM2.5 and ozone levels?
Give me the current European AQI, UV index, and pollen levels (birch, grass, ragweed) in Paris.

Meteorología Marina

Get me the wave height and sea surface temperature for coordinates 45.0, -125.0 for the next 5 days.

Monitoreo de Inundaciones

Check the river discharge forecast for coordinates 52.5, 13.4 for the next 30 days.

Pronóstico Estacional

Give me the weekly and monthly temperature outlook for Madrid over the next 4 months.

Pronóstico por Conjuntos

Compare the ICON and GFS ensemble forecasts for Berlin over the next 5 days and show the spread across members.

Proyecciones Climáticas

Show me temperature projections for New York from 2050 to 2070 using CMIP6 models.

Parámetros de la API

Parámetros Requeridos

  • latitude : Latitud en el sistema de coordenadas WGS84 (-90 a 90)
  • longitude : Longitud en el sistema de coordenadas WGS84 (-180 a 180)

Variables Meteorológicas Horarias

  • temperature_2m : Temperatura a 2 metros
  • relative_humidity_2m : Humedad relativa
  • precipitation : Precipitación
  • wind_speed_10m : Velocidad del viento a 10 metros
  • wind_direction_10m : Dirección del viento
  • pressure_msl : Presión media a nivel del mar
  • cloud_cover : Porcentaje de cobertura nubosa
  • weather_code : Código de condición meteorológica
  • visibility : Visibilidad
  • uv_index : Índice UV
  • Y muchos más...

Variables Meteorológicas Diarias

  • temperature_2m_max/min : Temperaturas máximas/mínimas
  • precipitation_sum : Precipitación total
  • wind_speed_10m_max : Velocidad máxima del viento
  • sunrise/sunset : Horas de salida y puesta del sol
  • weather_code : Código de condición meteorológica
  • uv_index_max : Índice UV máximo

Variables de calidad del aire

  • pm10 : Partículas PM10
  • pm2_5 : Partículas PM2.5
  • carbon_monoxide : Monóxido de carbono
  • nitrogen_dioxide : Dióxido de nitrógeno
  • ozone : Ozono
  • sulphur_dioxide : Dióxido de azufre
  • ammonia : Amoníaco
  • dust : Partículas de polvo
  • alder_pollen : Polen de aliso (solo Europa)
  • birch_pollen : Polen de abedul (solo Europa)
  • grass_pollen : Polen de gramíneas (solo Europa)
  • mugwort_pollen : Polen de artemisa (solo Europa)
  • olive_pollen : Polen de olivo (solo Europa)
  • ragweed_pollen : Polen de ambrosía (solo Europa)
  • european_aqi : Índice Europeo de Calidad del Aire
  • european_aqi_pm2_5 : ICA Europeo para PM2.5
  • european_aqi_pm10 : ICA Europeo para PM10
  • european_aqi_nitrogen_dioxide : ICA Europeo para NO₂
  • european_aqi_ozone : ICA Europeo para ozono
  • european_aqi_sulphur_dioxide : ICA Europeo para SO₂
  • us_aqi : Índice de Calidad del Aire de EE. UU.
  • us_aqi_pm2_5 : ICA de EE. UU. para PM2.5
  • us_aqi_pm10 : ICA de EE. UU. para PM10
  • us_aqi_nitrogen_dioxide : ICA de EE. UU. para NO₂
  • us_aqi_ozone : ICA de EE. UU. para ozono
  • us_aqi_sulphur_dioxide : ICA de EE. UU. para SO₂
  • us_aqi_carbon_monoxide : ICA de EE. UU. para CO
  • uv_index : Índice UV
  • uv_index_clear_sky : Índice UV en condiciones de cielo despejado

Variables meteorológicas marinas

  • wave_height : Altura de ola
  • wave_direction : Dirección de ola
  • wave_period : Período de ola
  • wind_wave_height : Altura de ola de viento
  • swell_wave_height : Altura de mar de fondo
  • sea_surface_temperature : Temperatura superficial del mar

Opciones de formato

  • temperature_unit : celsius, fahrenheit
  • wind_speed_unit : kmh, ms, mph, kn
  • precipitation_unit : mm, inch
  • timezone : Europe/Paris, America/New_York, etc.

Opciones de rango temporal

  • forecast_days : Número de días de pronóstico (varía según la API)
  • past_days : Incluir datos de días pasados
  • start_date / end_date : Rango de fechas para datos históricos (formato AAAA-MM-DD)

Scripts de desarrollo

# Development with auto-reload
npm run dev

# Build TypeScript
npm run build

# Start production server
npm start

# Run tests
npm test

# Type checking
npm run typecheck

# Linting
npm run lint

Evaluaciones

El directorio evals/ contiene un punto de referencia de usabilidad para LLM de las herramientas de este servidor: una verificación diferente a npm test. Las pruebas unitarias verifican que el código sea correcto; esto verifica que un LLM al que se le dan solo las herramientas de este servidor (sin otro contexto) pueda completar tareas realistas con ellas.

  • evals/evaluation.xml — 14 pares independientes de preguntas/respuestas de solo lectura basados en datos históricos estables (archivo ERA5, proyecciones CMIP6, geocodificación, elevación), por lo que las respuestas esperadas nunca cambian con el tiempo. Los primeros 10 nombran la herramienta a usar; los últimos 4 no, por lo que también verifican la elección de herramienta y el manejo de la hora local (lo que indican las instrucciones del servidor).
  • evals/scripts/evaluation.py — entorno de ejecución que inicia el servidor, permite que un agente responda cada pregunta usando solo sus herramientas y compara la respuesta con la esperada.

Ejecutar la evaluación

npm run build
pip install -r evals/scripts/requirements.txt
echo 'ANTHROPIC_API_KEY=your_api_key_here' >> .env   # or export it; .env is gitignored

npm run eval
# baseline without the server's instructions, to measure their effect:
npm run eval -- --no-server-instructions
# other model or report file:
npm run eval -- -m claude-opus-5-5 -o eval-report.md

El entorno de ejecución pasa el instructions de inicialización del servidor al modelo en el mensaje del sistema, como hacen los clientes MCP. TRANSPORT=stdio se fuerza para el servidor que inicia, por lo que un .env copiado de .env.example (que establece TRANSPORT=http) no hace que escuche en HTTP en su lugar.

Esto llama a la API real de Anthropic para cada pregunta, por lo que consume tokens/créditos: es una verificación de calidad manual para el diseño de herramientas, no parte de CI.

Al agregar, eliminar o renombrar una herramienta, o cambiar materialmente la descripción o el esquema de una herramienta, considere agregar o actualizar un qa_pair en evals/evaluation.xml que la ejercite.

Estructura del proyecto

src/
├── index.ts          # MCP server entry point
├── client.ts         # HTTP client for Open-Meteo API
├── tools.ts          # MCP tool definitions
├── types.ts          # Zod validation schemas
├── truncation.ts     # Response size capping and serialization
└── security.ts       # Auth, origin validation, rate limiter, IP extraction

Cobertura de la API

Este servidor proporciona acceso a todos los endpoints principales de Open-Meteo:

Datos meteorológicos

  • Condiciones meteorológicas actuales
  • Pronósticos por hora (hasta 16 días)
  • Pronósticos diarios (hasta 16 días)
  • Datos meteorológicos históricos (1940-presente)

Modelos especializados

  • Modelos regionales de alta resolución (DWD ICON, Météo-France AROME)
  • Modelos globales (NOAA GFS, ECMWF)
  • Especialistas regionales (JMA para Asia, MET Norway para los países nórdicos)

Datos ambientales

  • Pronósticos de calidad del aire
  • Condiciones marinas y oceánicas
  • Caudal de ríos y alertas de inundación
  • Proyecciones de cambio climático

Funciones avanzadas

  • Pronósticos de conjunto para cuantificación de incertidumbre
  • Pronósticos estacionales para planificación a largo plazo
  • Comparación de múltiples modelos
  • Unidades y zonas horarias personalizables

Manejo de errores

El servidor proporciona un manejo integral de errores con mensajes de error detallados para:

  • Coordenadas no válidas
  • Parámetros requeridos faltantes
  • Límites de velocidad de la API
  • Problemas de conectividad de red
  • Rangos de fechas no válidos

Límites de tamaño de respuesta

Las respuestas de las herramientas están limitadas a 25,000 caracteres para que una sola consulta amplia no desborde el contexto de un LLM. Cuando una respuesta excede el límite, las matrices de series temporales (hourly, daily, minutely_15) se acortan en una proporción igual, manteniendo cada serie paralela alineada en las mismas marcas de tiempo, y se agregan dos campos:

{
  "truncated": true,
  "truncation_message": "Response truncated from 95538 characters to stay within the 25000-character limit. Narrow the request (start_date/end_date, forecast_days, past_days, or fewer variables) to retrieve the full data."
}

Para obtener datos completos, reduzca la solicitud: rango de fechas más corto, menos forecast_days/past_days o menos variables.

Rendimiento

  • Cliente HTTP eficiente con agrupación de conexiones
  • Serialización de datos optimizada
  • Huella de memoria mínima

Documentación de la API

Para obtener documentación detallada de la API, consulte el archivo openapi.yml y la documentación de la API de Open-Meteo.

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de extracción (Pull Request).

Configuración de desarrollo

  1. Haga un fork del repositorio
  2. Clone su fork: git clone https://github.com/your-username/open-meteo-mcp.git
  3. Instale las dependencias: npm install
  4. Cree una rama de características: git checkout -b feature/amazing-feature
  5. Haga sus cambios y agregue pruebas
  6. Ejecute las pruebas: npm test
  7. Confirme sus cambios: git commit -m 'Add amazing feature'
  8. Envíe a la rama: git push origin feature/amazing-feature
  9. Abra una Solicitud de extracción

Publicación de versiones

Este proyecto utiliza publicaciones automatizadas mediante GitHub Actions. Para crear una nueva versión:

# For a patch release (1.0.0 -> 1.0.1)
npm run release:patch

# For a minor release (1.0.0 -> 1.1.0)
npm run release:minor

# For a major release (1.0.0 -> 2.0.0)
npm run release:major

La Acción de GitHub automáticamente:

  • Ejecutará pruebas y compilará el proyecto
  • Publicará en npm con procedencia
  • Creará una versión de GitHub
  • Actualizará las insignias de versión

Licencia

MIT