Integrates with OpenStreetMap's Nominatim API to provide geocoding capabilities, allowing the server to resolve location names into coordinates for accurate weather data retrieval.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DWD MCP ServerWhat's the current weather and forecast for Berlin?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DWD MCP Server
An MCP server (Model Context Protocol) for weather data from the German Weather Service (DWD) via Bright Sky API.
Features
Current Weather (
get_current_weather) - Temperature, wind, precipitation, cloud cover, etc.Weather Forecast (
get_weather_forecast) - Hourly forecasts and daily summariesWeather Alerts (
get_weather_alerts) - Official DWD warnings (storm, thunderstorm, frost, etc.)Weather Stations (
find_weather_station) - Find nearest DWD stations
Installation
With uv (recommended)
# Clone repository
git clone https://github.com/your-username/dwd-mcp-server.git
cd dwd-mcp-server
# Install dependencies
uv sync
# Development dependencies (optional)
uv sync --extra devWith pip
pip install -e .
# With development dependencies
pip install -e ".[dev]"Usage
Start as MCP server
# With uv
uv run dwd-mcp-server start
# Or directly with Python
python -m dwd_mcp_server.cli startIntegrate with Claude Desktop
Add the following configuration to your Claude Desktop config.json:
{
"mcpServers": {
"dwd-weather": {
"command": "uv",
"args": ["--directory", "/path/to/dwd-mcp-server", "run", "dwd-mcp-server", "start"]
}
}
}Integrate with Claude Code
claude mcp add dwd-weather -- uv --directory /path/to/dwd-mcp-server run dwd-mcp-server startMCP Tools
get_current_weather
Get current weather for a location.
Parameters:
location(string, required): City name (e.g., "Aachen", "Munich") or coordinates (e.g., "50.7753,6.0839")
Example response:
{
"timestamp": "Sat, 15.02.2026 14:00",
"temperature_c": 8.2,
"feels_like_c": 5.5,
"humidity_percent": 78,
"wind_speed_kmh": 22.3,
"wind_direction": "W",
"precipitation_mm": 0.0,
"cloud_cover_percent": 75,
"condition": "cloudy",
"station_name": "Aachen-Orsbach"
}get_weather_forecast
Get weather forecast for a location.
Parameters:
location(string, required): City name or coordinatesdays(integer, optional): Number of days (1-10, default: 3)
Returns: Hourly data and daily summaries with min/max temperatures.
get_weather_alerts
Get official weather alerts.
Parameters:
location(string, optional): City name or coordinates. If omitted: all alerts for Germany.
Returns: List of active alerts with type, severity, description, and validity period.
find_weather_station
Find nearest DWD weather stations.
Parameters:
location(string, required): City name or coordinates
Returns: List of stations with name, ID, and distance.
Geocoding
The server accepts various location inputs:
Direct coordinates:
"50.7753,6.0839"or"50.7753, 6.0839"German cities:
"Aachen","Munich","Cologne"(approx. 100 cities included)Nominatim fallback: For unknown locations, OpenStreetMap/Nominatim is queried
Tests
# With uv
uv run pytest
# With pytest directly
pytestTechnology Stack
MCP Framework: mcp Python SDK (FastMCP)
HTTP Client: httpx (async)
Data Source: Bright Sky API (DWD Open Data)
Geocoding: Built-in city table + Nominatim fallback
License
MIT
Data Sources
Weather data: DWD Open Data
API: Bright Sky
Geocoding: Nominatim/OpenStreetMap
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.