Deutsche Feiertage + Schulferien MCP

German public holidays (all 16 states, 1995–2100, computed from state holiday laws) and school holidays (OpenHolidays data, ODbL) as 10 MCP tools: is it a holiday, next holidays, working-day counts. Offline, no API key.

Documentation

feiertage-mcp: Deutsche Feiertage + Schulferien MCP

CI License: MIT Data: ODbL

An MCP server that answers German public holidays per Bundesland and school holidays (Schulferien) for Claude, Cursor, Codex and any other MCP client. Offline, read-only, no API key and no network calls at runtime.

Deutsch weiter unten

Why

LLMs often get German holidays wrong: Fronleichnam is not nationwide, Reformationstag became a holiday in the north only in 2018, Berlin added Frauentag in 2019, Mecklenburg-Vorpommern in 2023, and Mariä Himmelfahrt in Bayern applies only in some municipalities. This server computes them from the holiday laws and returns exact, sourced answers. It is useful for scheduling, delivery dates, Handwerk planning, payroll and travel.

Tools

ToolWhat it does
list_statesThe 16 Bundesländer with codes (NW, BY, ...)
get_public_holidaysStatutory holidays for a year and state (optionally partial/local ones)
holiday_overviewEvery holiday of a year with the states where it applies
is_public_holidayIs this date a holiday in this state?
next_public_holidaysThe next N holidays from a date
count_working_daysWorking days between two dates, without weekends and holidays (optional Saturday)
get_school_holidaysSchool-holiday periods of a state in a year
is_school_holidayIs this date in the school holidays?
next_school_holidaysThe next (or current) school-holiday periods
aboutVersion, data coverage, sources and licenses

States accept codes, DE- codes or names: NW, DE-NW, NRW, Nordrhein-Westfalen, Thueringen.

Install

Requires Python 3.10+ and uv.

Claude Code

claude mcp add feiertage -- uvx --from git+https://github.com/drilongit/feiertage-mcp feiertage-mcp

Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json)

{
  "mcpServers": {
    "feiertage": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/drilongit/feiertage-mcp", "feiertage-mcp"]
    }
  }
}

Codex CLI (~/.codex/config.toml)

[mcp_servers.feiertage]
command = "uvx"
args = ["--from", "git+https://github.com/drilongit/feiertage-mcp", "feiertage-mcp"]

Example prompts

  • "Is 31 October 2026 a holiday in Thüringen? And in NRW?"
  • "How many working days does a Handwerker in Bayern have in December 2026, Saturdays included?"
  • "When are the next Sommerferien in Berlin?"

Data and coverage

DataCoverageSourceLicense
Public holidays1995 to 2100Computed from the Länder Feiertagsgesetze and the Einigungsvertrag (SOURCES.md)Laws are official works, § 5 UrhG
School holidaysDec 2019 to May 2031OpenHolidays API snapshotODbL 1.0

Future years apply current law; parliaments can change it. Future school holidays can still be changed by the states. For anything critical, confirm with the state's Kultusministerium. Informational only, no legal advice.

scope in results: statewide, partial (only some municipalities, e.g. Fronleichnam in parts of Sachsen and Thüringen), local (Augsburger Friedensfest). Only statewide holidays count in is_public_holiday and count_working_days.

Security

  • No network access at runtime, no file paths from the client, no shell, no eval.
  • All inputs are validated (ISO dates, year range, state allow-list, range limit of about 10 years).
  • Only dependency: the official mcp Python SDK.
  • See SECURITY.md for the threat model and how to report issues.

Development

uv venv && uv pip install -e ".[test]"
pytest            # unit tests + cross-checks against python-holidays and OpenHolidays
ruff check .
python scripts/build_data.py 2020 2031   # refresh school holidays (maintainers only)

Deutsch

Ein MCP-Server für gesetzliche Feiertage je Bundesland und Schulferien, nutzbar in Claude, Cursor, Codex und jedem anderen MCP-Client. Läuft offline, nur lesend, ohne API-Key und ohne Netzwerkzugriff.

Wozu

Sprachmodelle liegen bei deutschen Feiertagen oft daneben: Fronleichnam gilt nicht bundesweit, der Reformationstag ist im Norden erst seit 2018 Feiertag, Berlin hat seit 2019 den Frauentag, Mecklenburg-Vorpommern seit 2023, und Mariä Himmelfahrt gilt in Bayern nur in einem Teil der Gemeinden. Dieser Server berechnet die Feiertage aus den Feiertagsgesetzen und liefert exakte Antworten mit Quelle. Praktisch für Terminplanung, Liefertermine, Handwerk, Lohnabrechnung und Urlaub.

Werkzeuge

ToolFunktion
list_statesDie 16 Bundesländer mit Kürzel
get_public_holidaysFeiertage eines Jahres und Bundeslands (optional auch nur teilweise geltende)
holiday_overviewAlle Feiertage eines Jahres mit den Ländern, in denen sie gelten
is_public_holidayIst das Datum in diesem Land ein Feiertag?
next_public_holidaysDie nächsten N Feiertage ab einem Datum
count_working_daysArbeitstage zwischen zwei Daten ohne Wochenenden und Feiertage (Samstag optional)
get_school_holidaysSchulferien eines Landes in einem Jahr
is_school_holidayLiegt das Datum in den Schulferien?
next_school_holidaysDie nächsten (oder laufenden) Ferien
aboutVersion, Datenabdeckung, Quellen, Lizenzen

Installation

Siehe oben unter Install: dieselben Befehle für Claude Code, Claude Desktop, Cursor und Codex.

Beispiel-Fragen

  • „Ist der 31.10.2026 in Thüringen ein Feiertag? Und in NRW?"
  • „Wie viele Arbeitstage hat ein Handwerksbetrieb in Bayern im Dezember 2026, mit Samstagen?"
  • „Wann sind die nächsten Sommerferien in Berlin?"

Daten

Feiertage werden für 1995 bis 2100 aus den Feiertagsgesetzen der Länder berechnet (Gesetze sind amtliche Werke nach § 5 UrhG, Quellen in SOURCES.md). Schulferien stammen aus einem Abzug der OpenHolidays API (Dez. 2019 bis Mai 2031) unter ODbL 1.0. Künftige Jahre folgen dem heutigen Recht; Gesetze und Ferientermine können sich ändern. Wichtige Termine bitte beim Kultusministerium des Landes prüfen. Keine Rechtsberatung.

License / Lizenz

Code: MIT. School-holiday data: ODbL 1.0, © OpenHolidays API contributors. See DATA_LICENSE.md.