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
- Create and activate a virtual environment:
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
- Install dependencies:
uv pip install -e .
Usage
Run the server:
uv run weather-server
The server exposes two tools:
-
get_alerts(state)
: Get weather alerts for a US state- Example:
get_alerts("CA")
for California alerts
- Example:
-
get_forecast(latitude, longitude)
: Get weather forecast for a location- Example:
get_forecast(38.5816, -121.4944)
for Sacramento, CA
- Example:
Configuration
To use this server with Claude for Desktop:
- Open
~/Library/Application Support/Claude/claude_desktop_config.json
- Add the following configuration:
{
"mcpServers": {
"weather": {
"command": "/Users/zhihaoouyang/.local/bin/uv",
"args": [
"--directory",
"/Users/zhihaoouyang/Desktop/code/weather",
"run",
"weather-server"
]
}
}
}
- Restart Claude for Desktop
Note
This server uses the National Weather Service API, which only provides data for locations within the United States.