open-meteo-mcp-lite
# open-meteo-mcp-lite
A lightweight MCP (Model Context Protocol) server for Open-Meteo weather API.
Simple, fast, no API key required.
## Features
- **Current weather**: temperature, humidity, wind, pressure, UV index
- **Forecasts**: up to 16 days with daily high/low, precipitation, sunrise/sunset
- **Hourly forecasts**: up to 384 hours with temperature, precipitation, wind, pressure, UV index
- **Location search**: geocoding by city name
- **Pressure data**: surface pressure for weather tracking
- **Default location**: set once, query without specifying location
## Installation
```bash
npm install -g open-meteo-mcp-lite
```
Or use with npx:
```bash
npx open-meteo-mcp-lite
```
## Configuration
### OpenCode
Add to your `opencode.json`:
```json
{
"mcp": {
"weather": {
"type": "local",
"command": ["npx", "-y", "open-meteo-mcp-lite"],
"enabled": true
}
}
}
```
### Claude Desktop
Add to your Claude Desktop config:
```json
{
"mcpServers": {
"weather": {
"command": "npx",
"args": ["-y", "open-meteo-mcp-lite"]
}
}
}
```
## Tools
### set_default_location
Set a default location for weather queries. Stored in `~/.config/open-meteo-mcp-lite/config.json`.
**Parameters:**
- `location` (string, optional): City name to set as default
- `latitude` (number, optional): Latitude coordinate
- `longitude` (number, optional): Longitude coordinate
- `name` (string, optional): Custom name for the location (used with coordinates)
Provide either `location` OR both `latitude`/`longitude`.
### get_default_location
Get the currently configured default location.
### search_location
Search for a location by name to get coordinates.
**Parameters:**
- `query` (string, required): City name or location to search
- `limit` (number, optional): Max results 1-10, default 5
### get_weather
Get current weather conditions. Uses default location if none specified.
**Parameters:**
- `location` (string, optional): City name
- `latitude` (number, optional): Latitude coordinate
- `longitude` (number, optional): Longitude coordinate
### get_forecast
Get weather forecast up to 16 days. Uses default location if none specified.
**Parameters:**
- `location` (string, optional): City name
- `latitude` (number, optional): Latitude coordinate
- `longitude` (number, optional): Longitude coordinate
- `days` (number, optional): Forecast days 1-16, default 7
### get_hourly_forecast
Get hourly weather forecast up to 384 hours (16 days). Uses default location if none specified.
**Parameters:**
- `location` (string, optional): City name
- `latitude` (number, optional): Latitude coordinate
- `longitude` (number, optional): Longitude coordinate
- `hours` (number, optional): Forecast hours 1-384, default 24
## Usage
Set your default location by city name:
```
> set_default_location(location="Barcelona")
Default location set to: Barcelona, Catalonia, Spain
Coordinates: 41.38879, 2.15899
```
Or by exact coordinates:
```
> set_default_location(latitude=41.5247, longitude=2.0214, name="Home")
Default location set to: Home
Coordinates: 41.5247, 2.0214
```
Then just ask for weather without specifying location:
```
> get_weather()
Location: Home
Current Weather (Europe/Madrid)
...
```
## Example Output
### Current Weather
```
Current Weather (Europe/Madrid)
Time: 2025-01-19T22:00
Temperature: 8.5°C
Feels like: 6.2°C
Humidity: 72%
Condition: Partly cloudy
Pressure: 1023.4 hPa
Wind: 12.3 km/h from 270°
Gusts: 18.5 km/h
UV Index: 0
```
### Forecast
```
Weather Forecast (Europe/Madrid)
Mon, Jan 20
Partly cloudy
High: 14°C / Low: 5°C
Precipitation: 0mm (0% chance)
Wind: up to 15 km/h
Sunrise: 08:15 / Sunset: 18:02
```
### Hourly Forecast
```
Hourly Forecast (Europe/Madrid)
Mon, Jan 20
00:00 Partly cloudy 8.5°C, feels 6.2°C
Humidity: 72%, Pressure: 1023.4 hPa
Precip: 0mm (0%), Wind: 12.3 km/h from 270°, Gusts: 18.5 km/h, UV: 0
```
## Config File
Default location is stored in:
```
~/.config/open-meteo-mcp-lite/config.json
```
## Data Source
Weather data provided by [Open-Meteo](https://open-meteo.com/) - free for non-commercial use.
## License
MIT
TDQS
Scored across 6 tools
Each tool has a clear, distinct purpose: two manage default location, one searches locations, and three retrieve weather data (current, daily forecast, hourly forecast). Potential overlap between get_forecast and get_hourly_forecast is resolved by descriptions explicitly distinguishing daily vs hourly granularity.
All tool names follow a consistent snake_case verb_noun pattern: get_* for retrieval, set_* for configuration, search_* for lookup. The naming is predictable and uniform across the entire set.
Six tools is well-scoped for a weather API lite server, covering configuration, location search, and three data retrieval modes. The count is neither sparse nor excessive, and each tool serves a necessary function.
The tool set covers the core workflow: search location, set/get default location, get current weather, and get daily or hourly forecasts. Minor omissions like clearing a default location or historical data are acceptable given the 'lite' designation, and no critical operation is missing.