legal-research-mcp
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., "@legal-research-mcpGet current text of § 20 GewStG and trace its amendments"
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.
Legal Research MCP 0.3.3-dev
0.3.3-dev hardens positive BFH get_case retrieval by replaying the actual live decision-search form state using label-based semantic field discovery and preserved cookies. The target-case evidence gate remains fail-closed unless the official target decision is opened.
Legal Research MCP MVP 0.3.2-dev - Render Free
Render-ready read-only research MCP for the planned legal-tax-advisor-de v2.3.0 research layer.
What 0.3.2-dev changes
0.3.2-dev is a narrow follow-up to the positive BFH get_case retrieval patch. The structured
fail-closed evidence gate introduced in 0.3.0-dev remains unchanged. After deployment of 0.3.1-dev,
Render showed that the official BFH page could be retrieved without a parseable decision-search
<form>, causing BFH_SEARCH_FORM_NOT_FOUND before any search submission.
still prefers replaying the live BFH TYPO3/Extbase form state when available;
if the search form is not parseable, uses a bounded direct-GET fallback with the official visible field names;
tries case number + date, case number only, then quoted case number in
Suchbegriff;opens the positive path only when an exact official result hit is found;
never converts an unverified direct-fallback no-hit into definitive
not_found;returns structured transport/search diagnostics while preserving the closed evidence gate on failure;
keeps the pre-2010 closed gate and all other Legal Research tools unchanged.
Related MCP server: de-eli-mcp
Tools
search_primary_sources
Controlled discovery for a small validated legislation registry (KStG, EStG, AO, GewStG). Discovery only.
get_norm
Retrieves the current official consolidated provision from gesetze-im-internet.de and returns structure/evidence metadata.
trace_norm_amendments
Safe amendment-history connectivity implementation. It may expose a whole-statute amendment header as a discovery lead but deliberately remains partial/unknown until a provision-specific chain resolver is implemented.
get_case
Mandatory target-case retrieval/evidence gate for named BFH decisions. If
data.content_gate.target_case_content_allowed=false, no facts, holding, reasons, headnotes,
quotes, paraphrases, or attributed legal propositions may be stated about the target case.
See docs/case-law-evidence-gate.md.
get_official_document_text
Opens an identified official document and verifies an exact passage.
Public MCP inputs (all required strings):
document_ref: supported official document ID or allowlisted official HTTPS URL;locator: targeted location such asArtikel 30 Nummer 1;query: exact phrase to verify such as§ 8b Absatz 6 Satz 2.
Supported document-id shortcuts include:
BR-Drs. 5/26-> Bundesrat document server PDF;BT-Drs. 21/3343-> Bundestag document server PDF;BGBl. 2026 I Nr. 33-> officialrecht.bund.depromulgation page.
Example amendment verification target:
get_official_document_text(
document_ref="BR-Drs. 5/26",
locator="Artikel 30 Nummer 1",
query="§ 8b Absatz 6 Satz 2"
)A successful normalized query match returns coverage_status=complete and full_checked passage evidence. A locator-only result is navigation evidence and must not be treated as proof of the requested amendment phrase.
Public schema target
The Copilot-facing contract is intentionally simple:
{
"type": "object",
"properties": {
"document_ref": {"type": "string"},
"locator": {"type": "string"},
"query": {"type": "string"}
},
"required": ["document_ref", "locator", "query"]
}SSRF / download safety
get_official_document_text remains deliberately constrained:
HTTPS only;
exact official-host allowlist;
every redirect hop is revalidated;
credentials and non-standard ports are rejected;
download size capped at 20 MB;
PDF text extraction only, no JavaScript/browser execution;
read-only requests only.
Current allowlisted families include the official Bundestag/Bundesrat document server, recht.bund.de, gesetze-im-internet.de, Bundestag/Bundesrat web hosts, the Federal Ministry of Finance website, and the Bundesfinanzhof website.
Render deployment
Use the included render.yaml Blueprint. The service remains configured as:
Web Service;
Docker runtime;
Free plan;
Frankfurt region;
/healthhealth check;dynamic binding to Render's
PORT;MCP endpoint at
/mcp;explicit Host allowlisting from
RENDER_EXTERNAL_HOSTNAME.
Detailed steps: docs/render-free-deploy.md.
Local setup
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
python -m pytest -q
uvicorn app:app --reload --port 8080Local endpoints:
Health:
http://localhost:8080/healthMCP:
http://localhost:8080/mcp
Still not implemented
historical statutory version resolver;
complete provision-specific amendment-chain resolver;
automatic discovery of every Bundesgesetzblatt/Bundestag/Bundesrat document;
broader multi-court case-law retrieval and citation graph;
comprehensive BMF guidance retrieval;
production authentication.
DEV security boundary
The Render Free deployment remains intentionally unauthenticated for DEV testing. Do not publish the Copilot agent and do not send confidential client/matter facts through the endpoint.
Free Render Web Services can spin down after inactivity and are not a production target.
0.3.1 -> 0.3.2 upgrade
Apply the
0.3.2-devrepository update and push to the branch Render deploys.Verify
/healthreturns version0.3.2-dev.No agent-skill change is required.
Directly test
get_casewithBFH,IX R 12/22,2023-05-03.Require an open gate before resuming RC2 release testing.
Re-run
VIII R 10/96,1998-07-07as the negative closed-gate control.
See UPGRADE-0.3.2-DEV.md, docs/bfh-positive-retrieval.md, and
docs/case-law-evidence-gate.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
XRechnung and ZUGFeRD e-invoicing (EN 16931): create, validate, check Leitweg-IDs, German VAT.
Search 26 German/EU statutes free — then scan any website against 33 compliance modules.
Search Swiss federal legislation: laws, articles, amendments via the Fedlex SPARQL endpoint.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP server for accessing and searching German federal law documents from gesetze-im-internet.de. Provides tools to retrieve specific paragraphs, perform full-text searches, and list available laws.10MIT
- AlicenseAqualityAmaintenanceSearches and retrieves German federal legislation from NeuRIS, the official legal information portal, providing verifiable ELI identifiers and German citations.1567 PyPI2Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides LLM-friendly access to German federal legislation via the NeuRIS API, enabling tool-based retrieval of laws, norms, and statutory text.8 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to current German federal law, supporting legislation search, provision retrieval, and citation handling.Apache 2.0