Weather MCP Server
Weather MCP Server
A demo Model Context Protocol server that gives AI assistants (Claude, Copilot, Cursor, etc.) access to live US weather data via the free National Weather Service API.
Tools exposed
Tool | Description |
| 3-period forecast for any US lat/long |
| Active weather alerts for a US state |
| Hourly forecast for next 12 hours |
No API key required — NWS is completely free.
Local development
1. Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh2. Install dependencies
uv pip install "mcp[cli]>=1.0.0" "httpx>=0.27.0"3. Run with MCP Inspector (for testing)
uv run mcp dev weather_server.pyOpens a browser UI to call your tools manually.
4. Connect to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["/absolute/path/to/weather_server.py"]
}
}
}Restart Claude Desktop. You'll see a 🔨 tools icon in chat.
Deploy to Fly.io
1. Install flyctl
curl -L https://fly.io/install.sh | sh2. Sign up / log in
fly auth signup # or: fly auth login3. Pick a unique app name
Edit fly.toml and change app = "weather-mcp-demo" to something unique.
4. Launch
fly launch --no-deploy # reads fly.toml, provisions the app
fly deploy # builds Docker image and deploysYour server will be live at:
https://<your-app-name>.fly.dev/mcp5. Connect Claude Desktop to the hosted server
{
"mcpServers": {
"weather": {
"url": "https://<your-app-name>.fly.dev/mcp"
}
}
}Useful Fly commands
fly logs # tail live logs
fly status # check machine health
fly deploy # redeploy after code changes
fly scale count 1 # ensure at least 1 machine runningExample prompts to try
"What's the weather forecast for New York City?" → lat: 40.71, lon: -74.00
"Any weather alerts in Texas right now?"
"Give me the hourly forecast for Miami." → lat: 25.77, lon: -80.19