Lex — Temporal Luxembourg and EU Law
REMOTE · LAW.SOUFIEN.LU
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
Available components
Last scanned (41 days ago)
Scores higher than 0% of remote servers
Unreachable for 7 days in a row. Last reached 16 Sep 2026.
Category Education and Research
Dead
Every channel of this server has been unreachable for long enough to be marked dead. Its trust score is pinned to 0 and does not recover automatically: even once the server responds again it stays dead until it is manually reinstated.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC not yet verified: we couldn't validate it against a resolver. View diagnostics → Unverified
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 −16
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 −16
The score moved with no change recorded against any check. We would rather say so than guess.
- 23 Sept 26 −15
The score moved with no change recorded against any check. We would rather say so than guess.
- 20 Sept 26 −16
The score moved with no change recorded against any check. We would rather say so than guess.
- 19 Sept 26 −16
The score moved with no change recorded against any check. We would rather say so than guess.
- 17 Sept 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- DNSSEC: fail → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- HSTS header: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 6 Sept 26 0
- Stability: 0.97 → pass security
- 5 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Probed https://law.soufien.lu/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC inconclusive
Validation of law.soufien.lu. — Inconclusive
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| law.soufien.lu. | Error no A/AAAA/CNAME RRset answered for the name |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://law.soufien.lu/mcp | Unreachable | ||
| http (plaintext) | http://law.soufien.lu/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
article_history ~225
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 | Type | Req | Description |
|---|---|---|---|
| anchor | string | yes | provision anchor, e.g. art_1er (find it via search or as_of mode=outline) |
| from_date | string | – | optional ISO date: keep only the states in force at or after it |
| language | string | – | optional language code; defaults to the work's primary derived language |
| publisher | string | – | publisher id; required when work is not publisher-qualified |
| to_date | string | – | optional ISO date: keep only the states that began on or before it |
| work | string | 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. |
No output schema declared.
No examples provided.
as_of ~224
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 | Type | Req | Description |
|---|---|---|---|
| anchors | string | – | optional comma-separated provision anchors for mode=outline; required for mode=select, e.g. art_1er,art_33 |
| date | string | yes | ISO date YYYY-MM-DD |
| language | string | – | optional language code, e.g. fr |
| mode | string | – | full | outline | select (default full) |
| publisher | string | – | publisher id; required when work is not publisher-qualified |
| version_key | string | – | optional opaque key returned by timeline or an ambiguous_version choice |
| work | string | 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. |
No output schema declared.
No examples provided.
changes_in_period ~313
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 | Type | Req | Description |
|---|---|---|---|
| act_form | string | – | optional legal act form |
| binding_status | string | – | optional binding status |
| document_type | string | – | optional source document class(es), comma-separated; prefix with ! to exclude, e.g. !RECUEIL,!CODE_RECUEIL for instruments only |
| domain | string | – | legacy domain filter; current v4 indexes leave it empty |
| from_date | string | yes | ISO date, start of window (inclusive) |
| hierarchy | string | – | optional normalized legal hierarchy |
| jurisdiction | string | – | optional jurisdiction code from index metadata, e.g. LU or EU |
| language | string | – | optional language code |
| limit | integer | – | default 20 |
| offset | integer | – | skip this many, for paging |
| order | string | – | by_date (default) or by_churn |
| publisher | string | – | optional publisher id |
| source_class | string | – | optional source document class; alias of document_type |
| to_date | string | yes | ISO date, end of window (inclusive) |
No output schema declared.
No examples provided.
cited_by ~86
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 | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | default 50 |
| work | string | yes | the law being cited, e.g. lu-legilux:loi-2020-06-04-a476 |
No output schema declared.
No examples provided.
coverage ~53
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 | Type | Req | Description |
|---|---|---|---|
| publisher | string | – | optional publisher id |
No output schema declared.
No examples provided.
diff ~207
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 | Type | Req | Description |
|---|---|---|---|
| anchor | string | – | optional held provision anchor returned by search, e.g. art_92 |
| from_date | string | yes | ISO date |
| from_version_key | string | – | optional opaque key returned by timeline or an ambiguous_version choice |
| language | string | – | language code |
| publisher | string | – | publisher id; required when work is not publisher-qualified |
| to_date | string | yes | ISO date |
| to_version_key | string | – | optional opaque key returned by timeline or an ambiguous_version choice |
| work | string | 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. |
No output schema declared.
No examples provided.
in_force_on ~223
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 | Type | Req | Description |
|---|---|---|---|
| act_form | string | – | optional legal act form |
| binding_status | string | – | optional binding status |
| date | string | yes | ISO date |
| document_type | string | – | backward-compatible source document class filter |
| domain | string | – | legacy domain filter; current v4 indexes leave it empty |
| hierarchy | string | – | optional normalized legal hierarchy |
| jurisdiction | string | – | optional jurisdiction code from index metadata, e.g. LU or EU |
| language | string | – | optional language code |
| limit | integer | – | default 50 |
| offset | integer | – | pagination offset |
| publisher | string | – | optional publisher id, e.g. lu-legilux |
| source_class | string | – | optional source document class |
No output schema declared.
No examples provided.
provenance ~55
Proof chain for one lex_id: source URI, retrieval time, record/body hashes, event chain, corpus commit, index build, stamp signature.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | optional |
| lex_id | string | yes | full lex_id |
No output schema declared.
No examples provided.
search ~327
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 | Type | Req | Description |
|---|---|---|---|
| act_form | string | – | optional legal act form |
| as_of | string | – | ISO date required when time_scope=as_of |
| binding_status | string | – | optional binding status |
| document_type | string | – | backward-compatible document type filter |
| domain | string | – | legacy domain id filter; current v4 indexes leave it empty; use publisher_metadata_identifier for official classifications |
| fuzzy | string | – | auto or off; visible fallback only |
| hierarchy | string | – | optional normalized legal hierarchy |
| jurisdiction | string | – | optional jurisdiction code from index metadata, e.g. LU or EU |
| language | string | – | optional language code |
| limit | integer | – | default 10; minimum 1, maximum 50 |
| publisher | string | – | optional publisher id |
| publisher_metadata_identifier | string | – | optional exact official publisher-metadata URI returned by a search hit |
| query | string | yes | search terms |
| retrieval_mode | string | – | keyword or hybrid; default keyword until activation |
| source_class | string | – | optional source document class |
| time_scope | string | – | all_versions or as_of |
| works | string | – | optional comma-separated work ids: restrict search to these works |
No output schema declared.
No examples provided.
timeline ~130
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 | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | max versions (default 100) |
| offset | integer | – | pagination offset |
| publisher | string | – | publisher id; required when work is not publisher-qualified |
| work | string | 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. |
No output schema declared.
No examples provided.
How do I install the Lex — Temporal Luxembourg and EU Law MCP server?
Lex — Temporal Luxembourg and EU Law is a hosted endpoint at https://law.soufien.lu/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · law.soufien.lu
claude mcp add --transport http sfhajji-lex 'https://law.soufien.lu/mcp'
What is the Lex — Temporal Luxembourg and EU Law MCP server?
Lex — Temporal Luxembourg and EU Law is an MCP server listed in the public MCP registry as io.github.SFHAJJI/lex. Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance. This page covers its hosted endpoint (https://law.soufien.lu/mcp).
Is the Lex — Temporal Luxembourg and EU Law MCP server safe to use?
Lex — Temporal Luxembourg and EU Law scores 0 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Lex — Temporal Luxembourg and EU Law MCP server expose?
Lex — Temporal Luxembourg and EU Law exposes 10 tools: as_of, timeline, in_force_on, diff, search, and 5 more. Their descriptions and schemas cost roughly 1,843 tokens of context every time the server is loaded.
Does the Lex — Temporal Luxembourg and EU Law MCP server require authentication?
Its publisher declares no required credentials for Lex — Temporal Luxembourg and EU Law. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the Lex — Temporal Luxembourg and EU Law MCP server still maintained?
Lex — Temporal Luxembourg and EU Law has been unreachable for long enough that we treat it as dead, and its score is pinned to zero. We last reached this channel on 16 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.