German Law MCP

German Law MCP

Provides read-only access to current German federal law, supporting legislation search, provision retrieval, and citation handling.

Category
Visit Server

README

German Law MCP

Ein selbst hostbarer, read-only MCP-Server für aktuelles deutsches Bundesrecht. Der Server importiert einen datierten Snapshot aus QuantLaw/gesetze-im-internet, speichert die strukturierte Fassung in PostgreSQL und erzeugt daraus einen kleinen SQLite-Leseindex für die MCP-Abfragen.

Kein Rechtsrat: Die Ergebnisse können unvollständig, veraltet oder durch Parsingfehler verfälscht sein. Für verbindliche Fassungen immer die amtliche Veröffentlichung und qualifizierte Rechtsberatung heranziehen.

Aktueller Umfang

Der Community-Server stellt acht read-only Tools bereit:

  • search_legislation – Volltext- und Zitationssuche
  • get_provision – einzelne Norm nach Gesetz/Artikel oder Ergebnis-ID
  • parse_citation und format_citation – deutsche Zitate zerlegen/normalisieren
  • validate_citation – Zitat gegen den importierten Bestand prüfen
  • check_currency – Aktualität relativ zum importierten Snapshot einschätzen
  • list_sources und about – Herkunft, Stand und Serverinformationen

Bewusst nicht enthalten sind derzeit Rechtsprechung, Gesetzesmaterialien, historische Norm-Diffs, EU-Zuordnungen oder semantische Suche.

Architektur und transparente Herkunft

QuantLaw Snapshot (XML, datierter Git-Tag)
                  │
                  ▼
      moderner GII-XML-Importer
                  │
                  ▼
      PostgreSQL (kanonische Fassung)
                  │
                  ▼
     reproduzierbarer SQLite-Export
                  │
                  ▼
       MCP Streamable HTTP /mcp

PostgreSQL ist die lokale Datenwahrheit. SQLite ist nur ein wegwerfbares, read-only Suchmodell für die fortgeführte Ansvar-MCP-Schicht. Diese Trennung ermöglicht einen kleinen Runtime-Container, ohne Herkunft oder Struktur der Daten zu verlieren.

Qdrant, Embeddings und andere Vektordatenbanken werden in diesem Stand nicht verwendet. Eine spätere semantische Suche wäre ein optionaler Index und würde PostgreSQL nicht als Quelle ersetzen.

Verwendete Vorarbeiten:

Projekt Verwendung Lizenz
Ansvar-Systems/German-law-mcp MCP-Vertrag, Zitationslogik, SQLite-Leseschicht Apache-2.0
nfelger/gesetze-aus-dem-internet Vorbild für relationales Modell und GII-Parsing Apache-2.0
QuantLaw/gesetze-im-internet datierte Rohdaten-Snapshots BSD-3-Clause für Repository-Code; Datenherkunft separat beachten
QuantLaw/legal-data-preprocessing Vorbild für Snapshot-Verarbeitung BSD-2-Clause

Die konkreten Hinweise stehen zusätzlich in NOTICE. Dieses Repository enthält keine fertig gebaute Gesetzesdatenbank. Jeder Betreiber erzeugt den Bestand reproduzierbar aus einem explizit gewählten Snapshot.

Schnellstart mit Docker Compose

  1. Einen existierenden YYYY-MM-DD-Tag im QuantLaw-Repository auswählen.
  2. Konfiguration anlegen: cp .env.example .env
  3. Mindestens diese Variablen setzen:
POSTGRES_PASSWORD=<langes-zufälliges-passwort>
QUANTLAW_SNAPSHOT=2026-07-16
MCP_BEARER_TOKEN=<langes-zufälliges-token>
ALLOWED_ORIGINS=https://claude.ai,https://chatgpt.com

Danach:

docker compose up --build

Der einmalige Import kann je nach Snapshot und Verbindung dauern. Anschließend:

  • Health: http://localhost:3000/health
  • MCP: http://localhost:3000/mcp

Neuen Snapshot einspielen:

docker compose run --rm ingest
docker compose run --rm export
docker compose restart mcp

Zugriffsschutz

Wenn MCP_BEARER_TOKEN gesetzt ist, verlangt /mcp:

Authorization: Bearer <token>

Browser-Anfragen mit Origin werden zusätzlich nur akzeptiert, wenn der Ursprung in ALLOWED_ORIGINS steht. Ohne Bearer-Token ist der Server ungeschützt; das ist ausschließlich für lokale Entwicklung gedacht.

Beispiel für Claude Code:

claude mcp add --transport http german-law https://recht.example.de/mcp \
  --header "Authorization: Bearer $GERMAN_LAW_MCP_TOKEN"

Claude.ai, ChatGPT und andere gehostete Connector-Oberflächen unterstützen statische Bearer-Tokens nicht in jeder Konfiguration. Für mehrere Nutzer oder öffentliche Connector-Registrierung ist OAuth 2.1 mit Protected Resource Metadata der vorgesehene nächste Schritt. Der Bearer-Modus ist für den privaten Grünerator und kontrollierte Clients gedacht.

Coolify

  • Ressource als Docker-Compose-Projekt aus diesem Repository anlegen (/docker-compose.yaml).
  • Variablen aus .env.example in Coolify setzen; Secrets nicht committen.
  • Die Traefik-Regeln in docker-compose.yaml routen die dort aufgeführten Hosts ausschließlich auf Dienst mcp, Port 3000.
  • Healthcheck: /health; MCP-Pfad: /mcp.
  • PostgreSQL- und mcp-data-Volumes persistent halten.
  • ingest und export sind als absichtliche Einmal-Jobs mit Coolifys exclude_from_hc markiert; nur postgres und mcp müssen dauerhaft laufen.

Das Repository lädt beim ersten Lauf den gewählten QuantLaw-Tag. Ein Tag statt latest macht Build und Datenstand prüfbar und wiederholbar.

Lokale Entwicklung

Node.js 20+ und Python 3.13 werden unterstützt.

npm ci
npm run validate
python -m unittest discover -s pipeline/tests

Parser mit lokal vorhandenem QuantLaw-Datenzweig testen:

python -m pipeline.import_quantlaw \
  --repo-dir /path/to/gesetze-im-internet \
  --snapshot 2026-07-16 \
  --limit 10

Daten- und Nutzungsbedingungen

  • Amtliche Texte werden von Gesetze im Internet veröffentlicht.
  • Der Abruf erfolgt über das unabhängige QuantLaw-Archiv. Betreiber müssen die Nutzungsbedingungen, Quellenangaben, Abruflast und Rechte möglicher Anlagen selbst prüfen und einhalten.
  • Das Projekt verspricht keine Vollständigkeit, Echtheit oder tagesaktuelle Rechtslage. Der importierte Snapshot wird in Dokument-Metadaten mitgeführt.
  • Der Server ist für Recherche und technische Integration gedacht, nicht für automatisierte Rechtsentscheidungen ohne menschliche Prüfung.

Lizenz

Servercode: Apache License 2.0. Hinweise auf übernommene und inspirierende Projekte: NOTICE. Quelltexte und Datensätze behalten ihre jeweiligen Rechte und Bedingungen; die Apache-2.0-Lizenz dieses Servers beansprucht keine Rechte an den amtlichen oder archivierten Inhalten.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured