weather-mcp
by Benziela
README.md
# Weather MCP Server
A Model Context Protocol (MCP) server that provides real-time weather data and alerts from the National Weather Service (NWS) API.
## Features
- š¤ļø **Weather Forecasts**: Get detailed weather forecasts for any US location using latitude/longitude coordinates
- šØ **Weather Alerts**: Retrieve active weather alerts for any US state
- š **MCP Compatible**: Integrates seamlessly with Claude Desktop and other MCP clients
## Tools
### `get_forecast`
Get a detailed weather forecast for a specific location.
**Parameters:**
- `latitude` (float): Latitude of the location
- `longitude` (float): Longitude of the location
**Returns:** Formatted forecast for the next 5 periods including temperature, wind conditions, and detailed descriptions.
**Example:**
```
get_forecast(40.7128, -74.0060) # New York City
```
### `get_alerts`
Get active weather alerts for a US state.
**Parameters:**
- `state` (string): Two-letter US state code (e.g., "CA", "NY", "TX")
**Returns:** List of active weather alerts with event type, area, severity, description, and instructions.
**Example:**
```
get_alerts("CA") # California alerts
```
## Installation
### Prerequisites
- Python 3.12 or higher
- [uv](https://docs.astral.sh/uv/) package manager
### Setup
1. Clone the repository:
```bash
git clone https://github.com/Benziela/weather-mcp.git
cd weather-mcp
```
2. Install dependencies:
```bash
uv sync
```
## Usage
### With Claude Desktop
Add this configuration to your Claude Desktop config file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\jonathbenjamin_a\\Learn\\weather-mcp",
"run",
"weather"
]
}
}
}
```
### Standalone
Run the server directly:
```bash
uv run weather
```
## Development
The project structure:
```
weather-mcp/
āāā weather.py # Main MCP server implementation
āāā main.py # Entry point
āāā pyproject.toml # Project configuration
āāā uv.lock # Dependency lock file
āāā README.md # This file
```
## API Data Source
This server uses the [National Weather Service API](https://www.weather.gov/documentation/services-web-api), which provides:
- Free access with no API key required
- High-quality weather data for US locations
- Real-time weather alerts and warnings
- Detailed forecast periods
## Dependencies
- `httpx` - Async HTTP client for API requests
- `mcp` - Model Context Protocol SDK with CLI support
## License
MIT
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Author
BenzielaThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues