Skip to main content
Glama

emendrix

list_disputed

Read-onlyIdempotent

Disputed rows grouped by their stored dispute_reason, each group with the sentence the site prints for that code. omitted counts rows past limit. An empty list means no recorded change in the window is disputed for that filter. 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
actNoOne act's key; all when omitted.
limitNoAt most this many rows, 1 to 2000.
reasonNoOne `dispute_reason` code.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupsYesOne group per reason code, by code.
omittedYesDisputed 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

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds valuable context beyond that: window semantics, what 'disputed' means (three independent signals), 'applies_from: unknown', and that metadata_only/instruction_only units are named but not listed as changes. However it omits return format and pagination/ordering behavior, so it's solid but not exceptional.

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

Conciseness2/5

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

The purpose is front-loaded in the first sentence, but the definition sprawls across many dense sentences covering caveats, signal semantics, edge cases, and a legal disclaimer. Much of this is verbose and could be tightened, weighing against conciseness.

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?

With an output schema present, the description needn't explain return values, and it goes further by clarifying window scope, the meaning of `disputed` and `dispute_reason`, unknown-date semantics, and the non-legal-advice framing. An agent has enough to interpret and call the tool correctly.

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 100%, so the schema already documents all three parameters (act, limit, reason). The description adds only marginal detail, notably that `omitted` counts rows past `limit`, which is baseline-appropriate when the schema carries the load.

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 opening sentence states a specific verb and resource: 'Disputed rows grouped by their stored `dispute_reason`.' It's clear this is a filtered listing of disputed changes, but it never distinguishes itself from siblings like get_event or changes_since, so an agent must infer the boundary.

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?

It explains result semantics ('an empty list means no recorded change in the window is disputed for that filter') and the watch-window scope, which implies usage. However, it never states when to prefer this over find_provisions, find_substance, or get_change, and offers no explicit alternatives.

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