Skill v1.0.2
currentAutomated scan100/1005 files
name: open-meteo-advanced description: Use when the user wants a specific weather model, needs ensemble uncertainty ranges, requests seasonal outlooks, or asks for long-term climate projections. metadata: version: "1.0.2"
Open-Meteo MCP — Advanced
Overview
Use this skill when:
- The user asks for a specific weather model (ECMWF, GFS, DWD ICON, Météo-France, JMA, MET Norway, GEM)
- The user wants to compare models (make parallel calls, one per model tool)
- Forecasts beyond 16 days are needed
- Ensemble uncertainty / confidence intervals are requested
- A seasonal outlook (1–7 months) or climate projection (to 2050) is needed
For everyday weather questions, use open-meteo instead.
Model Selection Guide
| Tool | Provider | Geographic Focus | Horizon | Best For | |
|---|---|---|---|---|---|
ecmwf_forecast | ECMWF IFS | Global | 15 days | Highest global accuracy | |
gfs_forecast | NOAA GFS | Global | 16 days | Global, especially Americas | |
dwd_icon_forecast | DWD ICON | Europe only | 2–7.5 days | High-res Europe | |
meteofrance_forecast | Météo-France AROME/ARPEGE | France, DOM-TOM, Mediterranean/Europe | 2–4 days | France + nearby regions | |
jma_forecast | JMA | Asia-Pacific | 4–11 days | Japan and Asia-Pacific | |
metno_forecast | MET Norway | Nordic-primary (global extension via blending) | 2.5 days | Nordic region precision | |
gem_forecast | Environment Canada GEM | North America | 2–10 days | Canada | |
ensemble_forecast | Multi-model | Global | 35 days | Forecast uncertainty ranges | |
seasonal_forecast | ECMWF SEAS5 | Global | up to 217 days | 1–7 month outlook | |
climate_projection | CMIP6 | Global | 1950–2050 | Multi-decade scenarios |
Geographic constraints:
dwd_icon_forecast: Europe only — do not use for other regions.metno_forecastwithmetno_nordic: Nordic region only.metno_seamlessis Nordic-primary with global extension via blending, not a general-purpose global model.meteofrance_forecast: France + DOM-TOM + Mediterranean/Europe coverage.
Key Parameters
Model-specific forecast tools
Applies to: dwd_icon_forecast, gfs_forecast, meteofrance_forecast, ecmwf_forecast, jma_forecast, metno_forecast, gem_forecast
All share the same parameters as weather_forecast (see open-meteo skill), plus:
| Parameter | Required | Notes | |
|---|---|---|---|
latitude, longitude | Yes | ||
models | Yes* | Exactly one model per request | |
hourly / daily / current | No** | Same variables as weather_forecast |
\`metno_forecast` can omit `models` to use the default Met.no model. \\*At least one variable group required.
Multi-model comparison: Make parallel tool calls, one per model.
Model key examples:
| Tool | Example model keys | |
|---|---|---|
ecmwf_forecast | ecmwf_ifs, ecmwf_ifs04, ecmwf_ifs025, ecmwf_aifs025, ecmwf_aifs025_single, ecmwf_ifs_europe_ensemble_mean, ecmwf_aifs_europe_ensemble_mean, best_match | |
dwd_icon_forecast | dwd_icon_seamless, dwd_icon_global, dwd_icon_eu, dwd_icon_d2 | |
gfs_forecast | ncep_gfs_global, ncep_gfs_seamless, ncep_hrrr_conus | |
meteofrance_forecast | meteofrance_seamless, meteofrance_arome_france, meteofrance_arpege_europe | |
jma_forecast | jma_seamless, jma_msm, jma_gsm | |
metno_forecast | metno_nordic, metno_seamless | |
gem_forecast | gem_global, gem_regional, gem_seamless |
ECMWF warning: model IDs with an underscore before the resolution digits (ecmwf_ifs_025, ecmwf_aifs_025_single) and ecmwf_ifs_hres_9km are NOT valid on ecmwf_forecast. Use ecmwf_ifs025 / ecmwf_aifs025_single / ecmwf_ifs.
ensemble_forecast
| Parameter | Required | Notes | |
|---|---|---|---|
latitude, longitude | Yes | ||
models | Yes | One ensemble model (e.g. icon_seamless_eps, ncep_gefs_seamless, ecmwf_ifs025_ensemble), or an array of models to compare several ensemble systems in one call. The ensemble API has no default model: omitting it fails | |
hourly | No* | Same variables as weather_forecast | |
forecast_days | No | 0–36, default 7 | |
past_days / past_hours | No | Recent history, day or hour granularity | |
forecast_hours | No | Hour-granularity alternative to forecast_days | |
start_date / end_date | No | YYYY-MM-DD alternative to forecast_days | |
temporal_resolution | No | native (default), hourly, hourly_3, or hourly_6 | |
cell_selection | No | land, sea, or nearest grid cell preference |
Response format: Each variable is returned as one array per ensemble member, suffixed with the model name when models contains more than one entry:
{"hourly": {"time": ["2024-01-01T00:00", "2024-01-01T01:00", "..."],"temperature_2m_member01": [2.1, 2.3, "..."],"temperature_2m_member02": [1.8, 2.0, "..."],"temperature_2m_member03": [2.4, 2.6, "..."]}}
To derive uncertainty ranges, calculate min/max/percentiles across all _memberNN arrays for each timestep.
seasonal_forecast
| Parameter | Required | Notes | |
|---|---|---|---|
latitude, longitude | Yes | ||
hourly | No* | 6-hourly variables: temperature_2m, precipitation, wind_speed_10m, relative_humidity_2m, cloud_cover, pressure_msl, dew_point_2m, sea_surface_temperature, wave_height, soil_moisture_0_to_7cm and other depth buckets | |
daily | No* | temperature_2m_max, temperature_2m_min, temperature_2m_mean, sunrise, sunset, weather_code, dew_point_2m_mean, sea_surface_temperature_mean | |
weekly | No* | Weekly means/anomalies, e.g. temperature_2m_mean, temperature_2m_anomaly, precipitation_anomaly, precipitation_efi | |
monthly | No* | Monthly means/anomalies, e.g. temperature_2m_mean, temperature_2m_anomaly, sea_ice_cover_mean, evapotranspiration_mean | |
models | No | best_match (default), ecmwf_seas5, ecmwf_ec46, or their ensemble-mean variants | |
forecast_days | No | 0–217, default 183 | |
cell_selection | No | land, sea, or nearest grid cell preference |
\*At least one of hourly, daily, weekly, or monthly is required.
Output represents ensemble anomalies relative to climatology, not absolute forecasts.
climate_projection
| Parameter | Required | Notes | |
|---|---|---|---|
latitude, longitude | Yes | ||
start_date | Yes | YYYY-MM-DD (supported range: 1950-01-01 to 2050-12-31) | |
end_date | Yes | YYYY-MM-DD | |
daily | No | One or more of: temperature_2m_max, temperature_2m_min, temperature_2m_mean, precipitation_sum, wind_speed_10m_mean, wind_speed_10m_max, cloud_cover_mean, relative_humidity_2m_mean, shortwave_radiation_sum, soil_moisture_0_to_7cm_mean, pressure_msl_mean | |
models | No | CMIP6 models (array): CMCC_CM2_VHR4, MRI_AGCM3_2_S, EC_Earth3P_HR, MPI_ESM1_2_XR, NICAM16_8S, FGOALS_f3_H, HiRAM_SIT_HR. Omit to use the server default. | |
timezone | No | Use auto for local time | |
cell_selection | No | land, sea, or nearest grid cell preference |
Data note: Dates before the current year represent CMIP6 model simulation output for validation purposes, not observed historical measurements. For real historical weather data, use weather_archive.
Examples
"Get the ECMWF forecast for Bordeaux tomorrow"
geocodingwithname: "Bordeaux"→ coordinatesecmwf_forecastwith coordinates +models: "ecmwf_ifs",daily: ["temperature_2m_max", "temperature_2m_min", "precipitation_sum", "weather_code"],forecast_days: 2,timezone: "auto"
"Compare DWD ICON and GFS forecasts for Berlin this week"
geocodingwithname: "Berlin"→ coordinates- Two parallel calls:
dwd_icon_forecastwithmodels: "dwd_icon_seamless",daily: ["temperature_2m_max", "precipitation_sum"],forecast_days: 7,timezone: "auto"gfs_forecastwithmodels: "ncep_gfs_global",daily: ["temperature_2m_max", "precipitation_sum"],forecast_days: 7,timezone: "auto"
"Show me forecast uncertainty for Paris next week"
geocodingwithname: "Paris"→ coordinatesensemble_forecastwith coordinates +models: "ecmwf_ifs025_ensemble",hourly: ["temperature_2m"],forecast_days: 10
The response will contain temperature_2m_member01, temperature_2m_member02, etc. — calculate spread across members for uncertainty.
"What will the climate be like in Lyon in 2040?"
geocodingwithname: "Lyon"→ coordinatesclimate_projectionwith coordinates +start_date: "2040-01-01",end_date: "2040-12-31",models: ["MRI_AGCM3_2_S"],daily: ["temperature_2m_max", "temperature_2m_min", "precipitation_sum"]
Best Practices
- Don't use regional model tools outside their geographic coverage —
dwd_icon_forecastfor Asia will return empty or incorrect data. - `ecmwf_forecast` accepts only the ECMWF model IDs listed above (IFS, AIFS and the Europe ensemble means). Any other key causes HTTP 400.
- Ensemble output is member arrays, not scalar values — process all
_memberNNkeys to derive uncertainty ranges. - Climate data before the current year is CMIP6 simulation, not observed data — use
weather_archivefor real historical measurements. - `seasonal_forecast` outputs anomalies, not absolute values — it answers "warmer than usual?" not "what temperature exactly?".
- Geocode first if you only have a city name.