Lex — Temporal Luxembourg and EU Law
Server Details
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 51.3% over 51 days
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- SFHAJJI/lex
- GitHub Stars
- 9
- Server Listing
- Lex: Luxembourg Law MCP Server
TDQS
Scored across 10 tools
Several tools cluster around temporal/version semantics—article_history, timeline, diff, changes_in_period, as_of, and in_force_on—with subtle boundaries. Although the descriptions specify distinct granularities, an agent could easily misselect between timeline and article_history or between as_of and in_force_on.
All names are lowercase snake_case, but the set mixes bare nouns (coverage, timeline, provenance), verb phrases (search, changes_in_period), and prepositional phrases (as_of, in_force_on). There is no consistent verb_noun pattern, though the names remain readable and mostly indicative of their purpose.
Ten tools is a well-scoped size for a specialized legal-temporal corpus. Each tool covers a distinct workflow—search, retrieval, history, diff, aggregate changes, citations, coverage, provenance—so the count feels justified rather than bloated or thin.
The surface covers the full temporal lifecycle: search, point-in-time lookup, article/document history, diff, aggregate change reporting, in-force semantics, reverse citations, coverage gaps, and provenance. A minor gap is the lack of an explicit document metadata or browse/list endpoint, but search plus as_of and timeline covers most workflows.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- Changed
article_history2 fields changed- added
Input schema / properties / from_dateAdded 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" +} - added
Input schema / properties / to_dateAdded 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" +}
- Changed
as_of3 fields changed- added
Input schema / allOfAdded value: +[ + { + "if": { + "properties": { + "mode": { + "const": "select" + } + }, + "required": [ + "mode" + ] + }, + "then": { + "required": [ + "anchors" + ] + } + } +] - changed
Input schema / properties / date / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" - added
Input schema / properties / version_keyAdded value: +{ + "description": "optional opaque key returned by timeline or an ambiguous_version choice", + "maxLength": 128, + "minLength": 1, + "type": "string" +}
- Changed
changes_in_period3 fields changed- changed
Input schema / properties / domain / descriptionPrevious value: -"optional reviewed legal domain"New value: +"legacy domain filter; current v4 indexes leave it empty" - changed
Input schema / properties / from_date / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" - changed
Input schema / properties / to_date / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$"
- Changed
diff4 fields changed- changed
Input schema / properties / from_date / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" - added
Input schema / properties / from_version_keyAdded value: +{ + "description": "optional opaque key returned by timeline or an ambiguous_version choice", + "maxLength": 128, + "minLength": 1, + "type": "string" +} - changed
Input schema / properties / to_date / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" - added
Input schema / properties / to_version_keyAdded value: +{ + "description": "optional opaque key returned by timeline or an ambiguous_version choice", + "maxLength": 128, + "minLength": 1, + "type": "string" +}
- Changed
in_force_on2 fields changed- changed
Input schema / properties / date / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" - changed
Input schema / properties / domain / descriptionPrevious value: -"optional reviewed legal domain"New value: +"legacy domain filter; current v4 indexes leave it empty"
- Changed
search4 fields changed- added
Input schema / allOfAdded value: +[ + { + "if": { + "properties": { + "time_scope": { + "const": "as_of" + } + }, + "required": [ + "time_scope" + ] + }, + "then": { + "required": [ + "as_of" + ] + } + } +] - changed
Input schema / properties / as_of / patternPrevious value: -"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"New value: +"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" - changed
Input schema / properties / domain / descriptionPrevious value: -"optional reviewed legal domain id"New value: +"legacy domain id filter; current v4 indexes leave it empty; use publisher_metadata_identifier for official classifications" - added
Input schema / properties / publisher_metadata_identifierAdded value: +{ + "description": "optional exact official publisher-metadata URI returned by a search hit", + "maxLength": 2048, + "minLength": 1, + "pattern": "^https?://", + "type": "string" +}
10 tool updates
- Changed
article_history9 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / anchor / maxLengthAdded value: +512 - added
Input schema / properties / anchor / minLengthAdded value: +1 - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / publisherAdded value: +{ + "description": "publisher id; required when work is not publisher-qualified", + "maxLength": 64, + "minLength": 1, + "type": "string" +} - changed
Input schema / properties / work / descriptionPrevious 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." - added
Input schema / properties / work / maxLengthAdded value: +1000 - added
Input schema / properties / work / minLengthAdded value: +1
- Changed
as_of15 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / anchors / maxLengthAdded value: +1000 - added
Input schema / properties / anchors / minLengthAdded value: +1 - added
Input schema / properties / date / maxLengthAdded value: +10 - added
Input schema / properties / date / minLengthAdded value: +1 - added
Input schema / properties / date / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / mode / enumAdded value: +[ + "full", + "outline", + "select" +] - added
Input schema / properties / mode / maxLengthAdded value: +64 - added
Input schema / properties / mode / minLengthAdded value: +1 - added
Input schema / properties / publisherAdded value: +{ + "description": "publisher id; required when work is not publisher-qualified", + "maxLength": 64, + "minLength": 1, + "type": "string" +} - changed
Input schema / properties / work / descriptionPrevious 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." - added
Input schema / properties / work / maxLengthAdded value: +1000 - added
Input schema / properties / work / minLengthAdded value: +1
- Changed
changes_in_period32 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / act_form / maxLengthAdded value: +1000 - added
Input schema / properties / act_form / minLengthAdded value: +1 - added
Input schema / properties / binding_status / maxLengthAdded value: +1000 - added
Input schema / properties / binding_status / minLengthAdded value: +1 - added
Input schema / properties / document_type / maxLengthAdded value: +1000 - added
Input schema / properties / document_type / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +1000 - added
Input schema / properties / domain / minLengthAdded value: +1 - added
Input schema / properties / from_date / maxLengthAdded value: +10 - added
Input schema / properties / from_date / minLengthAdded value: +1 - added
Input schema / properties / from_date / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - added
Input schema / properties / hierarchy / maxLengthAdded value: +1000 - added
Input schema / properties / hierarchy / minLengthAdded value: +1 - added
Input schema / properties / jurisdiction / maxLengthAdded value: +64 - added
Input schema / properties / jurisdiction / minLengthAdded value: +1 - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / offset / maximumAdded value: +100000 - added
Input schema / properties / offset / minimumAdded value: +0 - added
Input schema / properties / order / enumAdded value: +[ + "by_date", + "by_churn" +] - added
Input schema / properties / order / maxLengthAdded value: +64 - added
Input schema / properties / order / minLengthAdded value: +1 - added
Input schema / properties / publisher / maxLengthAdded value: +64 - added
Input schema / properties / publisher / minLengthAdded value: +1 - added
Input schema / properties / source_class / maxLengthAdded value: +1000 - added
Input schema / properties / source_class / minLengthAdded value: +1 - added
Input schema / properties / to_date / maxLengthAdded value: +10 - added
Input schema / properties / to_date / minLengthAdded value: +1 - added
Input schema / properties / to_date / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- Changed
cited_by5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / work / maxLengthAdded value: +1000 - added
Input schema / properties / work / minLengthAdded value: +1
- Changed
coverage3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / publisher / maxLengthAdded value: +64 - added
Input schema / properties / publisher / minLengthAdded value: +1
- Changed
diff15 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / anchor / maxLengthAdded value: +512 - added
Input schema / properties / anchor / minLengthAdded value: +1 - added
Input schema / properties / from_date / maxLengthAdded value: +10 - added
Input schema / properties / from_date / minLengthAdded value: +1 - added
Input schema / properties / from_date / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / publisherAdded value: +{ + "description": "publisher id; required when work is not publisher-qualified", + "maxLength": 64, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / to_date / maxLengthAdded value: +10 - added
Input schema / properties / to_date / minLengthAdded value: +1 - added
Input schema / properties / to_date / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - changed
Input schema / properties / work / descriptionPrevious 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." - added
Input schema / properties / work / maxLengthAdded value: +1000 - added
Input schema / properties / work / minLengthAdded value: +1
- Changed
in_force_on26 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / act_form / maxLengthAdded value: +1000 - added
Input schema / properties / act_form / minLengthAdded value: +1 - added
Input schema / properties / binding_status / maxLengthAdded value: +1000 - added
Input schema / properties / binding_status / minLengthAdded value: +1 - added
Input schema / properties / date / maxLengthAdded value: +10 - added
Input schema / properties / date / minLengthAdded value: +1 - added
Input schema / properties / date / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - added
Input schema / properties / document_type / maxLengthAdded value: +1000 - added
Input schema / properties / document_type / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +1000 - added
Input schema / properties / domain / minLengthAdded value: +1 - added
Input schema / properties / hierarchy / maxLengthAdded value: +1000 - added
Input schema / properties / hierarchy / minLengthAdded value: +1 - added
Input schema / properties / jurisdiction / maxLengthAdded value: +64 - added
Input schema / properties / jurisdiction / minLengthAdded value: +1 - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / offset / maximumAdded value: +100000 - added
Input schema / properties / offset / minimumAdded value: +0 - added
Input schema / properties / publisher / maxLengthAdded value: +64 - added
Input schema / properties / publisher / minLengthAdded value: +1 - added
Input schema / properties / source_class / maxLengthAdded value: +1000 - added
Input schema / properties / source_class / minLengthAdded value: +1
- Changed
provenance5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / lex_id / maxLengthAdded value: +1000 - added
Input schema / properties / lex_id / minLengthAdded value: +1
- Changed
search35 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / act_form / maxLengthAdded value: +1000 - added
Input schema / properties / act_form / minLengthAdded value: +1 - added
Input schema / properties / as_of / maxLengthAdded value: +10 - added
Input schema / properties / as_of / minLengthAdded value: +1 - added
Input schema / properties / as_of / patternAdded value: +"^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - added
Input schema / properties / binding_status / maxLengthAdded value: +1000 - added
Input schema / properties / binding_status / minLengthAdded value: +1 - added
Input schema / properties / document_type / maxLengthAdded value: +1000 - added
Input schema / properties / document_type / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +1000 - added
Input schema / properties / domain / minLengthAdded value: +1 - added
Input schema / properties / fuzzy / enumAdded value: +[ + "auto", + "off" +] - added
Input schema / properties / fuzzy / maxLengthAdded value: +64 - added
Input schema / properties / fuzzy / minLengthAdded value: +1 - added
Input schema / properties / hierarchy / maxLengthAdded value: +1000 - added
Input schema / properties / hierarchy / minLengthAdded value: +1 - added
Input schema / properties / jurisdiction / maxLengthAdded value: +64 - added
Input schema / properties / jurisdiction / minLengthAdded value: +1 - added
Input schema / properties / language / maxLengthAdded value: +16 - added
Input schema / properties / language / minLengthAdded value: +1 - added
Input schema / properties / publisher / maxLengthAdded value: +64 - added
Input schema / properties / publisher / minLengthAdded value: +1 - added
Input schema / properties / query / maxLengthAdded value: +1000 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / retrieval_mode / enumAdded value: +[ + "keyword", + "hybrid" +] - added
Input schema / properties / retrieval_mode / maxLengthAdded value: +64 - added
Input schema / properties / retrieval_mode / minLengthAdded value: +1 - added
Input schema / properties / source_class / maxLengthAdded value: +1000 - added
Input schema / properties / source_class / minLengthAdded value: +1 - added
Input schema / properties / time_scope / enumAdded value: +[ + "all_versions", + "as_of" +] - added
Input schema / properties / time_scope / maxLengthAdded value: +64 - added
Input schema / properties / time_scope / minLengthAdded value: +1 - added
Input schema / properties / works / maxLengthAdded value: +1000 - added
Input schema / properties / works / minLengthAdded value: +1
- Changed
timeline9 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / maximumAdded value: +200 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / offset / maximumAdded value: +100000 - added
Input schema / properties / offset / minimumAdded value: +0 - added
Input schema / properties / publisherAdded value: +{ + "description": "publisher id; required when work is not publisher-qualified", + "maxLength": 64, + "minLength": 1, + "type": "string" +} - changed
Input schema / properties / work / descriptionPrevious 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." - added
Input schema / properties / work / maxLengthAdded value: +1000 - added
Input schema / properties / work / minLengthAdded value: +1
1 tool update
- Changed
diff1 field changed- added
Input schema / properties / anchorAdded value: +{ + "description": "optional held provision anchor returned by search, e.g. art_92", + "type": "string" +}
1 tool update
- Changed
search3 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"default 10"New value: +"default 10; minimum 1, maximum 50" - added
Input schema / properties / limit / maximumAdded value: +50 - added
Input schema / properties / limit / minimumAdded value: +1
1 tool update
- Changed
as_of1 field changed- changed
Input schema / properties / anchors / descriptionPrevious value: -"comma-separated provision anchors for mode=select, e.g. art_1er,art_33"New value: +"optional comma-separated provision anchors for mode=outline; required for mode=select, e.g. art_1er,art_33"
3 tool updates
- Changed
changes_in_period8 fields changed- added
Input schema / properties / act_formAdded value: +{ + "description": "optional legal act form", + "type": "string" +} - added
Input schema / properties / binding_statusAdded value: +{ + "description": "optional binding status", + "type": "string" +} - changed
Input schema / properties / document_type / descriptionPrevious value: -"optional type code(s), comma-separated; prefix with ! to exclude, e.g. !RECUEIL,!CODE_RECUEIL for instruments only"New value: +"optional source document class(es), comma-separated; prefix with ! to exclude, e.g. !RECUEIL,!CODE_RECUEIL for instruments only" - added
Input schema / properties / domainAdded value: +{ + "description": "optional reviewed legal domain", + "type": "string" +} - added
Input schema / properties / hierarchyAdded value: +{ + "description": "optional normalized legal hierarchy", + "type": "string" +} - added
Input schema / properties / jurisdictionAdded value: +{ + "description": "optional jurisdiction code from index metadata, e.g. LU or EU", + "type": "string" +} - added
Input schema / properties / languageAdded value: +{ + "description": "optional language code", + "type": "string" +} - added
Input schema / properties / source_classAdded value: +{ + "description": "optional source document class; alias of document_type", + "type": "string" +}
- Changed
in_force_on8 fields changed- added
Input schema / properties / act_formAdded value: +{ + "description": "optional legal act form", + "type": "string" +} - added
Input schema / properties / binding_statusAdded value: +{ + "description": "optional binding status", + "type": "string" +} - changed
Input schema / properties / document_type / descriptionPrevious value: -"optional type code, e.g. CODE"New value: +"backward-compatible source document class filter" - added
Input schema / properties / domainAdded value: +{ + "description": "optional reviewed legal domain", + "type": "string" +} - added
Input schema / properties / hierarchyAdded value: +{ + "description": "optional normalized legal hierarchy", + "type": "string" +} - added
Input schema / properties / jurisdictionAdded value: +{ + "description": "optional jurisdiction code from index metadata, e.g. LU or EU", + "type": "string" +} - added
Input schema / properties / languageAdded value: +{ + "description": "optional language code", + "type": "string" +} - added
Input schema / properties / source_classAdded value: +{ + "description": "optional source document class", + "type": "string" +}
- Changed
search1 field changed- changed
Input schema / properties / domain / descriptionPrevious value: -"optional reviewed EU domain id"New value: +"optional reviewed legal domain id"
2 tool updates
- Changed
article_history1 field changed- added
Input schema / properties / languageAdded value: +{ + "description": "optional language code; defaults to the work's primary derived language", + "type": "string" +}
- Changed
search1 field changed- changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"optional lu or eu"New value: +"optional jurisdiction code from index metadata, e.g. LU or EU"
10 tool updates
- First observed
article_history - First observed
as_of - First observed
changes_in_period - First observed
cited_by - First observed
coverage - First observed
diff - First observed
in_force_on - First observed
provenance - First observed
search - First observed
timeline
Related MCP Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Search EU legislation, CJEU case law, and treaties; traverse CELLAR graph; browse EuroVoc concepts.
Search Belgian & EU legislation: verbatim article text, per-article links, legal Q&A.
Search national and EU case law, legislation and regulation, with citations you can verify.
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.45 npm2Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.