Lex — Temporal Luxembourg and EU Law
Server Details
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- SFHAJJI/lex
- GitHub Stars
- 9
- Server Listing
- Lex: Luxembourg Law MCP Server
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.9/5 across 10 of 10 tools scored. Lowest: 3.2/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.
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.
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.
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.
Available Tools
10 toolsarticle_historyAInspect
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".
| Name | Required | Description | Default |
|---|---|---|---|
| work | Yes | 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. | |
| anchor | Yes | provision anchor, e.g. art_1er (find it via search or as_of mode=outline) | |
| to_date | No | optional ISO date: keep only the states that began on or before it | |
| language | No | optional language code; defaults to the work's primary derived language | |
| from_date | No | optional ISO date: keep only the states in force at or after it | |
| publisher | No | publisher id; required when work is not publisher-qualified |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
as_ofAInspect
The state of one document as it stood on one date. Pure lookup, no ranking. mode=outline lists provisions without text and may be narrowed with anchors; mode=select returns only the named anchors' text; mode=full (default) returns the whole text. Every provision carries its own permalink and hash.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ISO date YYYY-MM-DD | |
| mode | No | full | outline | select (default full) | |
| work | Yes | 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. | |
| anchors | No | optional comma-separated provision anchors for mode=outline; required for mode=select, e.g. art_1er,art_33 | |
| language | No | optional language code, e.g. fr | |
| publisher | No | publisher id; required when work is not publisher-qualified | |
| version_key | No | optional opaque key returned by timeline or an ambiguous_version choice |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It clearly states this is a 'Pure lookup' (no side effects), explains each mode (outline, select, full), and notes that every provision includes a permalink and hash. It does not mention error or edge cases, but for a read-only lookup this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with a clear purpose statement, then detailed modes. Every word earns its place, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter lookup with no output schema, the description covers the core behavior, all three modes, and output characteristics (permalkins/hash). It lacks explicit usage guidance and edge-case handling, but the schema fills parameter details. This is a solid, nearly complete description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds context about how mode and anchors interact (outline can be narrowed with anchors; select returns named anchors' text), which helps understanding. However, this overlaps with the schema's parameter descriptions and does not add significantly new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'the state of one document as it stood on one date' and explicitly notes 'Pure lookup, no ranking,' which distinguishes it from search. However, it does not explicitly differentiate from sibling historical tools like in_force_on or timeline, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives almost no guidance on when to use this tool vs alternatives. It only says 'Pure lookup, no ranking,' which vaguely implies not for ranking, but does not mention when to prefer as_of over in_force_on, timeline, or changes_in_period. The schema's 'Unknown document -> call search first' is useful but not part of the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changes_in_periodAInspect
ACROSS the corpus: which works gained new versions between two dates, how many each, and when — the aggregate counterpart of diff/timeline (which cover ONE work). Use for "what changed between 2025 and 2026", "which laws changed most during the pandemic", "what moved last month". order=by_churn ranks by number of new versions; by_date (default) lists most recently changed first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | default 20 | |
| order | No | by_date (default) or by_churn | |
| domain | No | legacy domain filter; current v4 indexes leave it empty | |
| offset | No | skip this many, for paging | |
| to_date | Yes | ISO date, end of window (inclusive) | |
| act_form | No | optional legal act form | |
| language | No | optional language code | |
| from_date | Yes | ISO date, start of window (inclusive) | |
| hierarchy | No | optional normalized legal hierarchy | |
| publisher | No | optional publisher id | |
| jurisdiction | No | optional jurisdiction code from index metadata, e.g. LU or EU | |
| source_class | No | optional source document class; alias of document_type | |
| document_type | No | optional source document class(es), comma-separated; prefix with ! to exclude, e.g. !RECUEIL,!CODE_RECUEIL for instruments only | |
| binding_status | No | optional binding status |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the aggregate, read-oriented nature (gaining versions across the corpus) and explains the behavior of the order parameter (by_churn ranks by count, by_date lists recently changed). It does not mention side effects, but the query nature is clear. It adds context beyond the schema, earning a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences of dense, front-loaded information. The first sentence establishes purpose, the second gives usage examples, and the third clarifies order semantics. Every sentence earns its place; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (14 parameters, no annotations, no output schema), the description provides a strong conceptual overview, usage examples, and key parameter semantics. It doesn't enumerate all filters, but the schema covers them. It lacks explicit return format, but that is not critical for a list-style tool. Overall, it is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful semantic value by explaining what each order enum does ('by_churn ranks by number of new versions; by_date lists most recently changed first'), which is not fully expressed in the schema. This pushes it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to identify works that gained new versions across the corpus within a date range, including counts and dates. It explicitly distinguishes itself from diff/timeline by calling itself the 'aggregate counterpart' covering multiple works, which is a strong differentiation from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance with concrete example queries like 'what changed between 2025 and 2026' and 'which laws changed most during the pandemic'. It also implicitly tells when not to use it by noting that diff/timeline cover ONE work, steering users to the appropriate alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cited_byAInspect
Which held provision versions contain captured publisher cross-references to this work. This reverse lookup reports the publisher references Lex captured; it does not classify their relationship type or assess current legal effect.
| Name | Required | Description | Default |
|---|---|---|---|
| work | Yes | the law being cited, e.g. lu-legilux:loi-2020-06-04-a476 | |
| limit | No | default 50 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that it reports 'publisher references Lex captured' and explicitly disclaims any classification of relationship type or assessment of current legal effect. This sets accurate expectations about the tool's scope, though it does not detail pagination, output format, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and about 35 words. It front-loads the main purpose, clearly states the scope, and adds a brief limitation note. There is no wasted text or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple lookup with 2 parameters (one required) and no output schema. The description explains what it reports and its limitations, which is sufficient for an agent to know when to select it. It could be more complete by describing the return structure, but the schema and high-level description make it adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides comprehensive descriptions for both parameters (work and limit), with 100% coverage. The tool description does not add any additional meaning to the parameters, so it does not go beyond the schema. The baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a reverse citation lookup: 'Which held provision versions contain captured publisher cross-references to this work.' It specifies the resource (held provision versions) and the action (reverse lookup), and distinguishes itself from siblings by explicitly stating what it does not do (classify relationship type or assess legal effect).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when you need to find provision versions that cite a given work. It also includes a 'when-not' by stating it does not classify relationships or assess legal effect, which sets boundaries. However, it does not explicitly name alternative tools or provide direct comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coverageAInspect
What we hold and what we lack, tier by tier: counts, date ranges, history_begins, known gaps. This tool exists to say what we do NOT have.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | No | optional publisher id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool returns coverage counts, date ranges, history_begins, and gaps, which is useful behavioral context. However, it does not mention side effects, permissions, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that front-load the purpose and key outputs. No wasted words, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, the description adequately covers the main return fields and purpose. However, terms like 'tier by tier' and 'history_begins' are left undefined, which could create ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the optional publisher parameter, so the baseline is 3. The description does not mention the publisher parameter or add extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides coverage information about what is held and lacking, with counts, date ranges, history_begins, and known gaps. It distinguishes from sibling tools by focusing on coverage, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to know data coverage or gaps, but provides no explicit when-to-use vs. alternatives. It lacks exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diffAInspect
What changed between two dates for one work: which publisher versions cover the selected dates and, where both texts are held, retrieve them via as_of to compare. An optional held article anchor scopes the typed comparison workspace. Read timeline_semantics before describing legal applicability.
| Name | Required | Description | Default |
|---|---|---|---|
| work | Yes | 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. | |
| anchor | No | optional held provision anchor returned by search, e.g. art_92 | |
| to_date | Yes | ISO date | |
| language | No | language code | |
| from_date | Yes | ISO date | |
| publisher | No | publisher id; required when work is not publisher-qualified | |
| to_version_key | No | optional opaque key returned by timeline or an ambiguous_version choice | |
| from_version_key | No | optional opaque key returned by timeline or an ambiguous_version choice |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses retrieval via as_of, the scoping effect of an anchor, and a prerequisite for legal applicability. However, it does not explicitly state read-only behavior, error outcomes, or return structure, leaving some behavioral aspects undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey a dense but focused purpose. The first sentence packs the core mechanics, and the second adds the anchor behavior and a caveat. No wasted words, though the first sentence is somewhat complex.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 8-parameter tool with no output schema and no annotations, the description covers the main purpose and key interactions but leaves gaps: it does not describe return format, error conditions, or clarify 'typed comparison workspace' and 'timeline_semantics'. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds semantic context for 'anchor' ('scopes the typed comparison workspace') and relates 'work' to version/date selection, but does not go beyond the schema for other parameters, aligning with the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'What changed between two dates for one work' and outlines the process of identifying publisher versions covering selected dates and retrieving them via as_of to compare. It distinguishes itself from siblings by referencing as_of and timeline_semantics, signaling specific use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use: for comparing versions across dates for a single work, with an optional anchor for scoping. Mentions a prerequisite ('Read timeline_semantics') and a condition ('where both texts are held'), though it does not explicitly contrast with sibling tools like changes_in_period.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
in_force_onAInspect
Compatibility name for publisher states covering a date, computed from timeline intervals and deduplicated by work. Legilux states describe applicability; EUR-Lex states are official consolidated wording states and must not be called entry into force. Every envelope carries timeline_semantics and the result carries a mandatory population disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ISO date | |
| limit | No | default 50 | |
| domain | No | legacy domain filter; current v4 indexes leave it empty | |
| offset | No | pagination offset | |
| act_form | No | optional legal act form | |
| language | No | optional language code | |
| hierarchy | No | optional normalized legal hierarchy | |
| publisher | No | optional publisher id, e.g. lu-legilux | |
| jurisdiction | No | optional jurisdiction code from index metadata, e.g. LU or EU | |
| source_class | No | optional source document class | |
| document_type | No | backward-compatible source document class filter | |
| binding_status | No | optional binding status |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It reveals the computation method (timeline intervals), deduplication by work, and the output contract (timeline_semantics in the envelope, mandatory population disclosure), going well beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are packed with essential information: the core purpose, the key semantic distinction, and the output characteristics. No unnecessary words; the structure front-loads the main purpose and then adds critical caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no output schema, and no annotations, this description is remarkably complete. It explains what the tool computes, the crucial distinction from entry into force, the deduplication logic, and key aspects of the response envelope, enabling an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter already having a description, so the baseline is 3. The description adds high-level semantics about publisher states and date coverage but does not elaborate on parameter-specific behavior or interactions beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes publisher states covering a given date from timeline intervals, deduplicated by work. It also explicitly contrasts Legilux applicability states with EUR-Lex official consolidated wording states, making it unmistakable that this is not an entry-into-force tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides contextual guidance by clarifying the difference between Legilux and EUR-Lex states and warning against mislabeling the result as 'entry into force.' However, it doesn't explicitly name alternative sibling tools or state when to prefer them, so it's not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provenanceBInspect
Proof chain for one lex_id: source URI, retrieval time, record/body hashes, event chain, corpus commit, index build, stamp signature.
| Name | Required | Description | Default |
|---|---|---|---|
| lex_id | Yes | full lex_id | |
| language | No | optional |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the transparency burden. It does disclose the contents of the proof chain (source URI, retrieval time, hashes, event chain, corpus commit, index build, stamp signature), which gives the agent a clear picture of the output. However, it does not state whether the operation is read-only, has side effects, requires authentication, or how the chain is constructed. The description adds some value but not full behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a colon-separated list, packing many details into a compact format. It is not verbose or redundant; every listed item adds meaningful information. However, the sentence is somewhat dense and could be split for readability, but overall it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description needs to cover return semantics. It does list the components of the proof chain, which is helpful, but it does not describe the output structure (e.g., JSON keys, order, nesting) or address potential errors or edge cases. Given the complexity of the tool (many parts in the chain), the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'lex_id' and 'language' already documented in the schema. The description does not add any parameter-specific meaning beyond what the schema provides; it merely mentions the tool works 'for one lex_id', which is already stated. Therefore, it meets the baseline but provides no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: providing a proof chain for a single lex_id and enumerates its components (source URI, hashes, event chain, etc.). This distinguishes it from sibling tools like 'article_history' or 'timeline' by focusing on cryptographic proof rather than chronological narrative. However, it lacks an explicit verb like 'get' or 'retrieve', making the action slightly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or why one would choose 'provenance' over a tool like 'diff' or 'as_of'. The usage context is only inferred from the tool's name and description, not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchAInspect
Filtered legal search. keyword is deterministic FTS5/BM25; hybrid adds the pinned local encoder and fixed RRF when verified vectors are mounted. No generative model participates. The response query_plan separates resolved work constraints, article and role intent, and residual provision terms. Returns hits WITHOUT body text; full state via as_of.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | ISO date required when time_scope=as_of | |
| fuzzy | No | auto or off; visible fallback only | |
| limit | No | default 10; minimum 1, maximum 50 | |
| query | Yes | search terms | |
| works | No | optional comma-separated work ids: restrict search to these works | |
| domain | No | legacy domain id filter; current v4 indexes leave it empty; use publisher_metadata_identifier for official classifications | |
| act_form | No | optional legal act form | |
| language | No | optional language code | |
| hierarchy | No | optional normalized legal hierarchy | |
| publisher | No | optional publisher id | |
| time_scope | No | all_versions or as_of | |
| jurisdiction | No | optional jurisdiction code from index metadata, e.g. LU or EU | |
| source_class | No | optional source document class | |
| document_type | No | backward-compatible document type filter | |
| binding_status | No | optional binding status | |
| retrieval_mode | No | keyword or hybrid; default keyword until activation | |
| publisher_metadata_identifier | No | optional exact official publisher-metadata URI returned by a search hit |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden and does well: it discloses the deterministic FTS5/BM25 behavior, the hybrid mode with pinned local encoder and fixed RRF, conditional activation ('when verified vectors are mounted'), and the fact that no generative model participates. It also reveals that the response includes a query_plan and that hits lack body text. This goes beyond a simple search description, though it omits operational details like rate limits or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each delivering distinct information: what the tool does, retrieval behavior, response structure, and return constraints. There is no repetition of schema fields and no fluff. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, no output schema, no annotations), the description covers key aspects: core functionality, retrieval mechanism, response query_plan, and the limitation of no body text with a pointer to as_of for full state. It does not explain every filter, but the schema does that. It adequately addresses the important behavioral nuances.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for all 17 parameters, so the schema already provides detailed descriptions. The tool description adds meaning to retrieval_mode ('keyword is deterministic FTS5/BM25; hybrid adds the pinned local encoder') and hints at as_of usage, but does not significantly enhance understanding of the many filter parameters. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Filtered legal search', which clearly identifies the tool as a search over legal documents with filtering. It distinguishes itself from sibling tools (article_history, as_of, diff, etc.) by specifying that it returns hits without body text and that full state is available via as_of.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by noting 'Returns hits WITHOUT body text; full state via as_of', which tells the agent to use as_of when full text is needed. It also differentiates retrieval modes (keyword vs hybrid) and clarifies that no generative model participates. However, it does not explicitly enumerate when to prefer this tool over other siblings beyond as_of.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timelineAInspect
Every publisher state a document has been in: timeline intervals, version keys, and explicit timeline_semantics. Legilux intervals describe applicability; EUR-Lex intervals describe official consolidated wording states, not entry into force.
| Name | Required | Description | Default |
|---|---|---|---|
| work | Yes | 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. | |
| limit | No | max versions (default 100) | |
| offset | No | pagination offset | |
| publisher | No | publisher id; required when work is not publisher-qualified |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds meaningful behavioral context by explaining the different interval semantics for Legilux and EUR-Lex. However, it does not disclose whether the operation is read-only, any rate limits, or error conditions. The explanation of semantics is useful but leaves other behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a clarifying note on interval semantics. Every sentence earns its place, and there is no redundant wording. It is appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the timeline represents and the distinction between Legilux and EUR-Lex intervals, which is essential for correct interpretation. However, with no output schema and no mention of pagination or response structure, it is not fully complete for an agent handling complex queries. The presence of sibling tools makes this description adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 main description does not add parameter-level meaning beyond what the input schema already provides. The mention of 'version keys' and 'timeline_semantics' relates to the output, not the input parameters, so no additional value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that the tool returns the timeline of publisher states, including intervals, version keys, and timeline semantics. It clearly references the resource (timeline) and the kind of data returned. It differentiates between Legilux and EUR-Lex interval meanings, which helps distinguish from sibling tools, though it lacks an explicit verb like 'get' or 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for interpreting intervals but does not explicitly say when to use this tool versus alternatives like 'as_of' or 'in_force_on'. The semantic distinction (applicability vs. consolidated wording) implies a use case, but there are no explicit when/when-not statements or mentions of sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceOfficial European law, expanding globally: 20M+ documents, 35+ jurisdictions, verifiable citations.MIT- AlicenseAqualityBmaintenanceProvides deterministic, read-only retrieval of authoritative EU legal materials, including legislation, case law, and EDPB/EDPS documents, with exact text, structural identifiers, and provenance.16MIT
- AlicenseNot gradedqualityFmaintenanceProvides structured access to EU treaties, regulations, directives, and CJEU case law via 14 tools for searching, retrieving, and analyzing legislation and court decisions.Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables AI-powered legal research across 4,551 Luxembourg statutes, 260 case law decisions, and EU law integrations through natural language queries and 13 specialized tools.732Apache 2.0
Your Connectors
Sign in to create a connector for this server.