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