mcpbeat Sign in

nu:legal Deutsches Recht MCP Server

answering

nu:legal Deutsches Recht is answering right now. Last checked 10 min ago. It exposes 11 tools. Last commit 1 Nov 2026.

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

Uptime history 46 days of history · worst day 93%
46 days agonow
100.0%
Uptime 24h
91 of 91 checks
11
Tools
read from the server
258 ms
Response time
average over 24h
1
Stars
last commit 1 Nov 2026

What changed 64

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 24 September 2026. No other catalogue keeps this.

7 Nov a tool description was rewritten listCitingDecisions
5 Nov a tool description was rewritten listCitingDecisions
4 Nov 2 tools appeared get_lawyer, search_lawyers
4 Nov a tool description was rewritten listCitingDecisions
2 Nov a tool description was rewritten listCitingDecisions
1 Nov 3 tools changed the parameters they ask for6 times that day listCasePassages, listCitedAuthorities, listCitingDecisions
1 Nov 5 tool descriptions were rewritten getNorm, listCasePassages, listCitedAuthorities and 2 more
1 Nov a tool changed version
30 Oct a tool description was rewritten listCitingDecisions
28 Oct 3 tools changed the parameters they ask for listCasePassages, listCitedAuthorities, listCitingDecisions
and 45 more, back to 24 September 2026

Nothing serious here today

Today is the operative word: we check nu:legal Deutsches Recht every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 10 min ago.

run in your terminal
claude mcp add recht --transport http https://recht.nulegal.eu/v1/mcp
Settings → Connectors → Add custom connector, then paste this address
https://recht.nulegal.eu/v1/mcp
~/.codex/config.toml
[mcp_servers.recht]
url = "https://recht.nulegal.eu/v1/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "recht": {
      "url": "https://recht.nulegal.eu/v1/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "recht": {
      "type": "http",
      "url": "https://recht.nulegal.eu/v1/mcp"
    }
  }
}

Available tools 11

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

getchanges
getChanges
What changed here, as JSON. Two ways to read it. The cursor feed (send `kinds`, or `cursor`): everything that changed, oldest first, readable to the end without gaps: decisions added or changed, provisions with a new text (new Fassung, new provision, new law), and new citation links (decision X now cites Y, or decision Y gained a citer). Start with `kinds` (and `since`, default 7 days ago), then pass `next_cursor` back unchanged, with the same filters, until `has_more` is false; keep the cursor and poll with it later. Without those arguments: the provisions that got a new text recently, newest first. Poll it with `since` set to the newest `observed` you have processed. `observed` / `observed_at` is when the change reached this service, not when a court decided or a law came into force. Say so if you report a date. The window is the last 120 days; a provision's own history is listNormVersions.
getcoverage
getCoverage
What the corpus holds and what it does not: laws, decisions, courts, the version archive and the Länder covered. Call it before you report that something does not exist. The answer's `coverage` block is /v1/coverage: statutes per Land (`statutes`: full_text, partial or none), decisions per court level, the citation graph and what every version date is, all from one daily table. Example: {}
getnorm
getNorm
The text of one provision (§ or Article) as Markdown. `law` is the abbreviation ('BGB', 'StGB', 'DSGVO'; Hessen: 'HBO'), `ref` the number ('573', '3a'). For the text on a past date add `as_of` (YYYY-MM-DD; versions are held from 2019-06-10; for EU acts, the EMRK and some Landesrecht from the day their held text applies). The answer says how many versions are held (`versions_held`) and how many decisions cite the provision (`cited_by`). A version date is not always its Inkrafttreten: `date_basis` says what it is. For most federal law it is the day the text was first seen here; for an EU act it is the day its text applies (`applies_from`). With `compare_to` (YYYY-MM-DD) the answer adds `diff`, the word diff to the version stored for that date. DATES: each version carries `date_basis`, `in_force_from` (a date the source states) and `observed_from` (first seen here), each with its `*_basis`; the one we do not hold is null. Example: {"law": "BGB", "ref": "573"}
lawyer
get_lawyer
One lawyer's profile by `id` from search_lawyers: the official register entry with the date it was checked (chamber, admission, firm, office address, phone, fax, e-mail, website, beA id), Fachanwalt titles, contact data, languages, focus areas, opening hours and ratings per platform with the combined score. It holds what the public profile page (`profile_url`) shows, no more. Example: {"id": "8a0fa1b2c3d4e5f6"}
lawyers
search_lawyers
Find lawyers in Germany in the official register of the Bundesrechtsanwaltskammer. Give `city` (a German city or place; English names such as Munich or Cologne work; a 5-digit postcode is searched 10 km around, a smaller place 25 km), `name` (a lawyer or a firm), or both. Narrow with `area`, one of the 24 Fachanwalt areas in German or English ('Arbeitsrecht' or 'employment law', 'Strafrecht' or 'criminal law'), and `language` ('Türkisch' or 'Turkish'). Lawyers holding the Fachanwalt title for the area come first, then distance (postcode and place searches), then the combined rating. No paid placement; the order is no quality judgement. Next page: pass `next_offset` as `offset`. Each result has an `id` for get_lawyer and a `profile_url` to show the user. In-house lawyers (Syndikusrechtsanwälte) and lawyers who left the bar are not listed. Example: {"city": "Köln", "area": "Strafrecht", "language": "Arabic"}
listcasepassages
listCasePassages
Read a decision: its paragraphs, each with the court's Randnummer (`rn`) and a link. `case` takes an ECLI, our decision URL or an Aktenzeichen. Jump to a Randnummer with `around`, page with `offset` and `limit`. The first page also says how often the decision is cited and by whom. The answer carries `card`: typed `headnotes` (Leitsatz apart from Orientierungssatz), the `tenor` where the source marks it, `cited_norms`, `fundstellen`, `cite_as`; never generated text. Example: {"case": "bgh/2017-03-29/viii-zr-45-16", "around": 15, "limit": 5}
listcitedauthorities
listCitedAuthorities
What one decision cites: the provisions (with how often) and the decisions it relies on. Example: {"case": "bgh/2017-03-29/viii-zr-45-16"}
listcitingdecisions
listCitingDecisions
Who cites this: the decisions citing a provision (`law` + `ref`) or a decision (`case`). Ranked by weight; `sort: "recent"` gives the newest first. Each citer links to the Randnummer where it cites. The graph is built over every decision held, federal, Land and EU courts alike, and links federal, EU and Land provisions; it does not link Hessen provisions, which answer `total: 0` with `coverage.complete_for_this_norm: false`: then fall back to `search` on the provision's wording. `coverage` carries the counts for the provision's jurisdiction. Example: {"law": "BGB", "ref": "573", "sort": "recent", "limit": 5} or {"case": "bgh/2017-03-29/viii-zr-45-16"}
listnormversions
listNormVersions
Every stored version of one provision with its dates, newest first. Use it to see when a provision changed, then read a version with getNorm `as_of`. `at_archive_floor` marks a text that was already in force when the archive began. To compare two versions, call `getNorm(compare_to=…)`: the answer's `diff` is the word diff, and each side says what its date is (`date_basis`: `in_force`, `eurlex_consolidation`, `source_stated`, `observed` or `archive_floor`), so a floor date stays visible. DATES: each version carries `date_basis`, `in_force_from` (a date the source states) and `observed_from` (first seen here), each with its `*_basis`; the one we do not hold is null. Example: {"law": "BGB", "ref": "288"}
resolveidentifiers
resolveIdentifiers
Look up German legal citations, up to 100 at once: a § or Article, an Aktenzeichen, an ECLI or a Fundstelle. Use it to find a decision by its docket and to check a citation before you state it. Pass each citation as you hold it, with court and date: they pick the right decision where a docket repeats. It never guesses. A miss is `not_in_corpus`; `attested` / `known_missing` means the decision exists but its text is not held; `date_mismatch` / `court_mismatch` mean your citation is wrong there. A found decision carries `cited_by`: how many decisions cite it, and the top citers with a link to the Randnummer where they do. Example: {"citations": ["BGH, Urteil vom 29.03.2017 - VIII ZR 45/16", "§ 573 Abs. 2 BGB"]}
search
search
Find statutes and decisions on a topic or a question, in one call. Use it when you hold no citation yet. German keywords or a full question both work; decisions are matched by meaning. A decision hit carries `url` (pass it as `case` to the decision tools), `ecli` and `cited_by`; a statute hit carries `slug` and `ref_norm` (pass them as `law` and `ref` to getNorm). Full text is held for Bayern, Brandenburg, Hessen, Nordrhein-Westfalen and Sachsen (see `getCoverage`). Hessen rows (`jurisdiction` 'HE'): pass `law_key` as `law` and `ref_norm` as `ref` to getNorm. Decisions can be filtered by `court`, `court_level`, `state`, `panel`, `from`/`to` and `decision_type`, and sorted with `sort` (relevance, weight: most cited first, newest); the answer counts them in `cases_total`. Example: {"q": "Eigenbedarf Kündigung Härtefall"}

