Skip to main content
Glama

Lex: Luxembourg Law MCP Server

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.

  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/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the tool's scope (single provision), includes lifecycle events (inserted/removed/renumbered), and notes the mechanical renumbering detection via identical text hash. This provides meaningful behavioral context beyond the schema, though it does not mention return format or error handling.

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 two sentences and front-loaded with the core function. The first sentence is somewhat dense, and the advice about reading timeline_semantics adds tangential context, but overall each sentence earns its place and the length is appropriate for the tool's complexity.

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?

Given no output schema and no annotations, the description gives a reasonable mental model (returns distinct texts and lifecycle events) but does not specify the exact return structure, pagination, or optional parameter interactions. It is adequate but leaves the agent to infer some details about the response format and edge cases.

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 baseline is 3. The description adds some context by emphasizing 'ONE provision' and the article-focused question, which helps understand the 'anchor' parameter, but it does not provide additional parameter-level detail beyond what the schema already documents.

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 uses a specific verb ('has had') and identifies the resource (ONE provision's text and lifecycle events). It clearly answers the intended question, 'what did Article X say over its life / when did it change', and distinguishes from siblings like timeline by focusing on a single provision's history.

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?

The description provides a clear use case (answering questions about a provision's historical text and change times) and preceding guidance about reading timeline_semantics for interval legal applicability. However, it does not explicitly name alternative tools for when not to use it, stopping short of full exclusion guidance.

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