Deutsche Gesetze MCP
MCP Server für Deutsche Gesetzestexte
Installation
npx deutsche-gesetze-mcpAsk AI about Deutsche Gesetze MCP
Powered by Claude · Grounded in docs
I know everything about Deutsche Gesetze MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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
-
Repository klonen:
git clone https://github.com/floleuerer/deutsche-gesetze-mcp.git cd deutsche-gesetze-mcp -
Abhängigkeiten installieren: Es wird empfohlen, eine virtuelle Umgebung zu verwenden (z.B.
venvoderconda).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.
-
Image bauen:
docker build -t deutsche-gesetze-mcp . -
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.
- Skript ausführen:
Dies lädt die Gesetze herunter, entpackt sie und konvertiert sie in das benötigte Format.cd prepare_data ./prepare_gesetze_im_internet.sh
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:
-
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.
-
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.
-
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.
