Most weather servers stop at current conditions and a daily outlook. Minute-level precipitation and an alerts feed with severity are the two that change what an agent can answer — "will it rain before I leave" and "is there a warning in force" are different questions from "what is the weather like". The HTTP transport carrying the key per request rather than per process is also worth noting if several people share one deployment.
A weather server covering the OpenWeatherMap family of endpoints — observations, several forecast horizons, active alerts, air pollution, and the geocoding needed to turn a place name into the coordinates the rest of the calls want.
- `get-current-weather` for conditions now, and `get-weather-forecast` for five days in three-hour steps
- `get-hourly-forecast` out to 48 hours and `get-daily-forecast` out to 8 days with temperature ranges and astronomical data
- `get-minutely-forecast` for precipitation minute by minute over the next hour
- `get-weather-alerts` for active warnings with severity
- `get-current-air-pollution` for the live index and pollutant readings, `get-air-pollution` for historical and forecast air quality
- `geocode-location` turns a place name into coordinates and `get-location-info` turns coordinates back into a place
- `get-onecall-weather` returns several forecast horizons in a single call
The npm package mcp-openweathermap, version 0.1.3, run over npx; Bun if you build from source. An OpenWeatherMap API key, free to obtain. Over stdio the key goes in OPENWEATHER_API_KEY; over HTTP it travels as a bearer token in the request headers instead and no environment variable is needed. MCP_TRANSPORT switches between stdio and httpStream, with PORT defaulting to 3000 and MCP_ENDPOINT to /stream.
One command plus a key — npx mcp-openweathermap, then supply credentials
