mcp-weather
An MCP server that aggregates data from six weather sources to provide current conditions, forecasts, air quality, and aviation METAR information, specifically optimized for European and Nordic locations. It supports multi-source data merging and functions without API keys for several integrated providers.
README
🇪🇺🇫🇮 mcp-weather
A Model Context Protocol (MCP) server that aggregates weather data from 6 sources, optimized for European and Nordic/Baltic locations. Works out of the box with zero API keys -- add optional keys to unlock more sources.
Features
- 6 weather sources -- Open-Meteo, wttr.in, METAR, OpenWeatherMap, WeatherAPI, Tomorrow.io
- 6 MCP tools -- current weather, forecast, air quality, aviation METAR, astronomy, source status
- Nordic/Finnish focus -- 30+ Finnish cities with instant alias resolution (e.g.
hki,tre,stadi), Nordic/Baltic capitals included - Multi-source aggregation -- merges data from all available sources for more complete and accurate results
- Zero-config start -- 3 sources work without any API keys (Open-Meteo, wttr.in, METAR)
- Smart caching -- LRU cache with stampede prevention, configurable TTL
MCP Tools
| Tool | Description |
|---|---|
get_current_weather |
Current conditions from up to 5 sources, merged into one result |
get_weather_forecast |
1-7 day daily forecast (temperature, precipitation, wind, UV) |
get_air_quality |
European AQI with PM2.5, PM10, NO2, O3, SO2, CO levels |
get_metar |
Aviation weather (raw + decoded) from aviationweather.gov |
get_astronomy |
Sunrise, sunset, day length, moon phase and illumination |
get_weather_source_status |
Health check for all sources + cache statistics |
Location Input
The server accepts multiple location formats:
| Format | Example | Notes |
|---|---|---|
| Finnish alias | hki, tre, stadi, turku |
30+ cities with ICAO codes |
| Nordic capital | stockholm, oslo, tallinn |
Finnish names work too (tukholma) |
| City name | London, Berlin, Tokyo |
Geocoded via Open-Meteo |
| Coordinates | 60.17,24.94 |
Latitude, longitude |
| ICAO code | EFHK, ESSA |
For METAR tool |
Quick Start
Docker (recommended)
git clone https://github.com/Koneisto/mcp-weather.git
cd mcp-weather
cp .env.example .env # optionally add API keys
npm install && npm run build # build TypeScript
docker compose up -d
The server will be available at http://localhost:3015 via supergateway (Streamable HTTP transport).
Local Development
git clone https://github.com/Koneisto/mcp-weather.git
cd mcp-weather
npm install
npm run build
node build/index.js # runs on stdio transport
Claude Desktop / Claude Code
Add to your MCP client configuration:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/path/to/mcp-weather/build/index.js"],
"env": {
"OPENWEATHERMAP_API_KEY": "",
"WEATHERAPI_KEY": "",
"TOMORROW_IO_API_KEY": ""
}
}
}
}
Configuration
All settings are via environment variables. Copy .env.example to .env to get started.
| Variable | Default | Description |
|---|---|---|
OPENWEATHERMAP_API_KEY |
(empty) | OpenWeatherMap free tier key |
WEATHERAPI_KEY |
(empty) | WeatherAPI free tier key |
TOMORROW_IO_API_KEY |
(empty) | Tomorrow.io free tier key |
CACHE_TTL_MINUTES |
60 |
Cache time-to-live in minutes |
CACHE_MAX_ENTRIES |
200 |
Maximum cached responses |
HTTP_TIMEOUT_MS |
10000 |
HTTP request timeout in milliseconds |
Sources by API Key Requirement
| Source | Requires Key | Data Provided |
|---|---|---|
| Open-Meteo | No | Current, forecast, air quality |
| wttr.in | No | Current conditions |
| METAR | No | Aviation weather |
| OpenWeatherMap | Yes | Current conditions |
| WeatherAPI | Yes | Current conditions, astronomy (moon) |
| Tomorrow.io | Yes | Current conditions, air quality |
Architecture
src/
index.ts # MCP server entry point (stdio transport)
config.ts # Environment variable loading
cache.ts # LRU cache with stampede prevention
types.ts # Shared TypeScript interfaces
tools/
current-weather.ts # get_current_weather
forecast.ts # get_weather_forecast
air-quality.ts # get_air_quality
metar.ts # get_metar
astronomy.ts # get_astronomy
source-status.ts # get_weather_source_status
sources/
open-meteo.ts # Open-Meteo (current, forecast, AQI)
wttr-in.ts # wttr.in (current)
openweathermap.ts # OpenWeatherMap (current)
weatherapi.ts # WeatherAPI (current, astronomy)
tomorrow-io.ts # Tomorrow.io (current, AQI)
metar.ts # aviationweather.gov (METAR)
utils/
aggregator.ts # Multi-source data merging
finnish-locations.ts # Finnish/Nordic city alias map
location.ts # Location resolution (alias -> geocode -> coords)
units.ts # Unit conversions and WMO weather codes
Transport
The server uses stdio transport natively. The Docker setup wraps it with supergateway to expose it as a Streamable HTTP endpoint on port 3000 (mapped to 3015 in docker-compose).
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.