Weather MCP Server logo

Weather MCP Server

by oyzh888

This is a Model Context Protocol (MCP) server that provides weather information using the National Weather Service API. It allows users to retrieve weather alerts and detailed forecasts.

View on GitHub

Last updated: N/A

Weather MCP Server

This is a Model Context Protocol (MCP) server that provides weather information using the National Weather Service API.

Project Structure

weather/
├── mcp-server/           # MCP server implementation
│   └── weather.py       # Main server code
├── pyproject.toml       # Project configuration and dependencies
└── README.md           # This file

Features

  • Get weather alerts for US states
  • Get detailed weather forecasts for specific locations

Prerequisites

  • Python 3.12 or higher
  • uv package manager

Installation

  1. Create and activate a virtual environment:
uv venv
source .venv/bin/activate  # On Unix/macOS
# or
.venv\Scripts\activate  # On Windows
  1. Install dependencies:
uv pip install -e .

Usage

Run the server:

uv run weather-server

The server exposes two tools:

  1. get_alerts(state): Get weather alerts for a US state

    • Example: get_alerts("CA") for California alerts
  2. get_forecast(latitude, longitude): Get weather forecast for a location

    • Example: get_forecast(38.5816, -121.4944) for Sacramento, CA

Configuration

To use this server with Claude for Desktop:

  1. Open ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Add the following configuration:
{
    "mcpServers": {
        "weather": {
            "command": "/Users/zhihaoouyang/.local/bin/uv",
            "args": [
                "--directory",
                "/Users/zhihaoouyang/Desktop/code/weather",
                "run",
                "weather-server"
            ]
        }
    }
}
  1. Restart Claude for Desktop

Note

This server uses the National Weather Service API, which only provides data for locations within the United States.