Skip to main content
Glama
VenkatAdena

Global Weather MCP Server

by VenkatAdena
README.md
# Global Weather MCP Server

A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that gives AI assistants access to weather data without API keys.

- US weather alerts from the [National Weather Service API](https://api.weather.gov)
- US point forecasts from the National Weather Service
- Global 5-day forecasts from [Open-Meteo](https://open-meteo.com), including India

## Requirements

| Requirement | Version |
| --- | --- |
| Python | 3.14+ |
| uv | Latest |
| Claude Desktop or another MCP client | Latest |

Check your local versions:

```bash
python --version
uv --version
```

## Installation

```bash
git clone https://github.com/YOUR-USERNAME/global-weather-mcp-server.git
cd global-weather-mcp-server
uv sync
```

No API keys are required.

## Connect to Claude Desktop on Windows

For the Microsoft Store/package install of Claude Desktop, open this config file:

```text
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json
```

Add only this server entry inside the `mcpServers` object:

```json
{
  "mcpServers": {
    "global-weather": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\weather-mcp",
        "run",
        "global_weather_mcp_server.py"
      ]
    }
  }
}
```

If the config file already has other MCP servers, keep them and add only the `global-weather` block. Restart Claude Desktop after saving the file. The server should expose these tools:

- `get_alerts`
- `get_forecast`
- `get_forecast_global`

## Tools

### `get_alerts`

Get active weather alerts for a US state.

Example:

```text
What are the active weather alerts in California?
```

### `get_forecast`

Get a detailed National Weather Service forecast for a US location by latitude and longitude.

Example:

```text
What's the weather forecast for latitude 40.71, longitude -74.01?
```

### `get_forecast_global`

Get current conditions and a 5-day forecast for any location worldwide by latitude and longitude.

Examples:

```text
What's the weather forecast for latitude 19.0760, longitude 72.8777?
Get the weather for latitude 28.6139, longitude 77.2090.
```

Useful Indian city coordinates:

| City | Latitude | Longitude |
| --- | --- | --- |
| New Delhi | 28.6139 | 77.2090 |
| Mumbai | 19.0760 | 72.8777 |
| Bangalore | 12.9716 | 77.5946 |
| Chennai | 13.0827 | 80.2707 |
| Kolkata | 22.5726 | 88.3639 |
| Hyderabad | 17.3850 | 78.4867 |
| Pune | 18.5204 | 73.8567 |

## Test Locally

Run the MCP server directly:

```bash
uv run global_weather_mcp_server.py
```

If it starts and waits silently, the server is ready for an MCP client.

## Project Structure

```text
global-weather-mcp-server/
|-- global_weather_mcp_server.py
|-- pyproject.toml
|-- uv.lock
|-- README.md
`-- .gitignore
```

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation3/5

get_alerts is distinct for US alerts, but get_forecast and get_forecast_global both provide forecasts; their regional scope is unclear from descriptions, causing potential confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (get_alerts, get_forecast, get_forecast_global).

Tool Count3/5

With only 3 tools, the server is minimal but covers basic weather needs; it's borderline but not extreme.

Completeness3/5

Covers alerts and forecasts, but lacks current conditions, historical data, and other common weather features, leaving notable gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues