MCP Weather Server
# MCP Weather Server
A simple MCP server that provides hourly weather forecasts using the AccuWeather API.
## Setup
1. Install dependencies using `uv`:
```bash
uv venv
uv sync
```
2. Create a `.env` file with your AccuWeather API key:
```
ACCUWEATHER_API_KEY=your_api_key_here
```
You can get an API key by registering at [AccuWeather API](https://developer.accuweather.com/).
## Running the Server
```json
{
"mcpServers": {
"weather": {
"command": "uvx",
"args": ["--from", "git+https://github.com/adhikasp/mcp-weather.git", "mcp-weather"],
"env": {
"ACCUWEATHER_API_KEY": "your_api_key_here"
}
}
}
}
```
## API Usage
### Get Hourly Weather Forecast
Response:
```json
{
"location": "Jakarta",
"location_key": "208971",
"country": "Indonesia",
"current_conditions": {
"temperature": {
"value": 32.2,
"unit": "C"
},
"weather_text": "Partly sunny",
"relative_humidity": 75,
"precipitation": false,
"observation_time": "2024-01-01T12:00:00+07:00"
},
"hourly_forecast": [
{
"relative_time": "+1 hour",
"temperature": {
"value": 32.2,
"unit": "C"
},
"weather_text": "Partly sunny",
"precipitation_probability": 40,
"precipitation_type": "Rain",
"precipitation_intensity": "Light"
}
]
}
```
The API provides:
- Current weather conditions including temperature, weather description, humidity, and precipitation status
- 12-hour forecast with hourly data including:
- Relative time from current time
- Temperature in Celsius
- Weather description
- Precipitation probability, type, and intensityTDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear and distinct purpose, making it impossible for an agent to misselect between multiple options.
The single tool name follows a consistent verb_noun pattern (get_hourly_weather). Since there is only one tool, there are no deviations or mixed conventions to evaluate, resulting in perfect consistency.
A single tool for a weather server is too few for the apparent scope, as it only provides hourly forecasts without coverage for current conditions, daily forecasts, or other common weather data. This minimal set limits functionality and will likely cause agent failures in broader weather-related tasks.
The tool surface is severely incomplete for a weather domain, lacking obvious gaps such as current weather, daily forecasts, alerts, or historical data. With only hourly forecasts, agents cannot perform comprehensive weather-related operations, leading to significant limitations in coverage.