nu:legal Deutsches Recht

eu.nulegal/recht · v1.0.2 · agents-and-memory

nu:legal Deutsches Recht is healthy: it completed an MCP handshake in 1958 ms and exposes 9 tools.

German federal and Land statutes plus court decisions for agents. Keyless, read-only, CC BY 4.0.

Endpoint: https://recht.nulegal.eu/v1/mcp (streamable-http)

Repository · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count9
Latency1958 ms
Last checked (UTC)2026-10-16T02:45:11.783Z

Health history

Checked (UTC)StatusLatencyError
2026-10-16T02:45:11.783ZHealthy1958
2026-10-14T23:50:48.131ZHealthy3817

Tools (9)

resolveIdentifiersGround a batch of German legal citations against the corpus. Call this BEFORE stating any citation you did not read here. Takes the citation in the form you already hold it — including the court name, the dispositive word and the date a model normally writes around a docket. KEEP THEM IN: the court
searchOne query over BOTH corpora: federal and Land statutes (lexical, with concept pinning) and court decisions (semantic — natural-language questions work well here and are the better shape for case law). Search both unless you have a reason not to. A term of art often does not appear in the statute th
getNormThe text of one provision, by default as clean Markdown — about a tenth the size of the reader page for the same provision, with no navigation, no scripts and no boilerplate. `law` is the abbreviation as a citation writes it ('BGB', 'DSGVO', 'BDSG 2018', 'RVG'); `ref` is the bare number, with any l
listNormVersionsEvery stored version of one provision, newest first, so you can find out which dates `getNorm(as_of=…)` can actually answer before you ask. Each entry carries `first_observed` (the day the text was first seen here — NOT the Inkrafttreten), `valid_to`, `date_precision` and the law-level `amendment_n
listCitingDecisionsIncoming citation edges. Give EITHER `law` + `ref` (which decisions apply this statute provision) OR `case` (which decisions cite this decision) — exactly one of the two. Results are ranked by citation weight, then court tier, then recency. Read the ranking honestly: for a provision with many EU de
listCitedAuthoritiesOutgoing citation edges of one decision: the statute provisions it cites (with how often it cites each — that is the Normenkette, weighted) and the decisions it relies on. `treatment` is null on every edge and stays null. Classifying an edge as gefolgt / abgegrenzt / aufgegeben is unbuilt work, and
listCasePassagesThe full text of one decision, split into its paragraphs, each with a permalink you can cite. `rn` is the Randnummer the COURT printed, read out of the decision's own markup. It is never inferred from position: where a document prints no numbers, `rn` is null and stays null. `anchor_basis` is deriv
getChangesWhich provisions got a new text recently, newest first — the freshness feed, as JSON. Poll it with `since` set to the newest `observed` you have already processed. `observed` is the day the new text was FIRST SEEN here, which is not necessarily the day it came into force. Say so if you report a dat
getCoverageCorpus scope with its holes stated. Call this once when your answer depends on whether an absence is real. Returns totals (laws, provisions, versions, decisions, courts, citation edges), the per-source windows, the count of Aktenzeichen we can prove exist and do not hold, and `limits`: the version-