Skip to main content
Glama
dheerajpatidar212

Weather MCP Server

README.md
# Weather MCP Server

A Python [Model Context Protocol](https://modelcontextprotocol.io/) server that gives an AI current weather and forecasts. It geocodes locations and reads forecast data from [Open-Meteo](https://open-meteo.com/), then optionally uses Groq to explain the result naturally.

## Requirements

- Python 3.11 or newer
- A Groq API key for AI-generated summaries
- Internet access for Open-Meteo and Groq requests

## Setup

PowerShell:

```powershell
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
Copy-Item .env.example .env
```

Open `.env` and set `GROQ_API_KEY`. The server still works without the key, but it returns structured JSON instead of an AI summary.

## Run

### Browser UI

Start the user-facing weather chat:

```powershell
python -m weather_mcp_server.web
```

Then open <http://127.0.0.1:8000>. Ask questions such as “Will it rain in London tomorrow?” The browser sends the question to the web adapter, which invokes the same `get_weather` tool exposed by the MCP server.

Run the server directly:

```powershell
python -m weather_mcp_server.server
```

MCP clients can use the checked-in `.vscode/mcp.json` configuration. In VS Code, open this folder as the workspace, install the Python extension if prompted, and start the `weather-mcp-server` MCP server from the MCP controls.

The server exposes one tool:

- `get_weather(location, forecast_days=3)`: returns current conditions and 1-7 days of forecast data.

## Test

```powershell
python -m pytest
```

The tests mock Open-Meteo, so they do not require network access or a Groq key.

TDQS

A4.2/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion or overlap. The single tool's purpose is clearly defined and distinct by default.

Naming Consistency5/5

The tool name uses a clear verb_noun pattern (get_weather) that aligns with common MCP naming conventions. With only one tool, there is no inconsistency to evaluate.

Tool Count2/5

A single tool is too few for a weather server's apparent scope. A weather domain could reasonably include current conditions, alerts, historical data, or location search as separate tools, so this feels undersized.

Completeness4/5

The tool covers both current conditions and a multi-day forecast, which addresses the core weather use case. Minor gaps exist, such as no separate alerts or historical data tools, but these are not blocking for basic weather lookups.

Maintenance

ActivityMaintained
ResponsivenessNo issues