Skip to main content
Glama

Global law

Changes between

changes_between
Read-onlyIdempotent

Every provision whose text on date_b differs from its text on date_a, in every jurisdiction or one, with the laws that took effect after date_a, up to and including date_b.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "date_a": "<date_a>",
      "date_b": "<date_b>"
    },
    "name": "changes_between"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNolaws (default; "law" is read the same): law only. judgments: court decisions (case law) only. all: both. A jurisdiction that names case law (a path ending in /caselaw) reads it too.
date_aYesAn in-force date, YYYY-MM-DD, or "today".
date_bYesAn in-force date, YYYY-MM-DD, or "today".
jurisdictionNoOptional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi".

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / date_a / description
      Previous value: -"An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."New value: +"An in-force date, YYYY-MM-DD, or \"today\"."
    • changedInput schema / properties / date_b / description
      Previous value: -"An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."New value: +"An in-force date, YYYY-MM-DD, or \"today\"."
    • changedInput schema / properties / kind / description
      Previous value: -"law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw)."New value: +"laws (default; \"law\" is read the same): law only. judgments: court decisions (case law) only. all: both. A jurisdiction that names case law (a path ending in /caselaw) reads it too."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "law",
      -  "judgments"
      -]New value: +[
      +  "laws",
      +  "judgments",
      +  "all",
      +  "law"
      +]
  2. First observed

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds real context by disclosing that the default sweep covers every jurisdiction unless narrowed, and that the result also folds in laws effective inside the window — but the phrase 'with the laws that took effect after date_a, up to and including date_b' is ambiguous and it says nothing about result volume or ordering.

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

Conciseness3/5

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

It is a single front-loaded sentence with no filler, which is good. But the sentence is grammatically tangled — 'in every jurisdiction or one' and the double date range restated at the end are hard to parse — so brevity comes at the cost of clarity.

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

Completeness3/5

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

With an output schema, full parameter documentation, and simple read-only semantics, the definition is close to sufficient. The gap is the final clause about laws taking effect in the window: it is unclear whether that is part of the returned set, a separate section, or a filter, which is exactly the kind of nuance the description should resolve.

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 coverage is 100%, so the baseline is 3. The description usefully reframes date_a/date_b as two points compared against each other rather than as a simple range filter, and 'in every jurisdiction or one' hints at the jurisdiction parameter's optionality. It adds nothing about the kind enum (laws/judgments/all) and leaves the date-boundary behavior of the trailing clause unclear.

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 description states a concrete predicate: it returns provisions whose text on date_b differs from their text on date_a. That is a specific, recognizable behavior rather than a restatement of the name. It does not, however, distinguish itself from neighbors like search_changes, laws_between, or compare_dates, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The only usage-adjacent information is implicit scoping (all jurisdictions by default, or one). An agent must infer from sibling names whether this or search_changes is the right call.

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.