Skip to main content
Glama

List statute versions

listNormVersions
Read-onlyIdempotent

List every stored version of a provision, newest first, with validity dates and archive-floor markers, so you can see which as-of dates getNorm can answer before querying.

Instructions

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 versions with getNorm(as_of=…) and diff them yourself — a diff we computed would hide which side of it came from a floor date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lawYes
refYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.6/5.0
Behavior5/5

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

Though the annotations already declare readOnlyHint and idempotentHint, the description adds substantial behavioral context beyond them: first_observed does NOT mean Inkrafttreten, at_archive_floor indicates a mirroring floor rather than an amendment, and earlier amendments may be listed in the Änderungsverlauf but not held. It even discloses the limitation that no diff is provided and explains why, which helps the agent set expectations.

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

Conciseness5/5

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

Every sentence earns its place: purpose, return-field semantics, floor-date caveat, and the no-diff guidance are all substantive. The description is front-loaded with the main use case and is organized in digestible paragraphs without repetition of schema or annotation values.

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

Completeness5/5

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

There is no output schema, so the description fills that gap by enumerating all meaningful return fields and their semantics. It also explains the critical edge case of archive floor dates and names the amendment_history_url field, making the tool's behavior fully understandable for an agent attempting to use it correctly.

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

Parameters2/5

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

The input schema has 0% description coverage, so the burden falls on the description to explain law and ref. The description mentions 'one provision' and 'law', but it never explicitly defines law as the statute identifier or ref as the specific provision reference. The schema examples (BGB, 288) help, but the description itself does not compensate for the missing parameter documentation.

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?

The description states a specific action and resource: listing every stored version of one provision, newest first. It also distinguishes the tool from getNorm by explaining that it reveals which as_of dates getNorm can actually answer. This differentiates it clearly from the sibling tools.

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?

It explicitly says to use this tool before asking getNorm(as_of=…) so you know which dates are answerable. It also gives a strong when-not-to: there is no diff tool, so users should fetch two versions with getNorm and diff them manually. The alternative tool is named and the condition for using it is stated.

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