Skip to main content
Glama
README.md
# 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

B3.3/5.0

Scored across 2 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness2/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues