Skip to main content
Glama

Lex — Temporal Luxembourg and EU Law

article_history

Every distinct text ONE provision (article/annex) has had on its publisher timeline, plus lifecycle events (inserted/removed/renumbered, renumbering detected mechanically by identical text hash). Read timeline_semantics before calling an interval legal applicability. Answers "what did Article X say over its life / when did it change".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workYesWork-level lex_id (publisher:workkey), version-level lex_id (version segment ignored), or verbatim publisher identifier with publisher supplied. Unknown document -> call search first.
anchorYesprovision anchor, e.g. art_1er (find it via search or as_of mode=outline)
to_dateNooptional ISO date: keep only the states that began on or before it
languageNooptional language code; defaults to the work's primary derived language
from_dateNooptional ISO date: keep only the states in force at or after it
publisherNopublisher id; required when work is not publisher-qualified

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • addedInput schema / properties / from_date
      Added value: +{
      +  "description": "optional ISO date: keep only the states in force at or after it",
      +  "maxLength": 10,
      +  "minLength": 1,
      +  "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$",
      +  "type": "string"
      +}
    • addedInput schema / properties / to_date
      Added value: +{
      +  "description": "optional ISO date: keep only the states that began on or before it",
      +  "maxLength": 10,
      +  "minLength": 1,
      +  "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$",
      +  "type": "string"
      +}
  2. Changed9 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / anchor / maxLength
      Added value: +512
    • addedInput schema / properties / anchor / minLength
      Added value: +1
    • addedInput schema / properties / language / maxLength
      Added value: +16
    • addedInput schema / properties / language / minLength
      Added value: +1
    • addedInput schema / properties / publisher
      Added value: +{
      +  "description": "publisher id; required when work is not publisher-qualified",
      +  "maxLength": 64,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / work / description
      Previous value: -"Work-level lex_id (publisher:workkey), version-level lex_id (version segment ignored), or verbatim publisher identifier. Unknown document -> call search first."New value: +"Work-level lex_id (publisher:workkey), version-level lex_id (version segment ignored), or verbatim publisher identifier with publisher supplied. Unknown document -> call search first."
    • addedInput schema / properties / work / maxLength
      Added value: +1000
    • addedInput schema / properties / work / minLength
      Added value: +1
  3. Changed1 schema field changed
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "optional language code; defaults to the work's primary derived language",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description takes on the behavioral disclosure burden. It goes beyond a simple read operation by detailing specific lifecycle events (inserted/removed/renumbered) and explains that renumbering is detected mechanically via identical text hash. It also warns about a prerequisite ('timeline_semantics') for interval legal applicability. It stops short of describing output format or error handling, but the added context is meaningful.

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 description is three sentences, ordered logically: what the tool returns, a prerequisite warning, and a user-facing question. It is information-dense without being verbose, and each sentence contributes unique value. A minor structural improvement could be separating the prerequisite into its own line, but it remains concise.

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 tool with six parameters and no output schema, the description provides a solid high-level account: it defines the output (history plus lifecycle events), notes a dependency on timeline_semantics for legal applicability, and frames the use case. It lacks an explicit statement about the response structure (e.g., chronological list of states), but given the absence of an output schema, this is a minor gap.

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?

The input schema already covers all six parameters with individual descriptions at 100% coverage, including examples and purpose. The tool description adds little parameter-specific detail beyond what the schema provides. It implies the relevance of date parameters through 'interval legal applicability' but does not elaborate on their semantics, so the schema carries the load.

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 clearly defines the tool as returning the complete history of a single provision's text and lifecycle events, with the explicit phrase 'Every distinct text ONE provision...' and answers the question 'what did Article X say over its life / when did it change.' This sharply differentiates it from sibling tools like timeline (whole-work history) and changes_in_period.

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

Usage Guidelines4/5

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

It provides a concrete prerequisite: 'Read timeline_semantics before calling an interval legal applicability,' which guides safe usage. It also scopes the tool to 'ONE provision,' implying it is for single-article history rather than broader time-based queries. However, it does not explicitly name when to prefer alternatives like as_of or in_force_on.

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.

TDQS

A3.8/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but timeline and article_history both cover historical versions, and as_of and in_force_on both relate to state on a date. Descriptions are detailed enough to resolve overlap, so confusion is limited.

Naming Consistency3/5

All names are lowercase with underscores, but they mix noun forms (coverage, provenance), verb forms (search, diff), and prepositional phrases (as_of, in_force_on, changes_in_period). This is readable but lacks a consistent pattern like verb_noun.

Tool Count5/5

Ten tools is well within the ideal range for a specialized legal research server. Each tool addresses a distinct aspect of temporal legal queries, and none feel redundant or superfluous.

Completeness5/5

The tool set covers search, retrieval, history, citations, coverage gaps, and provenance. It supports both document-level and corpus-level temporal analysis, making it comprehensive for the stated domain of Luxembourg and EU law research.

Resources