Weather MCP Server
# Weather MCP Server
An MCP (Model Context Protocol) server that provides weather information tools using the National Weather Service (NWS) API.
## Features
This MCP server exposes two tools for accessing weather data:
- **`get_alerts`**: Get active weather alerts for any US state
- **`get_forecast`**: Get detailed weather forecast for a specific location (latitude/longitude)
## Requirements
- Python >= 3.14
- uv (recommended for dependency management)
## Setup
1. Clone this repository or download the source code
2. Install dependencies using uv:
```bash
uv sync
```
## Running the Server
The server runs using stdio transport for MCP communication:
```bash
uv run weather.py
```
## Using with MCP Clients
To use this server with an MCP client (like Claude Desktop), add it to your MCP client configuration:
```json
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"c:\\Users\\Zachary\\Dev\\weather",
"run",
"weather.py"
]
}
}
}
```
## Available Tools
### get_alerts
Get active weather alerts for a US state.
**Parameters:**
- `state` (string): Two-letter US state code (e.g., "CA", "NY", "TX")
**Example:**
```
get_alerts(state="CA")
```
### get_forecast
Get weather forecast for a specific location.
**Parameters:**
- `latitude` (float): Latitude of the location
- `longitude` (float): Longitude of the location
**Example:**
```
get_forecast(latitude=37.7749, longitude=-122.4194)
```
## Data Source
This server uses the [National Weather Service API](https://www.weather.gov/documentation/services-web-api), which provides free weather data for US locations.
## License
Add your license information here.
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: get_alerts retrieves weather alerts for US states, while get_forecast provides forecasts for geographic coordinates. There is no overlap in functionality or target data, making them easily distinguishable.
Both tools follow a consistent verb_noun pattern with 'get_' prefix (get_alerts, get_forecast). The naming is perfectly uniform and predictable across the tool set.
With only two tools, this server feels severely under-scoped for a weather domain. A weather server should ideally include tools for current conditions, historical data, radar, or multiple forecast types, making this minimal set inadequate for comprehensive weather interactions.
The tool surface is highly incomplete for a weather server. It lacks fundamental operations like getting current conditions, historical weather, radar imagery, or air quality data. Agents will face significant gaps when trying to perform common weather-related tasks.