Servidor MCP de Open-Meteo
Un completo servidor del Protocolo de Contexto de Modelos (MCP ) que proporciona acceso a las API meteorológicas de Open-Meteo para su uso con Grandes Modelos Lingüísticos.
Características
Este servidor MCP proporciona acceso completo a las APIs de Open-Meteo, incluyendo:
API meteorológicas básicas
- Previsión meteorológica
(weather_forecast
) - Previsiones a 7 días con resolución horaria y diaria - Archivo meteorológico
(weather_archive
) - Datos históricos ERA5 desde 1940 hasta la actualidad - Calidad del aire
(air_quality
) - PM2,5, PM10, ozono, dióxido de nitrógeno y otros contaminantes - Meteorología marina
(marine_weather
) - Altura de las olas, periodo de las olas, dirección de las olas y temperatura de la superficie del mar - Elevación
(elevation
) - Datos del modelo digital de elevación para unas coordenadas dadas - Geocodificación
(geocoding
) - Búsqueda de ubicaciones en todo el mundo por nombre o código postal, obtención de coordenadas e información detallada sobre la 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 Norteamérica - Météo-France
(meteofrance_forecast
) - Modelos AROME y ARPEGE del servicio meteorológico francés - ECMWF
(ecmwf_forecast
) - Centro Europeo de Predicción Meteorológica a Plazo Medio - JMA
(jma_forecast
) - Modelo de alta resolución para Asia de la Agencia Meteorológica de Japón - MET Norway
(metno_forecast
) - Servicio meteorológico noruego para los países nórdicos - Environment Canada GEM
(gem_forecast
) - Modelo del servicio meteorológico canadiense
Herramientas avanzadas de previsión
- Previsión decrecidas
(flood_forecast
) - Previsiones de caudal de ríos e inundaciones de GloFAS (Global Flood Awareness System) - Previsiónestacional
(seasonal_forecast
) - Previsiones a largo plazo de hasta 9 meses de antelación - Proyecciones climáticas
(climate_projection
) - Proyecciones de cambio climático CMIP6 para distintos escenarios de calentamiento - Previsionesconjuntas
(ensemble_forecast
) - Múltiples ejecuciones de modelos que muestran la incertidumbre de las previsiones
Instalación
Método 1: Utilizar npx (Recomendado)
No requiere instalación El servidor se ejecutará directamente a través de 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)
# Clonar el repositorio git clone https://github.com/cmer81/open-meteo-mcp.git cd open-meteo-mcp # Instalar dependencias npm install # Construir el proyecto npm run build
Configuración
Configuración de Claude Desktop
Configuración Simple (Recomendada)
Añada la siguiente configuración a su archivo de configuración de Claude Desktop:
{ "mcpServers": { "open-meteo": { "command": "npx", "args": ["open-meteo-mcp-server"] } }
Configuración completa (con variables de entorno)
{ "mcpServers": { "open-meteo": { "command": "npx", "args": ["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" } } }
Configuración de desarrollo local
Si está desarrollando localmente o instalado desde el código fuente:
{ "mcpServers": { "open-meteo": { "command": "node", "args": ["/ruta/a/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" } } } }
Configuración personalizada de la instancia
Si está utilizando su propia instancia de Open-Meteo:
{ "mcpServers": { "open-meteo": { "command": "npx", "args": ["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" } } } }
Variables de entorno
Todas las variables de entorno son opcionales y tienen valores por defecto razonables:
OPEN_METEO_API_URL
- URL base para la API de previsión de Open-Meteo (por defecto: https://api.open-meteo.com)OPEN_METEO_AIR_QUALITY_API_URL
- URL de la API de calidad del aire (por defecto: https://air-quality-api.open-meteo.com)OPEN_METEO_MARINE_API_URL
- URL de la API de meteorología marina (por defecto: https://marine-api.open-meteo.com)OPEN_METEO_ARCHIVE_API_URL
: URL de la API de datos históricos (por defecto: https://archive-api.open-meteo.com)OPEN_METEO_SEASONAL_API_URL
: URL de la API de previsión estacional (por defecto: https://seasonal-api.open-meteo.com)OPEN_METEO_ENSEMBLE_API_URL
: URL de la API de previsión de conjuntos (por defecto: https://ensemble-api.open-meteo.com)OPEN_METEO_GEOCODING_API_URL
- URL de la API de geocodificación (por defecto: https://geocoding-api.open-meteo.com)
Ejemplos de uso
Geocodificación y búsqueda de ubicación
Buscar las coordenadas de París, Francia
Buscar lugares con el nombre "Berlín" y obtener los 5 primeros resultados
¿Cuáles son las coordenadas del código postal 75001?
Buscar "Lyon" sólo en Francia (countryCode: FR) con resultados en francés (language: fr)
Encontrar todas las ciudades llamadas "London" en el Reino Unido con descripciones en inglés
Previsión meteorológica básica
¿Puedes conseguirme la previsión meteorológica de París (48.8566, 2.3522) con la temperatura, humedad y precipitaciones para los próximos 3 días?
Datos meteorológicos históricos
¿Cuáles fueron las temperaturas en Londres durante enero de 2023?
Control de la calidad del aire
¿Cuál es la calidad actual del aire en Pekín con los niveles de PM2.5 y ozono?
Meteorología marina
Consígueme la altura de las olas y la temperatura de la superficie del mar para las coordenadas 45.0, -125.0 para los próximos 5 días
Control de inundaciones
Consulte la previsión de caudal del río en las coordenadas 52.5, 13.4 para los próximos 30 días
Proyecciones climáticas
Muéstreme las proyecciones de temperatura para Nueva York de 2050 a 2070 utilizando los modelos CMIP6
Parámetros API
Parámetros requeridos
latitud
: Latitud en el sistema de coordenadas WGS84 (-90 a 90)longitud
: Longitud en el sistema de coordenadas WGS84 (-180 a 180)
Variables meteorológicas horarias
temperature_2m
: Temperatura a 2 metrosrelative_humidity_2m
: Humedad relativaprecipitation
: Precipitaciónwind_speed_10m
: Velocidad del viento a 10 metroswind_direction_10m
: Dirección del vientopressure_msl
: Presión media al nivel del marcloud_cover
: Porcentaje de nubosidadweather_code
: Código de las condiciones meteorológicasvisibility
: Visibilidaduv_index
: Índice UV- Y muchas más...
Variables meteorológicas diarias
temperature_2m_max/min
: Temperaturas máximas/mínimasprecipitation_sum
: Precipitación totalwind_speed_10m_max
: Velocidad máxima del vientosunrise/sunset
: Horas de salida y puesta del solweather_code
: Código de las condiciones meteorológicasuv_index_max
: Índice UV máximo
Variables de calidad del aire
pm10
: Partículas PM10pm2_5
: Partículas PM2.5carbon_monoxide
: Monóxido de carbononitrogen_dioxide
: Dióxido de nitrógenoozone
: Ozonosulphur_dioxide
: Dióxido de azufreammonia
: Amoníacodust
: Partículas de polvo
Variables meteorológicas marinas
wave_height
: Altura de las olaswave_direction
: Dirección de las olaswave_period
: Periodo de la olawind_wave_height
: Altura de la ola del vientoswell_wave_height
: Altura de la ola del oleajesea_surface_temperature
: Temperatura de la superficie del mar
Opciones de formato
unidad_temperatura
:celsius
,fahrenheit
wind_speed_unit
:kmh
,ms
,mph
,kn
precipitation_unit
:mm
,inch
timezone
:Europa/París
,América/Nueva_York
, etc.
Opciones de intervalo de tiempo
forecast_days
: Número de días de previsión (varía según la API)past_days
: Incluir datos de días anterioresstart_date
/end_date
: Intervalo de fechas para los datos históricos (formato AAAA-MM-DD)
Scripts de desarrollo
# Desarrollo con auto-recarga npm run dev # Construir TypeScript npm run build # Iniciar servidor de producción npm start # Ejecutar pruebas npm test # Comprobación de tipos npm run typecheck # Linting npm run lint
Estructura del proyecto
src/ ├── index.ts # Punto de entrada al servidor MCP ├── client.ts # Cliente HTTP para la API Open-Meteo ├── tools.ts # Definiciones de herramientas MCP └── types.ts # Esquemas de validación Zod
Cobertura de la API
Este servidor proporciona acceso a los principales endpoints de Open-Meteo:
Datos meteorológicos
- Condiciones meteorológicas actuales
- Previsiones horarias (hasta 16 días)
- Previsiones diarias (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 Noruega para los países nórdicos)
Datos medioambientales
- Previsiones sobre la calidad del aire
- Condiciones marinas y oceánicas
- Caudal de los ríos y alertas de inundaciones
- Proyecciones sobre el cambio climático
Funciones avanzadas
- Previsiones conjuntas para la cuantificación de la incertidumbre
- Previsiones estacionales para la planificación a largo plazo
- Comparación de múltiples modelos
- Unidades y zonas horarias personalizables
Tratamiento de errores
El servidor proporciona una gestión de errores completa con mensajes de error detallados para:
- Coordenadas no válidas
- Falta de parámetros requeridos
- Límites de velocidad de la API
- Problemas de conectividad de red
- Intervalos de fechas no válidos
Rendimiento
- Cliente HTTP eficiente con agrupación de conexiones
- Caché de peticiones para consultas repetidas
- Serialización de datos optimizada
- Huella de memoria mínima
Documentación de la API
Para una documentación detallada de la API, consulte el archivo openapi.yml
y la documentación de la API Open-Meteo.
Contribución
Las contribuciones son bienvenidas Por favor, siéntase libre de enviar una Pull Request.
Configuración de desarrollo
- Fork del repositorio
- Clone su bifurcación:
git clone https://github.com/your-username/open-meteo-mcp.git
- Instalar dependencias:
npm install
- Crea una rama:
git checkout -b feature/amazing-feature
- Realiza tus cambios y añade pruebas
- Ejecuta las pruebas:
npm test
- Confirmar los cambios:
git commit -m 'Add amazing feature'
- Empuja a la rama:
git push origin feature/amazing-feature
- Abrir una Pull Request
Publicación de
Este proyecto utiliza liberaciones automatizadas a través de GitHub Actions. Para crear una nueva versión:
# Para una versión parche (1.0.0 -> 1.0.1) npm run release:patch # Para una versión menor (1.0.0 -> 1.1.0) npm run release:minor # Para una versión mayor (1.0.0 -> 2.0.0) npm run release:major
La acción de GitHub automáticamente
- Ejecutar las pruebas y construir el proyecto
- Publicar en npm con procedencia
- Crear una versión GitHub
- Actualizar los distintivos de versión
Licencia
MIT