
Open Meteo
STDIOComprehensive MCP server providing access to Open-Meteo weather APIs for forecasts and climate data
Comprehensive MCP server providing access to Open-Meteo weather APIs for forecasts and climate data
A comprehensive Model Context Protocol (MCP) server that provides access to Open-Meteo weather APIs for use with Large Language Models.
This MCP server provides complete access to Open-Meteo APIs, including:
weather_forecast
) - 7-day forecasts with hourly and daily resolutionweather_archive
) - Historical ERA5 data from 1940 to presentair_quality
) - PM2.5, PM10, ozone, nitrogen dioxide and other pollutantsmarine_weather
) - Wave height, wave period, wave direction and sea surface temperatureelevation
) - Digital elevation model data for given coordinatesdwd_icon_forecast
) - German weather service high-resolution model for Europegfs_forecast
) - US weather service global model with high-resolution North America datameteofrance_forecast
) - French weather service AROME and ARPEGE modelsecmwf_forecast
) - European Centre for Medium-Range Weather Forecastsjma_forecast
) - Japan Meteorological Agency high-resolution model for Asiametno_forecast
) - Norwegian weather service for Nordic countriesgem_forecast
) - Canadian weather service modelflood_forecast
) - River discharge and flood forecasts from GloFAS (Global Flood Awareness System)seasonal_forecast
) - Long-range forecasts up to 9 months aheadclimate_projection
) - CMIP6 climate change projections for different warming scenariosensemble_forecast
) - Multiple model runs showing forecast uncertaintyNo installation required! The server will run directly via npx.
npm install -g open-meteo-mcp-server
# Clone the repository git clone https://github.com/cmer81/open-meteo-mcp.git cd open-meteo-mcp # Install dependencies npm install # Build the project npm run build
Add the following configuration to your Claude Desktop config file:
{ "mcpServers": { "open-meteo": { "command": "npx", "args": ["open-meteo-mcp-server"] } } }
{ "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" } } } }
If you're developing locally or installed from source:
{ "mcpServers": { "open-meteo": { "command": "node", "args": ["/path/to/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" } } } }
If you're using your own Open-Meteo instance:
{ "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" } } } }
All environment variables are optional and have sensible defaults:
OPEN_METEO_API_URL
- Base URL for Open-Meteo forecast API (default: https://api.open-meteo.com)OPEN_METEO_AIR_QUALITY_API_URL
- Air quality API URL (default: https://air-quality-api.open-meteo.com)OPEN_METEO_MARINE_API_URL
- Marine weather API URL (default: https://marine-api.open-meteo.com)OPEN_METEO_ARCHIVE_API_URL
- Historical data API URL (default: https://archive-api.open-meteo.com)OPEN_METEO_SEASONAL_API_URL
- Seasonal forecast API URL (default: https://seasonal-api.open-meteo.com)OPEN_METEO_ENSEMBLE_API_URL
- Ensemble forecast API URL (default: https://ensemble-api.open-meteo.com)Can you get me the weather forecast for Paris (48.8566, 2.3522) with temperature, humidity, and precipitation for the next 3 days?
What were the temperatures in London during January 2023?
What's the current air quality in Beijing with PM2.5 and ozone levels?
Get me the wave height and sea surface temperature for coordinates 45.0, -125.0 for the next 5 days.
Check the river discharge forecast for coordinates 52.5, 13.4 for the next 30 days.
Show me temperature projections for New York from 2050 to 2070 using CMIP6 models.
latitude
: Latitude in WGS84 coordinate system (-90 to 90)longitude
: Longitude in WGS84 coordinate system (-180 to 180)temperature_2m
: Temperature at 2 metersrelative_humidity_2m
: Relative humidityprecipitation
: Precipitationwind_speed_10m
: Wind speed at 10 meterswind_direction_10m
: Wind directionpressure_msl
: Mean sea level pressurecloud_cover
: Cloud cover percentageweather_code
: Weather condition codevisibility
: Visibilityuv_index
: UV indextemperature_2m_max/min
: Maximum/minimum temperaturesprecipitation_sum
: Total precipitationwind_speed_10m_max
: Maximum wind speedsunrise/sunset
: Sunrise and sunset timesweather_code
: Weather condition codeuv_index_max
: Maximum UV indexpm10
: PM10 particlespm2_5
: PM2.5 particlescarbon_monoxide
: Carbon monoxidenitrogen_dioxide
: Nitrogen dioxideozone
: Ozonesulphur_dioxide
: Sulfur dioxideammonia
: Ammoniadust
: Dust particleswave_height
: Wave heightwave_direction
: Wave directionwave_period
: Wave periodwind_wave_height
: Wind wave heightswell_wave_height
: Swell wave heightsea_surface_temperature
: Sea surface temperaturetemperature_unit
: celsius
, fahrenheit
wind_speed_unit
: kmh
, ms
, mph
, kn
precipitation_unit
: mm
, inch
timezone
: Europe/Paris
, America/New_York
, etc.forecast_days
: Number of forecast days (varies by API)past_days
: Include past days datastart_date
/ end_date
: Date range for historical data (YYYY-MM-DD format)# Development with auto-reload npm run dev # Build TypeScript npm run build # Start production server npm start # Run tests npm test # Type checking npm run typecheck # Linting npm run lint
src/
├── index.ts # MCP server entry point
├── client.ts # HTTP client for Open-Meteo API
├── tools.ts # MCP tool definitions
└── types.ts # Zod validation schemas
This server provides access to all major Open-Meteo endpoints:
The server provides comprehensive error handling with detailed error messages for:
For detailed API documentation, refer to the openapi.yml
file and the Open-Meteo API documentation.
Contributions are welcome! Please feel free to submit a Pull Request.
git clone https://github.com/your-username/open-meteo-mcp.git
npm install
git checkout -b feature/amazing-feature
npm test
git commit -m 'Add amazing feature'
git push origin feature/amazing-feature
This project uses automated releases via GitHub Actions. To create a new release:
# For a patch release (1.0.0 -> 1.0.1) npm run release:patch # For a minor release (1.0.0 -> 1.1.0) npm run release:minor # For a major release (1.0.0 -> 2.0.0) npm run release:major
The GitHub Action will automatically:
MIT