Skip to main content
Glama

nu:legal Deutsches Recht

List statute versions

listNormVersions
Read-onlyIdempotent

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"}

Input Schema

NameRequiredDescriptionDefault
lawYes
refYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover readOnly/idempotent safety; the description adds the ordering guarantee, the `at_archive_floor` marker semantics, the rule that the unheld date is null, and the full `date_basis` vocabulary. That is substantive behavior an agent cannot get from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the sibling routing are front-loaded, and the DATES block is genuinely informational. It loses a point for redundancy — the `date_basis` value list appears twice, once inline and once in the closing parenthetical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description takes on the return-value burden and largely discharges it by naming the version fields and their basis semantics. Only the input-side detail (what exactly `ref` accepts) is left thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry both parameters, and it only does so implicitly through the example {"law": "BGB", "ref": "288"}. That implies statute code plus provision number, but format edge cases (ranges, abbreviations vs full names) are never stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — every stored version of one provision — plus ordering (newest first), which immediately separates it from getNorm (single version) and getChanges. An agent can tell what it returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes usage: use this to see when a provision changed, then read a version with getNorm `as_of`, and use `getNorm(compare_to=…)` to diff two versions. When-to-use and concrete alternatives are both named with their selecting conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.