Skip to main content

Deutsche Gesetze MCP Server

Dieser Server implementiert das Model Context Protocol (MCP), um deutschen Gesetzestexte für LLMs (Large Language Models) bereitzustellen. Er ermöglicht es KI-Assistenten, gezielt nach Gesetzen zu suchen und spezifische Paragraphen abzurufen.

Die Gesetzestexte werden aus Markdown-Dateien geparst, die dem Format des Bundestag/gesetze Repositories entsprechen (Hinweis: Dieses Repository ist veraltet und dient nur zu Demozwecken).

Funktionen

  • Gesetze auflisten & suchen: Durchsuchen der verfügbaren Gesetze (z.B. BGB, StGB, HGB).
  • Volltextsuche: Suche nach Begriffen in den Gesetzestexten.
  • Paragraphen abrufen: Abruf des Volltextes spezifischer Paragraphen (inkl. Absätze).
  • Flexible Datenquellen: Laden der Gesetze aus einem lokalen Ordner oder direkt von GitHub.

Installation

Lokal

  1. Repository klonen:

    git clone https://github.com/floleuerer/deutsche-gesetze-mcp.git
    cd deutsche-gesetze-mcp
    
  2. Abhängigkeiten installieren: Es wird empfohlen, eine virtuelle Umgebung zu verwenden (z.B. venv oder conda).

    pip install -r mcp/requirements.txt
    

Docker (Empfohlen)

Die Docker-Version klont automatisch das gesamte Bundestag/gesetze Repository (veraltet, nur Demo) in das Image, sodass alle Gesetze sofort lokal verfügbar sind.

  1. Image bauen:

    docker build -t deutsche-gesetze-mcp .
    
  2. Container starten:

    docker run -p 8001:8001 deutsche-gesetze-mcp
    

Datenvorbereitung

Das Projekt enthält im Ordner prepare_data Skripte, um aktuelle Gesetzestexte direkt von www.gesetze-im-internet.de herunterzuladen und für den Server aufzubereiten.

  1. Skript ausführen:
    cd prepare_data
    ./prepare_gesetze_im_internet.sh
    
    Dies lädt die Gesetze herunter, entpackt sie und konvertiert sie in das benötigte Format.

Konfiguration

Die Konfiguration erfolgt über Umgebungsvariablen oder eine .env Datei. Die Einstellungen werden in mcp/config.py definiert.

Variable Beschreibung Standardwert
LOAD_FROM_FOLDER Pfad zu einem lokalen Ordner mit Gesetzes-Markdown-Dateien. /app/gesetze/
LOAD_FROM_GITHUB JSON-Liste von Gesetzeskürzeln, die von GitHub geladen werden sollen (überschreibt LOAD_FROM_FOLDER, wenn gesetzt). None
MIN_PARAGRAPHS Minimale Anzahl an Paragraphen, damit ein Gesetz geladen wird. 5

Beispiel .env Datei: Um Gesetze direkt von GitHub zu laden (z.B. BGB und StGB):

LOAD_FROM_GITHUB='["BGB", "StGB"]'
LOAD_FROM_FOLDER=

Um lokale Dateien zu nutzen (angenommen, sie liegen in ./gesetze):

LOAD_FROM_FOLDER=./gesetze

Nutzung

Server starten

Der Server kann direkt über Python gestartet werden. Er nutzt FastMCP und stellt standardmäßig einen HTTP-Server auf Port 8001 bereit.

python mcp/server.py

Tests

Die Tests können mit pytest ausgeführt werden. Um die Tests zu starten, muss der mcp Ordner im Python-Pfad liegen:

PYTHONPATH=mcp python3 -m pytest mcp/tests

Verfügbare Tools

Der Server stellt folgende MCP-Tools zur Verfügung:

  1. get_lawlibrary(law: str | None)

    • Listet verfügbare Gesetze auf.
    • Parameter law: (Optional) Suchbegriff oder Kürzel, um die Liste zu filtern (z.B. "BGB").
    • Gibt eine JSON-Liste der gefundenen Gesetze zurück.
  2. get_paragraph(law: str, paragraph: str)

    • Ruft den Inhalt eines Paragraphen ab.
    • Parameter law: Das Kürzel des Gesetzes (z.B. "BGB").
    • Parameter paragraph: Die Nummer des Paragraphen (z.B. "1", "14a").
    • Gibt den Text des Paragraphen (und ggf. spezifische Absätze) zurück.
  3. search_laws(query: str, laws: list[str] | None)

    • Volltextsuche über alle oder ausgewählte Gesetze.
    • Parameter query: Der Suchbegriff (z.B. "Schadensersatz", "Kündigung").
    • Parameter laws: (Optional) Liste von Gesetzeskürzeln zur Einschränkung der Suche (z.B. ["BGB", "HGB"]).
    • Gibt eine Liste von Treffern mit Paragraphen und Textausschnitten zurück.

Verwendung mit MCP-Clients

Dieser Server kann mit jedem MCP-kompatiblen Client verbunden werden. Da er als HTTP-Server (SSE) läuft, muss der Client entsprechend konfiguriert werden, um sich mit http://localhost:8001/mcp zu verbinden.

Ein Beispiel für die Integration in einen KI-Agenten findest du im Ordner google-adk-agent, der das Google Agent Development Kit (ADK) nutzt.

Datenformat

Der Parser erwartet Markdown-Dateien, wie sie im Projekt bundestag/gesetze (veraltet, nur Demo) verwendet werden. Die Struktur sieht typischerweise so aus:

---
Title: Bürgerliches Gesetzbuch
jurabk: BGB
---

# § 1 Beginn der Rechtsfähigkeit

Die Rechtsfähigkeit des Menschen beginnt mit der Vollendung der Geburt.
...

Lizenz

Siehe LICENSE Datei.

Metadata

Release files for iflow-mcp_floleuerer-deutsche-gesetze-mcp 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_floleuerer-deutsche-gesetze-mcp 0.1.3
File Size Uploaded
iflow_mcp_floleuerer_deutsche_gesetze_mcp-0.1.3.tar.gz 553.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_floleuerer-deutsche-gesetze-mcp 0.1.3
File Interpreter ABI Platform
iflow_mcp_floleuerer_deutsche_gesetze_mcp-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 566.9 kB

Release files / iflow_mcp_floleuerer_deutsche_gesetze_mcp-0.1.3.tar.gz

Download URL iflow_mcp_floleuerer_deutsche_gesetze_mcp-0.1.3.tar.gz
Size 553.2 kB
Tags Source
SHA-256 checksum
How to use checksums
297170912789c5268946582cb12c5973dcf75f02b229ecd2a536597bf1663aa3
BLAKE2b-256 checksum
How to use checksums
f8619e261584e6408be3fc600a01355866b2379b69b6d28813e7934bd559841e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_floleuerer_deutsche_gesetze_mcp-0.1.3-py3-none-any.whl

Download URL iflow_mcp_floleuerer_deutsche_gesetze_mcp-0.1.3-py3-none-any.whl
Size 13.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a8dab1bdc9d5cb6732059756a73581a4a0d02c5bd72b2e3c23fb474d9840b6d
BLAKE2b-256 checksum
How to use checksums
262c73e321753a3fa8b093d8eb94a9b04f828b5c97024387c753ad992408c426
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page