open-meteo-mcp-server — Claude Code MCP server: install and use
Connects AI agents to Open-Meteo forecasts, historical climate data since 1940, and marine conditions. Works over HTTP or npx without any API key.
claude mcp add --transport http open-meteo-mcp-server https://open-meteo.caseyjhand.com/mcpWhat open-meteo-mcp-server does
This MCP server exposes 12 specialized tools that interface with Open-Meteo endpoints. It handles place geocoding with timezone detection, fetches forecasts up to 16 days ahead, and pulls historical climate records spanning back to 1940. You also get access to ocean waves, air quality indexes, flood discharges, and terrain elevations.
Results can be staged on a DataCanvas instance for querying with read-only SQL statements. When querying weather forecasts across several weather models, the response appends model suffixes to individual data columns.
You do not need an account or token to run queries. Keep in mind that reanalysis sets like ERA5 trail behind real time by roughly five days. For recent dates within the past week, pass past_days to the forecast endpoint rather than searching the historical archive.
What it helps with
- Geocode city names into coordinates and timezone data
- Retrieve multi-day weather predictions across various forecast models
- Query historical climate measurements dating back to 1940
- Inspect wave conditions, air pollutant indexes, and river levels
Example prompts for the agent
- Look up the coordinates for Tokyo and get a 7-day temperature forecast.
- Compare tomorrow's hourly precipitation between GFS and ICON for London.
- Check historical rainfall in Madrid for August 1995.
How to install open-meteo-mcp-server
1Platform CLI: remote server
claude mcp add --transport http open-meteo-mcp-server https://open-meteo.caseyjhand.com/mcp2Platform CLI
claude mcp add --env MCP_LOG_LEVEL=<MCP_LOG_LEVEL> --env CANVAS_PROVIDER_TYPE=<CANVAS_PROVIDER_TYPE> --env OPENMETEO_DATAFRAME_DROP_ENABLED=<OPENMETEO_DATAFRAME_DROP_ENABLED> --env MCP_TRANSPORT_TYPE=<MCP_TRANSPORT_TYPE> --env MCP_HTTP_HOST=<MCP_HTTP_HOST> --transport stdio open-meteo-mcp-server -- npx -y @cyanheads/open-meteo-mcp-serverReplace <…> with your own values. 3 more environment variables are in the server README
1Platform CLI: remote server
codex mcp add open-meteo-mcp-server --url https://open-meteo.caseyjhand.com/mcp2Platform CLI
codex mcp add open-meteo-mcp-server --env MCP_LOG_LEVEL=<MCP_LOG_LEVEL> --env CANVAS_PROVIDER_TYPE=<CANVAS_PROVIDER_TYPE> --env OPENMETEO_DATAFRAME_DROP_ENABLED=<OPENMETEO_DATAFRAME_DROP_ENABLED> --env MCP_TRANSPORT_TYPE=<MCP_TRANSPORT_TYPE> --env MCP_HTTP_HOST=<MCP_HTTP_HOST> -- npx -y @cyanheads/open-meteo-mcp-serverReplace <…> with your own values. 3 more environment variables are in the server README
Config file
{
"mcpServers": {
"open-meteo-mcp-server": {
"url": "https://open-meteo.caseyjhand.com/mcp"
}
}
}{
"mcpServers": {
"open-meteo-mcp-server": {
"command": "npx",
"args": [
"-y",
"@cyanheads/open-meteo-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"CANVAS_PROVIDER_TYPE": "<CANVAS_PROVIDER_TYPE>",
"OPENMETEO_DATAFRAME_DROP_ENABLED": "<OPENMETEO_DATAFRAME_DROP_ENABLED>",
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README
Config file
{
"servers": {
"open-meteo-mcp-server": {
"type": "http",
"url": "https://open-meteo.caseyjhand.com/mcp"
}
}
}{
"servers": {
"open-meteo-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/open-meteo-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"CANVAS_PROVIDER_TYPE": "<CANVAS_PROVIDER_TYPE>",
"OPENMETEO_DATAFRAME_DROP_ENABLED": "<OPENMETEO_DATAFRAME_DROP_ENABLED>",
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README
1Platform CLI: remote server
gemini mcp add -t http open-meteo-mcp-server https://open-meteo.caseyjhand.com/mcp2Platform CLI
gemini mcp add -e MCP_LOG_LEVEL=<MCP_LOG_LEVEL> -e CANVAS_PROVIDER_TYPE=<CANVAS_PROVIDER_TYPE> -e OPENMETEO_DATAFRAME_DROP_ENABLED=<OPENMETEO_DATAFRAME_DROP_ENABLED> -e MCP_TRANSPORT_TYPE=<MCP_TRANSPORT_TYPE> -e MCP_HTTP_HOST=<MCP_HTTP_HOST> open-meteo-mcp-server npx -y @cyanheads/open-meteo-mcp-serverReplace <…> with your own values. 3 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about open-meteo-mcp-server
How do I install open-meteo-mcp-server in Claude Code?
Run claude mcp add --transport http open-meteo-mcp-server https://open-meteo.caseyjhand.com/mcp in your terminal. This immediately connects your environment to the public hosted endpoint.
Is an API key required to use open-meteo-mcp-server?
No API key is needed. The server communicates directly with Open-Meteo public endpoints.
Why does recent historical weather data show a delay?
The ERA5 climate reanalysis lags behind by approximately 5 days. Use the past_days argument in openmeteo_get_forecast instead of calling openmeteo_get_historical for dates from the past week.