DWD MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
uv sync
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add dwd-mcp-server -- node "<FULL_PATH_TO_DWD_MCP_SERVER>/dist/index.js"

Replace <FULL_PATH_TO_DWD_MCP_SERVER>/dist/index.js with the actual folder you prepared in step 1.

README.md

Access German Weather Service data via the Bright Sky API

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 summaries
  • Weather 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 dev

With 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 start

Integrate 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 start

MCP 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 coordinates
  • days (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:

  1. Direct coordinates: "50.7753,6.0839" or "50.7753, 6.0839"
  2. German cities: "Aachen", "Munich", "Cologne" (approx. 100 cities included)
  3. Nominatim fallback: For unknown locations, OpenStreetMap/Nominatim is queried

Tests

# With uv
uv run pytest

# With pytest directly
pytest

Technology 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

Tools (4)

get_current_weatherGet current weather for a location.
get_weather_forecastGet weather forecast for a location.
get_weather_alertsGet official weather alerts.
find_weather_stationFind nearest DWD weather stations.

Configuration

claude_desktop_config.json
{"mcpServers": {"dwd-weather": {"command": "uv", "args": ["--directory", "/path/to/dwd-mcp-server", "run", "dwd-mcp-server", "start"]}}}

Try it

What is the current weather in Munich?
Give me a 3-day weather forecast for Aachen.
Are there any active weather alerts for Germany right now?
Find the nearest DWD weather station to my current coordinates 50.7753, 6.0839.

Frequently Asked Questions

What are the key features of DWD MCP Server?

Retrieves real-time weather data including temperature, wind, and precipitation. Provides hourly and daily weather forecasts. Fetches official DWD weather warnings and alerts. Locates nearest weather stations using city names or coordinates. Supports geocoding via built-in city table and Nominatim fallback.

What can I use DWD MCP Server for?

Planning outdoor activities based on accurate local weather forecasts. Monitoring severe weather conditions and official alerts in Germany. Integrating hyper-local weather data into automated workflows. Finding the most relevant DWD weather station for specific geographic locations.

How do I install DWD MCP Server?

Install DWD MCP Server by running: uv sync

What MCP clients work with DWD MCP Server?

DWD MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep DWD MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare