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.3/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion or overlap.
Naming Consistency5/5
The tool name 'get_weather' follows a clear verb_noun pattern, which is consistent and intuitive.
Tool Count5/5
A single tool is appropriate for a focused weather server that provides current conditions and forecasts.
Completeness4/5
The tool covers current weather and forecasts, but lacks additional weather-related features like alerts or historical data, which are not essential for a minimal server.
Maintenance
ActivityMaintained
ResponsivenessNo issues