Weather MCP Server
# Weather MCP Server
A Model Context Protocol (MCP) server that provides weather forecast and alert information for US locations. Referenced these [docs](https://modelcontextprotocol.io/docs/develop/build-server#python).
## Features
- **Weather Forecasts**: Get detailed weather forecasts for any location using latitude/longitude coordinates
- **Weather Alerts**: Retrieve active weather alerts for US states
- Real-time data from the National Weather Service
## Installation
### Prerequisites
- Python 3.10 or higher
### Setup
1. Clone this repository:
```bash
git clone https://github.com/penguyen72/python-mcp
cd python-mcp
```
## Usage
### Configuration
Add the server to your MCP client configuration. For Claude Desktop, add this to your config file:
**MacOS**:
```
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
**Windows**:
```
code $env:AppData\Claude\claude_desktop_config.json
```
**Config:**
```json
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather",
"run",
"weather.py"
]
}
}
}
```
## Available Tools
### `weather:get_forecast`
Get weather forecast for a specific location.
**Parameters:**
- `latitude` (number, required): Latitude of the location
- `longitude` (number, required): Longitude of the location
**Example:**
```json
{
"latitude": 38.5816,
"longitude": -121.4944
}
```
### `weather:get_alerts`
Get active weather alerts for a US state.
**Parameters:**
- `state` (string, required): Two-letter US state code (e.g., "CA", "NY", "TX")
**Example:**
```json
{
"state": "CA"
}
```
## API Data Source
This server uses the [National Weather Service API](https://www.weather.gov/documentation/services-web-api) to retrieve weather data for US locations.TDQS
Scored across 2 tools
The two tools have clearly 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 ambiguity about which tool to use for each task.
Both tools follow a consistent verb_noun pattern with 'get_' prefix and descriptive nouns (alerts, forecast). The naming is perfectly uniform and predictable across the tool set.
With only 2 tools, the server feels underpowered for a weather domain. While alerts and forecasts are core functions, there are obvious gaps like current conditions, historical data, or radar imagery that would be expected in a weather API. The minimal tool count limits the server's usefulness.
The tool surface is severely incomplete for a weather server. It lacks current conditions, historical weather data, radar/satellite imagery, air quality information, and marine forecasts. The two provided tools cover only narrow aspects of weather data, leaving significant gaps that will hinder agent workflows.