Skip to main content
Glama

Laws between

laws_between
Read-onlyIdempotent

Every law that took effect between two dates, both days included, across all jurisdictions or one, in the order they took effect.

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": {
      "start": "<start>",
      "end": "<end>"
    },
    "name": "laws_between"
  }
}

Input Schema

NameRequiredDescriptionDefault
endYesAn in-force date, YYYY-MM-DD, or "today".
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.
startYesAn in-force date, YYYY-MM-DD, or "today".
offsetNoRows to skip: the next_offset the answer before gave in "page" (default 0).
max_resultsNoAt most this many (default 200, at most 500).
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. Changed5 schema fields changed
    • changedInput schema / properties / end / 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"
      +]
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Rows to skip: the next_offset the answer before gave in \"page\" (default 0).",
      +  "type": "integer"
      +}
    • changedInput schema / properties / start / 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\"."
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely behavioral facts beyond that: the date bounds are inclusive on both ends, and results come back sorted by effective date. It stops short of explaining pagination flow (offset/next_offset) even though the schema alludes to it.

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?

One sentence, no filler, with scope and ordering front-loaded after the core action. Every clause (date range, inclusivity, jurisdiction breadth, sort order) carries distinct information.

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 six parameters, a 100% documented schema, annotations, and an output schema, the description covers what an agent needs to invoke it correctly, including ordering and inclusive bounds. The main gap is disambiguation from siblings that also take date ranges or search terms.

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 would be 3. The description earns an extra point by pinning the meaning of start/end to 'took effect' dates with both endpoints inclusive, which sharpens the 'in-force date' wording in the schema and prevents off-by-one boundary mistakes.

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?

States a specific verb and resource ('Every law that took effect between two dates') plus scope ('across all jurisdictions or one') and ordering. It is clear on its own, but it never distinguishes itself from near-siblings like search_law or changes_between, which an agent could plausibly confuse with a date-bounded law listing.

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?

Usage is implied by the date-bracket semantics ('between two dates, both days included'), which is a real constraint an agent can act on. There is no explicit when-to-use vs. when-not, and no alternative tool is named for the obvious adjacent cases (searching by text, finding a single provision, tracking amendments).

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.