# 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: ```bash uv venv source .venv/bin/activate # On Unix/macOS # or .venv\Scripts\activate # On Windows ``` 2. Install dependencies: ```bash uv pip install -e . ``` ## Usage Run the server: ```bash 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: ```json { "mcpServers": { "weather": { "command": "/Users/zhihaoouyang/.local/bin/uv", "args": [ "--directory", "/Users/zhihaoouyang/Desktop/code/weather", "run", "weather-server" ] } } } ``` 3. Restart Claude for Desktop ## Note This server uses the National Weather Service API, which only provides data for locations within the United States.