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
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 9 |
| Latency | 1958 ms |
| Last checked (UTC) | 2026-10-16T02:45:11.783Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-16T02:45:11.783Z | Healthy | 1958 | |
| 2026-10-14T23:50:48.131Z | Healthy | 3817 |
resolveIdentifiers | Ground 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 |
search | One 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 |
getNorm | The 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 |
listNormVersions | Every 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 |
listCitingDecisions | Incoming 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 |
listCitedAuthorities | Outgoing 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 |
listCasePassages | The 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 |
getChanges | Which 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 |
getCoverage | Corpus 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- |