Skip to main content
Glama
DWD MCP Server

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

Related MCP server: mcp-danish-weather

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

Available Tools

4 tools
find_weather_stationC

Nächstgelegene DWD-Wetterstationen finden.

Gibt eine Liste der Wetterstationen in der Nähe des angegebenen Ortes zurück, inklusive Stationsname, ID und Entfernung.

Inputs: location (required). Returns: result

get_current_weatherA

Aktuelles Wetter für einen Ort abrufen.

Gibt Temperatur, Luftfeuchtigkeit, Wind, Niederschlag, Bewölkung und weitere aktuelle Wetterdaten zurück.

Inputs: location (required). Returns: result

get_weather_alertsA

Amtliche Wetterwarnungen abrufen.

Gibt aktuelle Wetterwarnungen des DWD zurück, inklusive Warntyp, Schweregrad, Beschreibung und Gültigkeitszeitraum. Kann für einen bestimmten Ort oder deutschlandweit abgefragt werden.

Inputs: location. Returns: result

get_weather_forecastB

Wettervorhersage für einen Ort abrufen.

Gibt stündliche Vorhersagedaten sowie eine Tageszusammenfassung mit Minimal-/Maximaltemperaturen und Niederschlagssummen zurück.

Inputs: location (required), days. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: find_weather_station locates stations, get_current_weather provides current conditions, get_weather_alerts retrieves warnings, and get_weather_forecast gives predictions. The descriptions reinforce these distinct functions, making misselection unlikely.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case: find_weather_station, get_current_weather, get_weather_alerts, and get_weather_forecast. The verbs 'find' and 'get' are appropriately used for different actions, maintaining a predictable naming convention throughout.

    Tool Count5/5

    With 4 tools, this server is well-scoped for a weather data service, covering key operations: locating stations, retrieving current weather, accessing alerts, and obtaining forecasts. Each tool earns its place without being excessive or insufficient for the domain.

    Completeness5/5

    The tool set provides complete coverage for a weather server, including station lookup, current conditions, warnings, and forecasts. There are no obvious gaps; agents can perform typical weather-related tasks without dead ends, ensuring effective workflow support.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides weather data integration using the OpenWeatherMap API, enabling users to fetch current weather conditions, hourly and daily forecasts, weather alerts, and geocoding services for any location worldwide.
      194 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Provides access to Danish weather data from the Danish Meteorological Institute, enabling users to retrieve current conditions, hourly forecasts, and historical records. It supports location lookups via city names, postal codes, and coordinates for any Danish region.
      3
      9 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables access to German weather data from the Deutscher Wetterdienst, including station observations, forecasts, and warnings, through standardized MCP tools.
      1
      MIT