An MCP server that exposes US weather data from the National Weather Service (NWS) API. Built with FastMCP and httpx.
- Python 3.13+
- uv (recommended) or another package manager
uv syncOr with pip:
python -m venv .venv
source .venv/bin/activate
pip install -e .The server uses stdio transport (standard for local MCP clients):
uv run weather.pyOr:
python weather.py| Tool | Arguments | Description |
|---|---|---|
get_alerts |
state (two-letter US state code, e.g. CA, NY) |
Active weather alerts for that state |
get_forecast |
latitude, longitude |
Forecast for the next 5 periods at that location |
Both tools call https://api.weather.gov and return human-readable text.
Add the server to your MCP client config. Example for Claude Desktop / Cursor:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/weather", "run", "weather.py"]
}
}
}Replace /absolute/path/to/weather with this project’s path. You can also point command at your Python interpreter and pass weather.py as the only arg.
Call the tools directly (no MCP client):
python test_direct.pyOther scripts in the repo exercise MCP stdio / JSON-RPC flows (test_mcp.py, test_mcp_simple.py, test_mcp_proper.py, test_mcp_integration.py, test_direct_io.py).
weather.py # FastMCP server and NWS tools
main.py # Placeholder entrypoint
pyproject.toml
- Data is US-only (NWS coverage).
- Logs go to stderr so they do not interfere with stdio MCP messages.
- Forecasts are limited to the next 5 forecast periods.