# open-meteo-mcp-server [Health: Active]

**Category:** 🌳 Environment & Nature  
**Repository:** https://github.com/cmer81/open-meteo-mcp  
**GitHub Stars:** 73  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/open-meteo-mcp-server-2

## Description
Model Context Protocol server for Open-Meteo weather APIs

## Tools
Capabilities this server exposes over MCP:

- **weather_forecast** — Get weather forecast data for coordinates using Open-Meteo API. Supports hourly and daily data with various weather variables. When no `models` parameter is provided, the API automatically selects the best model for the given location (recommended). Only one model per request is supported — for multi-model comparison, use provider-specific tools with parallel calls.
- **weather_archive** — Get historical weather data from ERA5 reanalysis (1940-present) for specific coordinates and date range.
- **air_quality** — Get air quality forecast data including PM2.5, PM10, ozone, nitrogen dioxide, pollen, European/US AQI indices, UV index and other pollutants.
- **marine_weather** — Get marine weather forecast including wave height, wave period, wave direction and sea surface temperature.
- **elevation** — Get elevation data for given coordinates using digital elevation models. Supports batch lookups: pass arrays of the same length for latitude and longitude to query multiple points in one call.
- **flood_forecast** — Get river discharge and flood forecasts from GloFAS (Global Flood Awareness System).
- **geocoding** — Search for locations worldwide by place name or postal code. Returns geographic coordinates (latitude and longitude) and detailed location information. Use this tool when you need to convert a location name (e.g., "Paris", "New York") into precise coordinates (latitude/longitude) that are required by other tools. This is essential when you have a location name but need coordinates for data fetching tools.
- **dwd_icon_forecast** — Get weather forecast from German DWD ICON model. IMPORTANT: Specify exactly one DWD model in the `models` parameter (e.g., "dwd_icon_global") — only one model per request is supported. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **gfs_forecast** — Get weather forecast from US NOAA GFS model. IMPORTANT: Specify exactly one GFS model in the `models` parameter (e.g., "ncep_gfs_global") — only one model per request is supported. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **meteofrance_forecast** — Get weather forecast from French Météo-France models. IMPORTANT: Specify exactly one Météo-France model in the `models` parameter (e.g., "meteofrance_arome_france" or "meteofrance_arpege_europe") — only one model per request is supported. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **ecmwf_forecast** — Get weather forecast from ECMWF models via the dedicated /v1/ecmwf endpoint. IMPORTANT: Specify exactly one model in the `models` parameter — only one model per request is supported. Valid model IDs: "ecmwf_ifs" (IFS HRES 9 km), "ecmwf_ifs04" (IFS open-data 0.4°), "ecmwf_ifs025" (IFS open-data 0.25°, the default), "ecmwf_aifs025" and "ecmwf_aifs025_single" (AIFS machine-learning model, ensemble mean and single run), "ecmwf_ifs_europe_ensemble_mean" and "ecmwf_aifs_europe_ensemble_mean" (Europe-only ensemble means), "best_match". Model IDs with an underscore before the resolution digits (e.g. "ecmwf_ifs_025") are not valid. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **jma_forecast** — Get weather forecast from Japan Meteorological Agency (JMA) models. IMPORTANT: Specify exactly one JMA model in the `models` parameter (e.g., "jma_msm" or "jma_gsm") — only one model per request is supported. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **metno_forecast** — Get weather forecast from Norwegian Meteorological Institute models. The `models` parameter is optional for this tool — omit it to use the default Met.no model. If specified, use canonical names such as "metno_nordic" or "metno_seamless". Only one model per request is supported. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **gem_forecast** — Get weather forecast from Canadian Meteorological Centre (GEM) models. IMPORTANT: Specify exactly one GEM model in the `models` parameter (e.g., "gem_global" or "gem_regional") — only one model per request is supported. For multi-model comparison, make one parallel tool call per model using the appropriate provider-specific tool.
- **seasonal_forecast** — Get long-range seasonal forecasts for temperature and precipitation up to ~7 months ahead.
- **climate_projection** — Get climate change projections from CMIP6 models for different warming scenarios.
- **ensemble_forecast** — Get ensemble forecasts showing forecast uncertainty with multiple model runs. `models` is required: the ensemble API has no default model (e.g. "icon_seamless_eps", "ncep_gefs_seamless", "ecmwf_ifs025_ensemble").

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation

## What open-meteo-mcp-server does

open-meteo-mcp-server exposes Open-Meteo services through the Model Context Protocol. Its tools cover short-range and extended weather forecasting, historical weather from ERA5, air pollution, marine conditions, river discharge, elevation, geocoding, seasonal forecasting, ensemble uncertainty, and climate projections.

The general `weather_forecast` tool can select the best available model for a location and returns hourly or daily variables. Separate tools target named forecasting providers, including DWD ICON, NOAA GFS, Météo-France, ECMWF, JMA, MET Norway, and Environment Canada GEM. These provider-specific tools are useful when a request requires a particular model or when an agent wants to compare models through parallel calls.

## How it works

Every data query uses coordinates. An agent can first call `geocoding` with a place name or postal code to obtain latitude and longitude, then pass those coordinates to another tool. Forecast data can cover up to 16 days, while `weather_archive` provides ERA5 history from 1940 onward. Seasonal forecasts extend to roughly seven months, and climate projections use CMIP6 scenarios covering 1950 to 2050.

The server supports local stdio operation and stateless Streamable HTTP for remote deployments. Local clients can launch it with `npx`, while HTTP deployments expose the MCP endpoint at `/mcp`. HTTP requests can use bearer-token or API-key authentication, rate limits, and origin checks. Responses are compact JSON and may be shortened when they exceed 25,000 characters; aligned time-series arrays receive a truncation marker.

## Setup and configuration

Node.js 22 or later is required. A local stdio launch can use:

```bash
npx -y -p open-meteo-mcp-server open-meteo-mcp-server
```

The package can also be installed globally with npm. For HTTP mode, set `TRANSPORT=http`; `HOST`, `PORT`, and `API_KEY` control binding, the listening port, and request authentication. The default host is local-only, while remote access requires binding to an appropriate interface and should use an API key.

Open-Meteo API endpoints can be redirected individually through configuration variables, allowing deployments to use self-hosted Open-Meteo instances. An in-memory cache stores successful responses with endpoint-specific expiration periods and can be disabled by setting its maximum size to zero.

## Tools and capabilities

- Retrieve general hourly and daily forecasts with `weather_forecast`.
- Query ERA5 history with `weather_archive`.
- Fetch PM2.5, PM10, ozone, nitrogen dioxide, pollen, AQI, and UV data.
- Retrieve waves, swell, sea temperature, river discharge, and elevation.
- Resolve place names and postal codes to coordinates.
- Request provider-specific, seasonal, ensemble, and CMIP6 climate data.

Most model-specific forecast calls accept only one model. Ensemble forecasts require an explicit model because that endpoint has no default. Elevation supports batch coordinate lookups when latitude and longitude arrays have matching lengths.

## Limitations and notes

Open-Meteo is free for non-commercial use and does not require an API key for its public services. Times are returned in GMT unless a timezone is selected, and `timezone: "auto"` uses the location's local time. A `null` value in a series means that the model has no value for that timestamp, not that the measurement is zero.

For multi-model comparisons, make separate parallel calls to the relevant provider-specific tools. Narrowing the requested date range or variables helps avoid response truncation. HTTP mode is stateless: calls do not retain session state, and no tool keeps state between requests.

_Full upstream README: https://allmcps.com/mcp/open-meteo-mcp-server-2/readme_