Endpoints

URLTransportStateLatencyChecked
https://recht.nulegal.eu/v1/mcp streamable-http answering 238 ms 10 min ago

Alternatives to nu:legal Deutsches Recht

same job, measured the same way
RegAI Legal MCP (Taiwan)
by regai

Taiwan law and court decisions for your AI: statutes, articles and rulings, read-only.

answering
Legal Ops Depot
by legalopsdepot-www

U.S. law library for AI: court decisions, statutes, court rules and citation checks. Read-only.

answering
Zitierfest
by zitierfest

Cite German law correctly: verbatim statutes (federal, 16 states, EU), court decisions, legal fees

answering
Courtlistener MCP
by mrfentmen

Keyless MCP server for CourtListener: search court opinions and federal dockets (RECAP), case...

139 installs/wk local only
Klaracase
by klaracase

German court decisions and statutes with citation checks. OAuth 2.1 or Bearer token.

answering
Swiss Courts MCP
by malkreide

Swiss court decisions via entscheidsuche.ch, including federal and cantonal courts

155 installs/wk local only
Homedex
by homedex

UK homes for sale and to let from estate agents, plus Land Registry sold prices. Read-only.

8 tools answering
CourtListener
by vaquill-ai

MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.

34 tools answering

nu:legal Deutsches Recht — questions

Answers built from our own checks of this server.

What can nu:legal Deutsches Recht do?
It exposes 11 tools, read directly from the server on our last check. Among them: getChanges, getCoverage, get_lawyer, getNorm, listCasePassages, listCitedAuthorities and 5 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is nu:legal Deutsches Recht working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 258 ms. The bar chart above shows every period we have measured.
How do I connect nu:legal Deutsches Recht?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does nu:legal Deutsches Recht need an API key?
No. nu:legal Deutsches Recht completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 11 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is nu:legal Deutsches Recht?
It answers our handshake in 258 ms on average, which is faster than 53% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is nu:legal Deutsches Recht open source?
The code is open source: it is published under the AGPL-3.0 licence, written in Python, 1 stars on GitHub and 1 open issue. The licence covers the code in the repository, not the hosted service at recht.nulegal.eu, which runs on its operator's own terms.