Skip to main content
Glama
Kennexcorp

Weather MCP Server

by Kennexcorp
README.md
# 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

```bash
docker build -t weather-mcp .
```

### 2. Configure Claude Desktop

Add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "weather": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "weather-mcp"
      ]
    }
  }
}
```

## Development

To test your changes during development, rebuild and run the container manually:

```bash
# 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:

```bash
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_alerts", "arguments": {"state": "TX"}}}' | docker run -i --rm weather-mcp
```

## Technologies

-   **[mcp](https://github.com/modelcontextprotocol/python-sdk)**: The official Python SDK for the Model Context Protocol.
-   **[httpx](https://www.python-httpx.org/)**: A next-generation HTTP client for Python.
-   **[uv](https://github.com/astral-sh/uv)**: An extremely fast Python package installer and resolver.