Skip to main content
Glama
jimimatt

DWD MCP Server

by jimimatt

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

# 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

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jimimatt/dwd-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server