openmeteo_get_climate
ActiveTool of io.github.cyanheads/open-meteo-mcp-server
Long-range climate projections from bias-corrected daily CMIP6 models, covering 1950-01-01 to 2050-12-31 at any coordinate. Answers "what will conditions look like through 2050?" — the future-projection counterpart to openmeteo_get_historical (ERA5, what happened). Daily resolution only. Available models: "CMCC_CM2_VHR4", "FGOALS_f3_H", "HiRAM_SIT_HR", "MRI_AGCM3_2_S", "EC_Earth3P_HR", "MPI_ESM1_2_XR", "NICAM16_8S". With 2+ models each variable appears once per model with the model name as suffix (e.g. temperature_2m_max_CMCC_CM2_VHR4); a single or omitted model returns plain variable names. Not all models carry all variables — missing combinations return null. Multi-decade daily pulls across several models produce thousands of records and spill to DataCanvas for SQL querying when canvas is enabled.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"latitude",
"longitude",
"start_date",
"end_date",
"daily_variables"
],
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 7,
"description": "CMIP6 models to include: \"CMCC_CM2_VHR4\", \"FGOALS_f3_H\", \"HiRAM_SIT_HR\", \"MRI_AGCM3_2_S\", \"EC_Earth3P_HR\", \"MPI_ESM1_2_XR\", \"NICAM16_8S\". With 2+ models each variable column is suffixed with the model name (e.g. temperature_2m_max_MRI_AGCM3_2_S). Omit to use the API default (a single model, unsuffixed columns)."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date (YYYY-MM-DD, inclusive, max 2050-12-31). Must be on or after start_date."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in decimal degrees. Use openmeteo_geocode to resolve a place name to coordinates."
},
"timezone": {
"type": "string",
"default": "auto",
"description": "IANA timezone or \"auto\". Default \"auto\"."
},
"canvas_id": {
"type": "string",
"description": "DataCanvas token for multi-decade or multi-model queries. When a query exceeds ~500 records, results spill to this canvas for SQL querying. Omit to create a fresh canvas."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in decimal degrees."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date (YYYY-MM-DD, e.g., \"2049-01-01\"). CMIP6 projections cover 1950-01-01 to 2050-12-31."
},
"daily_variables": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"description": "Daily climate variables to fetch (e.g., [\"temperature_2m_max\", \"temperature_2m_min\", \"precipitation_sum\", \"wind_speed_10m_mean\", \"shortwave_radiation_sum\"]). Required — the Climate API is daily-only."
},
"wind_speed_unit": {
"enum": [
"kmh",
"mph",
"ms",
"kn"
],
"type": "string",
"default": "kmh",
"description": "Wind speed unit. Default \"kmh\"."
},
"temperature_unit": {
"enum": [
"celsius",
"fahrenheit"
],
"type": "string",
"default": "celsius",
"description": "Temperature unit. Default \"celsius\"."
},
"precipitation_unit": {
"enum": [
"mm",
"inch"
],
"type": "string",
"default": "mm",
"description": "Precipitation unit. Default \"mm\"."
}
}
}Parent server
io.github.cyanheads/open-meteo-mcp-server
https://github.com/cyanheads/open-meteo-mcp-server
1/7 registries