Skip to content
Agentmart
Submit a tool

nu:legal Deutsches Recht

German federal and Land statutes plus court decisions for agents.

Connector by nulegal.euOfficial · Domain verified by the MCP Registry

IndexedAGPL-3.0Remote (HTTP)★ 1
Write a review

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/nulegal-eu-recht

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://recht.nulegal.eu/v1/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
9 read · 0 write · 0 deleteRead-only
Secrets
None asked for
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 9

From the running server's own tool list (tools/list) on Oct 25, 2026.

Read 9 · Look things up without changing anything.

  • getChanges
  • getCoverage
  • getNorm
  • listCasePassages
  • listCitedAuthorities
  • listCitingDecisions
  • listNormVersions
  • resolveIdentifiers
  • search

Network hosts it talks to 1

  • recht.nulegal.eu · found in remote endpoint, install command

Tools (9)

As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • getChangesRecent changesread-only

    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 date. The window is the last 120 days; the law's own Änderungsverlauf goes further back.

  • getCoverageCorpus coverageread-only

    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-archive floor, the federal scope of the citation graph, what a version date actually means, and why source windows differ. Use it to tell `outside_coverage` from `not_in_corpus`. They are different answers and this API never collapses them.

  • getNormGet statute textread-only

    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 letter suffix and no § or Art. ('622', '823', '3a', '83'). Aliases resolve, and CASE IS READ: 'LwG' is the federal Landwirtschaftsgesetz while 'LWG' is a Land statute (Bayern's Landeswahlgesetz, NRW's Landeswassergesetz), so write the abbreviation the way your citation writes it. A spelling that matc…

  • listCasePassagesList case passagesread-only

    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 derived per decision — only 'native_numbering' means our anchor and the printed number provably coincide, so pin-cite a Randnummer only when you see that value. `amtliche_seite` is null everywhere: our texts carry no page breaks, so a BVerfGE-style page pin cannot be produced honestly. SIZE. Long decis…

  • listCitedAuthoritiesList cited authoritiesread-only

    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 a wrong 'aufgegeben' in a brief is worse than no label at all. Read the citing passage yourself with `listCasePassages`. A decision we can prove exists but do not hold answers `known_missing`, with the decisions that attest it — not a 404. LANGUAGES (EU decisions). For a decision of the Court of …

  • listCitingDecisionsList citing decisionsread-only

    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 decisions the first ten can be almost all CJEU, and the German courts appear only further down. If `total` exceeds what you read, page on with `offset` (`pagination.next_offset`) before concluding anything about national case law. NEWEST FIRST: pass `sort: "recent"` when the question is about current…

  • listNormVersionsList statute versionsread-only

    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_note`. `at_archive_floor: true` marks the version that was current when mirroring began: its date is a floor, not an amendment, and earlier amendments exist that are named in the law's Änderungsverlauf (linked as `amendment_history_url`) but whose text is not held. There is no diff tool: fetch two v…

  • resolveIdentifiersResolve legal citationsread-only

    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 and the date are used to disambiguate. An Aktenzeichen is unique per court, not nationwide, and 21,021 dockets in this corpus are held by more than one decision, so 'OLG Bamberg, 4 U 120/24' resolves to Bamberg's decision where the bare '4 U 120/24' is ambiguous or lands on another court's. Where t…

  • searchSearch German lawread-only

    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 that governs it: 'Verzugspauschale' matches no provision (§ 288 BGB says 'Pauschale in Höhe von 40 Euro') while 184 decisions use the word. scope='norms' alone will read as 'nothing here' in exactly those cases. CROSS-LAND COMPARISON: a single query returns the parallel provisions of the Bund and of …

Signals

Stars
1
Forks
0
Open issues
1
Last commit
Oct 23, 2026 (5 days ago)
Last release
Oct 23, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
eu.nulegal/recht
Version
1.0.3
Auth
Auth not stated
License
AGPL-3.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from nulegal.eu

Cite this page

nu:legal Deutsches Recht MCP server. Agent Mart. https://agentmart.dev/connectors/nulegal-eu-recht (last updated 2026-10-24)