Skip to main content
Glama
minidantre-db

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.4/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool, there is no possibility of ambiguity or confusion between different functions.

Naming Consistency5/5

The single tool name 'get_weather' follows a clear, conventional verb_noun pattern, consistent with common MCP naming practices.

Tool Count3/5

One tool is at the lower boundary of what is reasonable for a weather server; it feels slightly thin but not entirely inadequate given the combined current/forecast functionality.

Completeness2/5

The tool covers basic conditions and forecast but lacks common weather-related operations such as alerts, historical data, or location management, leaving notable gaps for a full-featured weather service.

Maintenance

ActivityMaintained
ResponsivenessNo issues