Weather MCP Server
A Model Context Protocol (MCP) server that provides real-time weather alerts and forecasts using the National Weather Service (NWS) API. This server is built with Python and fastmcp, and is designed to integrate seamlessly with Claude Desktop.
Features
This server exposes two main tools:
get_alerts(state: str): Retrieves active weather alerts for a specific US state (e.g., "TX", "CA").- Returns a list of alerts including event type, severity, description, and instructions.
get_forecast(latitude: float, longitude: float): Fetches the weather forecast for a given location.- Automatically resolves the NWS grid point for the coordinates.
- Returns a detailed forecast including temperature, wind speed, and detailed descriptions for upcoming periods.
Prerequisites
- Docker (required)
Installation & Usage
1. Build the Docker Image
docker build -t weather-mcp .
2. Configure Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"weather": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"weather-mcp"
]
}
}
}
Development
To test your changes during development, rebuild and run the container manually:
# Rebuild the image
docker build -t weather-mcp .
# Run the container (interactive mode to test stdin/stdout)
docker run -i --rm weather-mcp
You can then paste JSON-RPC messages (if you know them) or simply ensure the container starts without errors.
To verify a specific tool execution (e.g., getting alerts), you can pipe a request into the container:
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_alerts", "arguments": {"state": "TX"}}}' | docker run -i --rm weather-mcp












