
Open Meteo Mcp Server
Wraps Open-Meteo's free weather APIs with eight MCP tools covering geocoding, 16-day forecasts, ERA5 historical climate back to 1940, marine conditions, CAMS air quality, and Copernicus terrain elevation. You geocode a place name to coordinates, then pull hourly or daily variables like temperature, precipitation, wind, wave height, or PM2.5. Historical queries over large date ranges spill to DataCanvas with SQL query tools for analysis. Supports both stdio and streamable HTTP transports, with a public hosted instance at open-meteo.caseyjhand.com. Useful when you need global weather context without API keys, or want to compare forecast models against reanalysis data in a single schema.
- GitHub stars
- 13
- tools
- 11
- transport
- STDIO, HTTP
- env vars
- 9
- last updated
- Nov 10, 2026
Install
From registry metadata$ npx add-mcp https://open-meteo.caseyjhand.com/mcp --name open-meteoRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http open-meteo https://open-meteo.caseyjhand.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 11 toolsVerified live against the running server on Nov 6, 2026.
openmeteo_search_locationsResolve a place name to ranked coordinate matches with country, region, elevation, timezone, and population. Required prerequisite for name-based queries — all weather tools take latitude/longitude, not place names. Search by a bare place name (city, region, or landmark); neve...4 params
Resolve a place name to ranked coordinate matches with country, region, elevation, timezone, and population. Required prerequisite for name-based queries — all weather tools take latitude/longitude, not place names. Search by a bare place name (city, region, or landmark); neve...
countintegercountrystringlanguagestringname*stringopenmeteo_get_elevationTerrain elevation from the Copernicus Digital Elevation Model (~90m resolution) for one or more coordinate pairs. Accepts up to 1,000 pairs and samples the first 100 in one upstream request; when more were submitted, unprocessed_count says how many remain and next_offset is wh...2 params
Terrain elevation from the Copernicus Digital Elevation Model (~90m resolution) for one or more coordinate pairs. Accepts up to 1,000 pairs and samples the first 100 in one upstream request; when more were submitted, unprocessed_count says how many remain and next_offset is wh...
latitudes*arraylongitudes*arrayopenmeteo_get_forecastWeather forecast for coordinates: hourly and/or daily variables for up to 16 days ahead, with optional past_days (up to 92) for recent history. Use past_days instead of openmeteo_get_historical for dates within the last week, since the archive’s ERA5 components lag by about a...13 params
Weather forecast for coordinates: hourly and/or daily variables for up to 16 days ahead, with optional past_days (up to 92) for recent history. Use past_days instead of openmeteo_get_historical for dates within the last week, since the archive’s ERA5 components lag by about a...
canvas_idstringcurrent_variablesarraydaily_variablesarrayforecast_daysintegerhourly_variablesarraylatitude*numberlongitude*numbermodelsarraypast_daysintegerprecipitation_unitstringmm · inchdefault: mmtemperature_unitstringcelsius · fahrenheitdefault: celsiustimezonestringwind_speed_unitstringkmh · mph · ms · kndefault: kmhopenmeteo_get_historicalHistorical weather from the Open-Meteo reanalysis archive (1940–present). Requires start_date and end_date (ISO 8601 date, e.g., "2024-07-01"). With models omitted the archive answers from Best Match, which blends IFS HRES, ERA5, and ERA5-Land seamlessly — so the source varies...12 params
Historical weather from the Open-Meteo reanalysis archive (1940–present). Requires start_date and end_date (ISO 8601 date, e.g., "2024-07-01"). With models omitted the archive answers from Best Match, which blends IFS HRES, ERA5, and ERA5-Land seamlessly — so the source varies...
canvas_idstringdaily_variablesarrayend_date*stringhourly_variablesarraylatitude*numberlongitude*numbermodelsarrayprecipitation_unitstringmm · inchdefault: mmstart_date*stringtemperature_unitstringcelsius · fahrenheitdefault: celsiustimezonestringwind_speed_unitstringkmh · mph · ms · kndefault: kmhopenmeteo_get_marineMarine wave and ocean conditions for a coastal or ocean coordinate: wave height, wave period, wave direction, wind-wave height, swell height, sea-surface temperature. Forecast horizon up to 8 days, with optional past_days (up to 92) for recent history — or start_date and end_d...14 params
Marine wave and ocean conditions for a coastal or ocean coordinate: wave height, wave period, wave direction, wind-wave height, swell height, sea-surface temperature. Forecast horizon up to 8 days, with optional past_days (up to 92) for recent history — or start_date and end_d...
canvas_idstringcurrent_variablesarraydaily_variablesarrayend_datestringforecast_daysintegerhourly_variablesarraylatitude*numberlength_unitstringmetric · imperialdefault: metriclongitude*numberpast_daysintegerstart_datestringtemperature_unitstringcelsius · fahrenheitdefault: celsiustimezonestringwind_speed_unitstringkmh · mph · ms · kndefault: kmhopenmeteo_get_air_qualityModeled CAMS (Copernicus Atmosphere Monitoring Service) air quality: PM2.5, PM10, nitrogen dioxide, sulphur dioxide, ozone, carbon monoxide, dust, pollen, and European/US AQI indices. This is modeled grid data, not measured station readings — for measured data, use openaq-mcp-...10 params
Modeled CAMS (Copernicus Atmosphere Monitoring Service) air quality: PM2.5, PM10, nitrogen dioxide, sulphur dioxide, ozone, carbon monoxide, dust, pollen, and European/US AQI indices. This is modeled grid data, not measured station readings — for measured data, use openaq-mcp-...
canvas_idstringcurrent_variablesarrayend_datestringforecast_daysintegerhourly_variablesarraylatitude*numberlongitude*numberpast_daysintegerstart_datestringtimezonestringopenmeteo_get_ensembleProbabilistic ensemble weather forecast — up to 64 ensemble members, up to 35 days ahead with optional past_days (0–92). Most models end within 16 days; a model's columns are null past its horizon, and the response notice names where its data ends. Each member's values appear...12 params
Probabilistic ensemble weather forecast — up to 64 ensemble members, up to 35 days ahead with optional past_days (0–92). Most models end within 16 days; a model's columns are null past its horizon, and the response notice names where its data ends. Each member's values appear...
canvas_idstringdaily_variablesarrayforecast_daysintegerhourly_variablesarraylatitude*numberlongitude*numbermodelsstringpast_daysintegerprecipitation_unitstringmm · inchdefault: mmtemperature_unitstringcelsius · fahrenheitdefault: celsiustimezonestringwind_speed_unitstringkmh · mph · ms · kndefault: kmhopenmeteo_get_floodGloFAS (Global Flood Awareness System) daily river discharge (m³/s) from the GloFAS 0.05° grid cell nearest the given coordinates — no river ID needed. The response's latitude and longitude name that cell. It is not reliably on the river intended: a point near a confluence, a...9 params
GloFAS (Global Flood Awareness System) daily river discharge (m³/s) from the GloFAS 0.05° grid cell nearest the given coordinates — no river ID needed. The response's latitude and longitude name that cell. It is not reliably on the river intended: a point near a confluence, a...
canvas_idstringdaily_variablesarrayend_datestringforecast_daysintegerlatitude*numberlongitude*numbermodelsarraystart_datestringtimezonestringopenmeteo_get_climateLong-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 (the observed archive, what happen...11 params
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 (the observed archive, what happen...
canvas_idstringdaily_variablesarrayend_date*stringlatitude*numberlongitude*numbermodelsarrayprecipitation_unitstringmm · inchdefault: mmstart_date*stringtemperature_unitstringcelsius · fahrenheitdefault: celsiustimezonestringwind_speed_unitstringkmh · mph · ms · kndefault: kmhopenmeteo_dataframe_queryRun a read-only SQL SELECT against tables staged on a DataCanvas by openmeteo_get_forecast, openmeteo_get_historical, openmeteo_get_marine, openmeteo_get_air_quality, openmeteo_get_ensemble, openmeteo_get_flood, or openmeteo_get_climate. Pass the canvas_id returned when any of...2 params
Run a read-only SQL SELECT against tables staged on a DataCanvas by openmeteo_get_forecast, openmeteo_get_historical, openmeteo_get_marine, openmeteo_get_air_quality, openmeteo_get_ensemble, openmeteo_get_flood, or openmeteo_get_climate. Pass the canvas_id returned when any of...
canvas_id*stringsql*stringopenmeteo_dataframe_describeList the tables and their columns on a DataCanvas staged by openmeteo_get_forecast, openmeteo_get_historical, openmeteo_get_marine, openmeteo_get_air_quality, openmeteo_get_ensemble, openmeteo_get_flood, or openmeteo_get_climate. Call this first to discover table names before...1 params
List the tables and their columns on a DataCanvas staged by openmeteo_get_forecast, openmeteo_get_historical, openmeteo_get_marine, openmeteo_get_air_quality, openmeteo_get_ensemble, openmeteo_get_flood, or openmeteo_get_climate. Call this first to discover table names before...
canvas_id*stringSponsors
Configuration
MCP_LOG_LEVELdefault: infoSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
CANVAS_PROVIDER_TYPEdefault: duckdbCanvas engine for openmeteo_get_forecast / openmeteo_get_historical / openmeteo_get_marine / openmeteo_get_air_quality / openmeteo_get_ensemble / openmeteo_get_flood / openmeteo_get_climate spillover. Default 'duckdb' enables DataCanvas and the dataframe_query / dataframe_describ
OPENMETEO_DATAFRAME_DROP_ENABLEDdefault: falseSet to 'true' to make openmeteo_dataframe_drop callable — it removes one staged table or view from a DataCanvas. Default 'false' lists the tool as disabled. Has no effect unless CANVAS_PROVIDER_TYPE=duckdb.
OPENMETEO_CLAMP_LIMITSdefault: trueDefault 'true': an openmeteo_dataframe_query limit above the per-call cap (10,000 rows, or CANVAS_DEFAULT_ROW_LIMIT when that is lower) returns the cap and a notice saying so. Set to 'false' to advertise the cap as the limit maximum and reject a larger value instead.
MCP_TRANSPORT_TYPEdefault: httpSelects the HTTP transport.
MCP_HTTP_HOSTdefault: 127.0.0.1The hostname for the HTTP server.
MCP_HTTP_PORTdefault: 3010The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHdefault: /mcpThe endpoint path for the MCP server.
MCP_AUTH_MODEdefault: noneAuthentication mode to use: 'none', 'jwt', or 'oauth'.
Readme
@cyanheads/open-meteo-mcp-server
Geocode places, fetch global weather forecasts, historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.
Details
- Repository
- github.com/cyanheads/open-meteo-mcp-server
- Package
@cyanheads/open-meteo-mcp-server- Transport
- STDIO, HTTP
- Registry
- MCP registry, active
- Resources
- 1
- Tools verified
- Nov 6, 2026
More from cyanheads
- Pubchem Mcp Server13
- Gutenberg Mcp Server6
- Libofcongress Mcp Server6
- Orcid Mcp Server6
- Protein Mcp Server6
- Wikipedia Mcp Server6
- Cdc Health Mcp Server5
- Usaspending Mcp Server5
- Openstreetmap Mcp Server9
- Biorxiv Mcp Server4
- Brapi Mcp Server4
- Courtlistener Mcp Server4
- Crossref Mcp Server4
- Internet Archive Mcp Server4
- Met Museum Mcp Server4
- Noaa Spaceweather Mcp Server4
- Openfda Mcp Server4
- Openlibrary Mcp Server4
- Un Comtrade Mcp Server4
- Aviation Weather Mcp Server3
- Devops Status Mcp Server3
- Earthquake Mcp Server3
- Eia Energy Mcp Server3
- Ensembl Mcp Server3