de-eli-mcp
This server provides comprehensive access to German legal information through multiple official and community sources, with verifiable citations.
Legislation (NeuRIS)
Search federal legislation by keyword, ELI identifier, and date ranges
Fetch act metadata and retrieve full texts in HTML or XML (LegalDocML.de) format
List publication organs (BGBl I/II, Bundesanzeiger) and monitor recent legislative changes
Case Law – NeuRIS Beta
Search federal court decisions by term and date range
Fetch decision metadata and full texts in HTML or XML format
Case Law – Rechtsprechung-im-Internet (RII)
Search decisions from BVerfG, BGH, BAG, BFH, BVerwG, BSG, and BPatG via the official BMJ/juris aggregator
Filter by court, docket number (Aktenzeichen), and date range; retrieve full texts including ECLI, Leitsatz, Tenor, and full content
Case Law – Open Legal Data (OLDP)
Search ~424k decisions from ~1,100 courts at all levels across all 16 German Länder, including state and lower courts
Full-text search with filters for court, docket number, and date range; retrieve full texts by OLDP id or slug
Parliamentary Documents – Bundestag DIP
Search Drucksachen (~287k), plenary transcripts (~5,800), and legislative procedures/Vorgänge (~335k)
Filter by title, document number, chamber (BT/BR), electoral term, procedure type, and date range
Fetch individual documents including full text for legislative history research (Gesetzesbegründungen)
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@de-eli-mcp search for the Bundesdatenschutzgesetz"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
de-eli-mcp
Install (one command)
As a Claude plugin (Claude Code or the desktop app, needs uv); see plugin/README.md for what it sends and stores:
/plugin marketplace add matematicsolutions/de-eli-mcp
/plugin install de-eli-mcp@de-eli-mcpAs a standalone server:
Published on PyPI + MCP Registry (io.github.matematicsolutions/de-eli-mcp). Run without cloning:
uvx de-eli-mcpConfigure your MCP client (stdio):
{ "mcpServers": { "de-eli-mcp": { "command": "uvx", "args": ["de-eli-mcp"] } } }Windows 11 with Smart App Control
Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe
and the de-eli-mcp.exe launcher that pip writes at install time. The python.exe and
py.exe from the python.org installer are signed by the Python Software
Foundation, so running the module through the interpreter works:
python -m pip install de-eli-mcp
python -m de_eli_mcppip.exe is blocked for the same reason, so install with python -m pip, not
pip install. If python is not on PATH, use the Windows launcher: py -3 -m de_eli_mcp.
{ "mcpServers": { "de-eli-mcp": { "command": "python", "args": ["-m", "de_eli_mcp"] } } }Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.
Building from source: see Install.
An MCP server for German law: NeuRIS (rechtsinformationen.bund.de) for federal
legislation, three case-law sources - NeuRIS's beta case-law slice, the complete
federal-courts aggregator rechtsprechung-im-internet.de (RII, official BMJ/juris
portal) for BVerfG, BGH, BAG, BFH, BVerwG, BSG (+ BPatG), and Open Legal Data
(de.openlegaldata.io, ~424k decisions from ~1 100 courts of ALL levels, including
the state courts of all 16 Laender, with full-text search) - plus the Bundestag's
DIP (dip.bundestag.de) for parliamentary documents and legislative history
(~287k Drucksachen with full text, plenary transcripts, ~335k legislative procedures,
Bundestag AND Bundesrat).
Part of the MateMatic eu-legal-mcp production line: the German counterpart of the
Polish sejm-eli-mcp, built on the same architecture and citation contract against the
German source.
Beta source (legislation +
de_case_search). NeuRIS is an official but beta service; its dataset is not yet complete. Every response carries adataset_notesaying so.Complete source (case law).
de_rii_case_search/de_rii_get_case_textquery rechtsprechung-im-internet.de directly. Per an independent audit (Legal Data Hunter,worldwidelaw/legal-sources), RII's coverage of BVerfG, BGH, BAG, BFH, BVerwG and BSG is markedstatus: complete- unlike NeuRIS's/v1/rechtsprechung, which only carries a small beta slice (and can drop fields such aseclifor the very same decision RII serves with a full ECLI - see BAG decisionKARE600069049/ECLI:DE:BAG:2024:...as a live example). Prefer the RII tools for these six courts.State courts + full-text search (Open Legal Data).
de_oldp_case_search/de_oldp_get_casequery de.openlegaldata.io - a community open-data aggregator (Open Knowledge Foundation ecosystem, BMBF Prototypefund) of ~424k decisions from ~1 100 German courts at every level, including the state courts of all 16 Laender. It is NOT an official government service and does not claim completeness - for the six federal supreme courts prefer the RII tools; use OLDP for state case law and for full-text hunting (no other source here searches decision content).Legislative history (Bundestag DIP).
de_dip_search/de_dip_get_documentquery the parliament's official DIP API - Drucksachen (bills, motions, committee reports, government answers - the home of Gesetzesbegruendungen), plenary transcripts and legislative procedures, for Bundestag and Bundesrat. The Bundestag publishes a public API key on its help page (the current one is valid until end of May 2027 and ships as the default); setDE_DIP_API_KEYwhen it rotates or to use your own key.Licence. German official works - statutes, ordinances, court decisions and official headnotes - are outside copyright under § 5 UrhG (gemeinfrei), which is the standard basis for reusing German legal data. NeuRIS is operated by the BMJV / DigitalService GmbH; RII is operated by the BMJ (juris GmbH). Neither publishes a separate API terms or key requirement. Open Legal Data's database is under ODbL v1.0 (the decisions themselves are gemeinfrei); DIP data is under Data licence Germany - attribution - 2.0 (dl-de/by-2-0). This connector only relays that public content, with attribution and a
source_url. Caveat: NeuRIS is in test phase; re-check the terms at general availability. (This is a practitioner's read, not formal legal advice.)
Related MCP server: German Law MCP
The tools
Tool | What it does |
| Search legislation by term, ELI and date ( |
| Fetch act metadata by ELI. |
| Fetch the full text ( |
| List the publication organs (BGBl I/II, Bundesanzeiger). |
| Acts published since a date, newest-first. |
| NeuRIS case-law beta slice ( |
| Search BVerfG/BGH/BAG/BFH/BVerwG/BSG/BPatG decisions via RII's master TOC (court, Aktenzeichen substring, date range). |
| Full text of one RII decision by |
| Search Open Legal Data - 423 944 decisions from 1 119 courts at all levels (verified live 2026-07-08), the only tool here covering state courts and offering full-text search ( |
| Full decision text (HTML) by OLDP id or slug, with ECLI when the source carries one. |
| Search the Bundestag DIP - Drucksachen (287 327), Plenarprotokolle (5 789), Vorgaenge (334 524); filters |
| One DIP entity by id; the |
| Declare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback. |
Every response carries the contract: eli_uri (ELI e.g. eli/bund/bgbl-1/2017/s2097/2025-01-01/1/deu,
or ECLI for RII case law e.g. ECLI:DE:BVerfG:2024:rk20241120.1bvr226823),
human_readable_citation (e.g. BDSG (BGBl I, 2017 2097) or
BVerfG, Kammerbeschluss vom 20.11.2024 - 1 BvR 2268/23), and source_url.
Install
cd de-eli-mcp
pip install -e .Configure (Claude Code / any MCP client)
Copy .mcp.json.example and adjust if needed:
{
"mcpServers": {
"de-eli-mcp": { "command": "de-eli-mcp" }
}
}Environment:
DE_ELI_BASE_URL- defaulthttps://testphase.rechtsinformationen.bund.deDE_RII_BASE_URL- defaulthttps://www.rechtsprechung-im-internet.deDE_OLDP_BASE_URL- defaulthttps://de.openlegaldata.ioDE_DIP_BASE_URL- defaulthttps://search.dip.bundestag.deDE_DIP_API_KEY- default: the public key the Bundestag documents ondip.bundestag.de/über-dip/hilfe/api(valid until end of May 2027; rotates ~yearly)DE_ELI_CACHE_DIR- default~/.matematic/cache/de-eliDE_ELI_AUDIT_DIR- default~/.matematic/audit
NeuRIS, RII and Open Legal Data are keyless. DIP needs an API key, but the Bundestag publishes a public one (shipped as the default) - zero setup either way.
Governance
Public data only - read-only against public sources; no client data leaves the machine beyond search parameters.
Audit log - every tool call appends one JSON line to
~/.matematic/audit/de-eli-mcp.jsonl.Network - the server talks to the four public sources above (NeuRIS, RII, Open Legal Data, DIP) and the local filesystem. Once, on first use, it also fetches a small configuration file (
de-runtime.json.gz, updated source addresses) from this repository's GitHub Releases. That request carries no query content; GitHub's download counter for the file is the only usage signal we see.DE_ELI_RUNTIME_URL=""turns it off; the Claude plugin ships with it off. No LLM provider, no other telemetry.Verifiable citations - every response is independently checkable via
source_url.
See CONSTITUTION.md (the binding rules) and DISCOVERY.md (the NeuRIS API map).
Tests
pip install -e ".[dev]"
# offline (fixtures)
pytest tests/test_instructions_drift.py tests/test_rii_client.py tests/test_oldp_client.py tests/test_dip_client.py -v
# live smokes (NeuRIS + RII + Open Legal Data + DIP)
pytest tests/test_smoke.py -vLicence
Apache-2.0. © Matematic Solutions / Wieslaw Mazur.
Available Tools
15 toolsde_case_searchBRead-onlyIdempotent
Search German federal court decisions in NeuRIS.
Maps to GET /v1/case-law. Each item gets ecli,
human_readable_citation, source_url.
Inputs: query (required). Returns: Result of ``de_case_search``.
de_coverageARead-onlyIdempotent
Declare what this connector covers, how it is sourced, and what it does NOT cover.
Call this before telling a user that the law "does not contain" something, and whenever a search comes back empty: the absence may be a gap in this connector rather than in the law. Every gap carries a fallback saying where to look instead.
Returns:
Coverage with families, an as-of note, and a non-empty list of known gaps.
Inputs: no named parameters. Returns: What this connector covers, how it is sourced, and what it does not cover.
de_dip_get_documentARead-onlyIdempotent
Fetch one entity from the Bundestag DIP by id.
Inputs: doc_id (required), resource (required). Returns: Result of ``de_dip_get_document``.
de_dip_searchBRead-onlyIdempotent
Search the Bundestag DIP - Germany's official parliamentary documentation.
Covers Drucksachen (bills, motions, reports, government answers), plenary
transcripts and legislative procedures of Bundestag and Bundesrat. Legislative
history (Gesetzesbegruendungen) is a standard aid of German statutory
interpretation. Uses the documented public API key by default (rotates ~yearly;
override with DE_DIP_API_KEY).
Inputs: query (required). Returns: Result of ``de_dip_search``.
de_get_actBRead-onlyIdempotent
Fetch act metadata from NeuRIS by ELI.
Inputs: eli (required). Returns: Full legislation record - GET /v1/legislation/{eli}. Keeps the structural tree…
de_get_decisionARead-onlyIdempotent
Fetch court-decision metadata from NeuRIS by document number.
Inputs: document_number (required). Returns: Full court-decision metadata - GET /v1/case-law/{documentNumber}.
de_get_decision_textARead-onlyIdempotent
Fetch the full text of a court decision.
Resolves the manifestation from the decision's encoding array and downloads it.
Inputs: document_number (required), format. Returns: Result of ``de_get_decision_text``.
de_get_textARead-onlyIdempotent
Fetch the full text of an act.
Resolves the manifestation from the act's encoding array (the contentUrl
for the requested format) and downloads it. Format is selected by file
extension upstream, not by Accept header.
Inputs: eli (required), format. Returns: Result of ``de_get_text``.
de_list_publishersARead-onlyIdempotent
List the German publication organs (ELI agent codes).
NeuRIS has no publisher-dictionary endpoint, so this is derived from the ELI
agent slot (BGBl I/II, Bundesanzeiger). Non-exhaustive.
Returns:
List of Publisher (code, name, note).
Inputs: no named parameters. Returns: result
de_oldp_case_searchARead-onlyIdempotent
Search German case law across ALL court levels via Open Legal Data.
Open Legal Data (de.openlegaldata.io) is a community open-data aggregator (~424k decisions from ~1 100 courts at check). It is the only source here that covers STATE courts and the only one with full-text search. Database ODbL v1.0; the decisions themselves are gemeinfrei (§ 5 UrhG). Not an official service - prefer the RII tools for the six federal supreme/constitutional courts.
Inputs: query (required). Returns: Result of ``de_oldp_case_search``.
de_oldp_get_caseBRead-onlyIdempotent
Fetch the full text of one decision from Open Legal Data.
Inputs: case_ref (required). Returns: Result of ``de_oldp_get_case``.
de_recent_changesARead-onlyIdempotent
Acts published since since_iso (ISO 8601), newest-first.
Maps to GET /v1/legislation?sort=date&dateFrom=.... Useful for a
law-monitoring feature.
Inputs: since_iso (required), limit. Returns: result
de_rii_case_searchARead-onlyIdempotent
Search German federal court decisions via rechtsprechung-im-internet.de (RII).
RII is the official BMJ/juris case-law aggregator and, per the independent Legal
Data Hunter audit, is complete for BVerfG, BGH, BAG, BFH, BVerwG, BSG (+ BPatG) -
unlike NeuRIS's /v1/case-law, which is a small beta slice. Filters over the master
table of contents (court, Aktenzeichen substring, date range); there is no full-text
search (the TOC carries no decision text).
Inputs: query (required). Returns: Result of ``de_rii_case_search``.
de_rii_get_case_textBRead-onlyIdempotent
Fetch the full text of a decision from rechtsprechung-im-internet.de (RII).
Inputs: doc_id (required). Returns: Result of ``de_rii_get_case_text``.
de_searchARead-onlyIdempotent
Search German federal legislation in NeuRIS.
Maps to GET /v1/legislation. Each item gets eli_uri,
human_readable_citation, source_url (per Art. 4 CONSTITUTION).
Inputs: query (required). Returns: Result of ``de_search``.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Tools are mostly distinct by domain and source (legislation, NeuRIS case law, RII, Open Legal Data, DIP, coverage), and descriptions clearly flag source differences. Some ambiguity remains between the multiple court-decision search and full-text retrieval tools, though the prefixes help agents pick correctly.
The de_ prefix and snake_case convention are consistent, and most tools follow an action/object or source/action/object pattern. Deviations like de_recent_changes and de_coverage are noun-style rather than verb-style, causing minor inconsistency.
Fifteen tools is at the upper edge of the ideal range but justifiable for a multi-source legal data connector covering legislation, federal case law via three providers, parliamentary documents, and coverage metadata. A few case-law tools could arguably be consolidated, but none feel redundant.
The set covers the major read-only workflows for German legal research: search and retrieve legislation, search and retrieve case law from multiple complementary sources, monitor recent changes, query parliamentary documents, and fetch individual documents. The explicit de_coverage tool also addresses known data gaps, making the surface unusually complete for its stated purpose.
Maintenance
Related MCP Connectors
German federal statutes and ordinances (Bundesrecht) — search by title or official abbreviation…
German court decisions and statutes with citation checks. OAuth 2.1 or Bearer token.
German and EU legal research with verifiable case law, legislation and legal sources.
Cite German law correctly: verbatim statutes (federal, 16 states, EU), court decisions, legal fees
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides access to the official German Federal Legal Information Portal (rechtsinformationen.bund.de) enabling AI agents to search German federal laws, court decisions, and legal documentation with authoritative citations from official sources.524MIT
- AlicenseNot gradedqualityDmaintenanceProvides LLM-friendly access to German federal legislation via the NeuRIS API, enabling tool-based retrieval of laws, norms, and statutory text.18 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to current German federal law, supporting legislation search, provision retrieval, and citation handling.Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables querying over 6,800 German federal statutes, case law, and legislative preparatory works with verbatim source text. Integrates EU law cross-references and provides citation validation and legal stance building.356 npm23Apache 2.0