Skip to main content
Glama

emendrix

changes_since

Read-onlyIdempotent

List recorded changes whose basis date is on or after since, newest first, with each row's event and provision pages: updated_on (the event or its latest repair), detected_on (when the run saw the event) or in_force (the change's in-force date; rows without one are left out). omitted counts rows past limit. An empty list means no recorded change in the window has that date. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. disputed means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; dispute_reason says which and how, and a dispute is a reading of the sources, not a judgement about the law. applies_from: unknown means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (metadata_only_units, instruction_only_units), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actsNoAct keys; all when omitted.
basisNoWhich stored date to compare.updated_on
limitNoAt most this many rows, 1 to 500.
sinceYesThe earliest date, YYYY-MM-DD.
include_disputedNoKeep disputed rows.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYesMatching rows, newest first.
basisYesWhich stored date was compared with `since`.
sinceYesThe earliest date a row's basis date may carry.
omittedYesMatching rows left out because of `limit`.
disclaimerNoNot legal advice.Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
unavailableYesWhat could not be read, in words.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

With readOnlyHint/idempotentHint already covering the safety profile, the description adds a great deal: `omitted` counts rows past `limit`, empty lists mean no matching date in the window, every list is complete only for the covered watch window, `disputed` is one of three independent signals with `dispute_reason` naming which, `applies_from: unknown` does not mean no date applies, and single-signal units surface as metadata_only_units/instruction_only_units. It also disclaims that output is machine-computed and not legal advice.

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?

The purpose is front-loaded in the first clause, and nearly every sentence carries non-obvious semantics rather than filler. However, it is delivered as one dense, semi-colon-chained block with no structure separating field semantics, dispute handling, and disclaimers, which hurts scannability.

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?

For a temporal change-detection query over legal texts, the description supplies the interpretive context an agent needs (window completeness, dispute semantics, unknown-date semantics, unit-name handling), and an output schema exists so return structure needn't be restated. The one gap is routing guidance among the many sibling query tools.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning: it spells out what each `basis` enum value represents (`updated_on` = event or latest repair, `detected_on` = when the run saw it, `in_force` = in-force date, with rows lacking one dropped), and clarifies that `omitted` corresponds to rows past `limit`. It does not add anything for `acts`, `since`, or `include_disputed`.

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

Purpose4/5

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

The first sentence gives a precise verb+resource+scope: list recorded changes where the `basis` date is on or after `since`, newest first. It is unambiguous about what the tool returns, but it never names or contrasts a sibling (e.g. list_disputed, get_change, provision_history), so it stops short of the 5 bar.

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

Usage Guidelines3/5

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

The description implies the usage context (querying changes within a date window) and layers on interpretation rules, but it never states when to prefer this tool over find_substance, provision_history, or list_disputed, nor any exclusions. Usage is inferred rather than directed.

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.

Resources