Lex — Temporal Luxembourg and EU Law

io.github.SFHAJJI由 GitHub 账号 SFHAJJI 发布v1.2.0更新于 Nov 2, 2026

Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆

概览

AI 生成的概览

远程 MCP 服务器,用于查询特定日期的卢森堡与欧盟法律:解析法案、按日期读取条文、比较版本并核查来源。

可以做什么
  • 解析法案标识与固定哈希的永久链接,读取某日期适用的法案状态及其条文
  • 列出法案的各版本状态、单条条文的历史,以及两个日期之间的条文级差异
  • 查询某日期生效的法案、某期间开始的状态,并浏览或检索所收录的索引
  • 查看来源、摘要、引用与被引用关系,以及发布方的分类事实
  • 校验固定哈希的永久链接,并按页获取有上限的证据包以便引用
  • 读取事件日志、被修订作废的历史回答,以及收录范围说明
适用场景
适合需要回答“某部卢森堡或欧盟法律在某日如何规定”、比较法案不同版本,或给出可核验来源与摘要的引文时使用。也适合先确认某部法案或条文是否被收录。
运行要求
远程 MCP 端点,位于 law.soufien.lu,使用 streamable HTTP;未声明任何软件包、账号、API 密钥或请求头。需要能访问该主机的网络。
安装前请注意
服务器声明不提供法律意见,也不将法律适用于具体情形,回答不应视为法律咨询。内置助手工具始终返回不可用结果,而非模型回答。欧盟日期为文本措辞日期而非适用日期,且不保存观测时间,涉及日期的结论需谨慎。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Lex — Temporal Luxembourg and EU Law,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.SFHAJJI%2Flex/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "lex-temporal-luxembourg-and-eu-law": {
      "type": "http",
      "url": "https://law.soufien.lu/mcp"
    }
  }
}

README

Lex V3

Lex shows the published text of Luxembourg and European Union law as it stood on a date, article by article, with the official source, the text's hash and a permalink. It is served at https://law.soufien.lu (open since 27 October 2026), in French and English, over the pages, a REST API and an MCP server on one origin. It does not give advice, apply the law to a situation, make its own consolidation or let a model choose an act or rank results.

How it is built, in short: the publishers' files (Formex XML from the Publications Office, Akoma Ntoso from Legilux) are parsed into relational SQLite indexes (works, dated versions and their validity intervals, articles, hashes, publisher relations), built twice and compared byte for byte; questions are parsed by deterministic parsers (ELI, CELEX, citations, dates); retrieval goes by structure first (act, version on a date, article), then lexical search over the articles' text; every answer is a typed envelope and every refusal a typed code with a mandatory payload. Releases are reproducible, signed images, checked against the release serving before them. An assistant is built to a typed answer contract (the model only plans; code validates and quotes) and is switched off until its gates pass.

Where to read more: STATUS.md (what is served, what is next), docs/OPERATING.md (how it runs), LAUNCH-CONTRACT.md (the acceptance list), and on the site itself the Developers page and "What this site holds". Work starts from v3/integration; main is the legacy line.

Local verification

powershell
dotnet test Lex.V3.slnx --configuration Releasenpm test --prefix webnpm run build --prefix webpwsh -File eng/verify-v3-tree.ps1

来源:README.md,提交 a741573

工具

24

resolve

Resolve a Luxembourg legal-act identifier or a hash-pinned permalink to the work and expression it names.

输入参数identifier必填

as_of

The state of a Luxembourg act applicable on a date (publisher), with its articles; for an EU act, the wording dated at or before the date (an EU wording date, never an applicability date).

输入参数date必填languageidentifier必填

timeline

Every state of a Luxembourg act the index holds, in publisher applicability order; for an EU act, every wording its census discovered, in wording-date order.

输入参数languageidentifier必填

article_history

The history of one article of a Luxembourg act across its states.

输入参数anchor必填languageidentifier必填

diff

The article-level difference between the states of a Luxembourg act on two dates.

输入参数date_to必填languagedate_from必填identifier必填

changes_in_period

The Luxembourg states that began in a period, for a work or across the index.

输入参数limitdate_to必填languagedate_from必填identifier

in_force_on

The Luxembourg works with a state applicable on a date.

输入参数date必填limitlanguageidentifierafter_work_key

coverage

What this mount holds and serves, named, and what it does not.

输入参数language

provenance

The retained sources, rule profiles and digests behind a Luxembourg state.

输入参数date必填languageidentifier必填

dossier

The work record of a Luxembourg act as the index holds it; for an EU work named by identifier, its held expressions from the EU index.

输入参数languageidentifier必填

citation

The references the publisher wrote in the text of a Luxembourg state's articles.

输入参数date必填afterlimitanchorlanguageidentifier必填

cited_by

The references, in any held Luxembourg state, whose target is exactly this work.

输入参数afterlimitidentifier必填

verify

Verify a hash-pinned permalink against the state digest the index holds, or read the current digests to pin.

输入参数languageidentifier必填

relations

The reference edges of a Luxembourg work in both directions, as one ordered, paged list.

输入参数dateafterlimitlanguagedirectionidentifier必填

evidence_bundle

What a quote of a Luxembourg state needs, one bounded page at a time (at most 50 articles and 96 KiB of text; page or article chooses the page, contents adds the table of contents): each article's text with its digests, the state's permalink, digests, sources and official identities, composed under the rights rule; for an EU act, the same for the wording of the date.

输入参数date必填pagearticlecontentslanguageidentifier必填

classification

The publisher's typed facts about a Luxembourg work, verbatim: document type, RDF types, legal value, responsible body, historical identifiers, publication and document dates.

输入参数languageidentifier必填

manifestation

The publisher's manifestations of a Luxembourg work's expressions with their formats and items, the retained one marked with its body digest.

输入参数formatlanguageidentifier必填

status_on

The publisher's force assertions about a Luxembourg work (its inForceStatus, dateEntryInForce and dateNoLongerInForce facts), verbatim, beside the state applicable on a date, with one fixed reading of the dates.

输入参数date必填languageidentifier必填

browse

The Luxembourg works this mount holds, one ordered and paged list with their identifiers, languages, state dates and the publisher's document types; filter by type or language.

输入参数typeafterlimitlanguage

ask

The contained assistant (Decisions 51 and 91): every question answers the typed presentation result assistant_v3_unavailable, naming the deterministic operations that answer from held law; no model answers.

输入参数question必填

events

The Luxembourg event log, polled by cursor, at least once: a genesis log holds one first_sighting per held state; a chained log adds each later build's comparison events; each build's time, never an observation time.

输入参数aftereventlimit

answer_drift

The past dated answers a publisher revision invalidated, enumerated from the log's revising events; a genesis log holds none, and the answer says why rather than asserting that nothing drifted.

输入参数afterlimitidentifier

as_observed

The state of a Luxembourg act applicable on a date (publisher) as one build of the mounted log held it, named by that build's index digest, with its build time as an upper bound on observation; a time refuses, since no observation time is held.

输入参数atdate必填languagesnapshotidentifier必填

版本历史

1
  1. v1.2.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分