mcpField
F
fr-eli-mcp

fr-eli-mcp

本地服务
github.com/matematicsolutions法律与政务25 周前更新

关于 fr-eli-mcp

fr-eli-mcp 通过 PISTE 接入法国 Legifrance,供法律研究者查询法国立法、判例及相关协议文本。它提供原文和稳定引用标识,并明确区分可用的 ECLI 与缺失的 ELI。

主要功能

  1. 01搜索法律、法典与判例
  2. 02获取法条及判决原文
  3. 03查询 CNIL 决议与劳资协议
  4. 04返回稳定引用和来源链接
  5. 05提供覆盖范围说明
  6. 06只读查询并记录本地审计日志

适用场景

  1. 01检索法国法律与法典条文
  2. 02查找法国法院及宪法委员会判决
  3. 03核对 CNIL 决议和集体协议
  4. 04为法律资料生成可核验引用

MCP 相关

该 MCP 服务通过 PISTE 查询 Legifrance,提供搜索、获取法律文本、判决、CNIL 决议及协议的工具。需要配置 PISTE OAuth 凭据;服务只读,并为响应附上引用信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"matematicsolutions-fr-eli": {
"command": "uvx",
"args": [
"fr-eli-mcp"
]
}
}
}
启动命令uvx fr-eli-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypifr-eli-mcp0.5.3

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
fondstring否以下之一:``LODA``(法律与法令)、``CODE``(法典)、``JURI``(法国最高法院判例)、``CONSTIT``(法国宪法委员会的 QPC/DC 决定)、``CETAT``(行政法判例:法国国务委员会、行政上诉法院、行政法院)、``CNIL``(CNIL 审议,包括制裁)、``KALI``(集体劳动协议/集体协议)、``ACCO``(企业级协议——仅元数据和搜索)。
querystring是自由文本查询(例如,"republique numerique"、"responsabilite")。
page_sizeinteger否命中数(1..100)。

详细介绍

fr-eli-mcp

安装(一条命令)

已发布到 PyPI 和 MCP Registry(io.github.matematicsolutions/fr-eli-mcp)。无需克隆即可运行:

uvx fr-eli-mcp

需要在环境变量中配置 PISTE 凭据:PISTE_CLIENT_ID、PISTE_CLIENT_SECRET(Legifrance/PISTE)。

配置 MCP 客户端(stdio):

{ "mcpServers": { "fr-eli-mcp": { "command": "uvx", "args": ["fr-eli-mcp"] } } }
在启用了 Smart App Control 的 Windows 11 上

Smart App Control 会阻止未签名的可执行文件,包括 uvx.exe、pip.exe 以及 pip 在安装时生成的 fr-eli-mcp.exe 启动器。python.org 安装程序提供的 python.exe 和 py.exe 由 Python Software Foundation 签名,因此通过解释器运行模块即可:

python -m pip install fr-eli-mcp
python -m fr_eli_mcp

出于同样的原因,pip.exe 也会被阻止,因此请使用 python -m pip 安装,而不是 pip install。如果 python 不在 PATH 中,请使用 Windows 启动器:py -3 -m fr_eli_mcp。

{ "mcpServers": { "fr-eli-mcp": { "command": "python", "args": ["-m", "fr_eli_mcp"] } } }

请勿为了绕过此限制而关闭 Smart App Control——关闭后,只有重新安装 Windows 才能重新启用。

从源代码构建:请参阅安装。

一个通过 PISTE 访问 法国 Legifrance API 的 MCP 服务。它可搜索 法国立法(LODA 法律和法令、法典)、三个司法管辖体系的判例——法国最高法院 / 上诉法院(JURI)、宪法委员会(CONSTIT - QPC/DC 裁决)和 行政法院(CETAT - 国家行政法院、行政上诉法院、行政法院)——以及 CNIL 决议(CNIL)、集体劳动协议(KALI)和 公司层级协议(ACCO),并返回原文及可验证的引文。它是 MateMatic 推出的 eu-legal-mcp 国家法律连接器系列的一部分。

每条响应都包含引文约定:稳定的 eli_uri、human_readable_citation (法国惯例)和可解析的 source_url。

只读。 此服务仅查询 Legifrance 并写入本地审计日志。它不会修改官方文本,也不会发送查询内容 / 文档 ID 以外的任何信息。

工具

工具功能
fr_search(query, fond, page_size)在指定的 fond 中进行关键词搜索:LODA(法律和法令)、CODE(法典)、JURI(法国最高法院判例)、CONSTIT(宪法委员会裁决)、CETAT(行政判例:国家行政法院、CAA、TA)、CNIL(CNIL 决议)、KALI(集体劳动协议)、ACCO(公司层级协议)。返回符合引文约定的搜索结果;CODE 结果会提供匹配的 article_id。
fr_get_act(text_id, date)根据 LEGITEXT... ID 查阅 LODA 法律 / 法令。返回元数据和目录(articles)。
fr_get_text(article_id)根据 LEGIARTI... ID(立法 / 法典)或 KALIARTI... ID(集体协议)获取单条条文的原文。
fr_get_decision(decision_id)根据 JURITEXT...、CONSTEXT... 或 CETATEXT... ID 获取法院裁决,包含其原生 ecli(如有)、法院、审理机构、裁决结果和文本。
fr_get_deliberation(deliberation_id)根据 CNILTEXT... ID 获取 CNIL 决议(处罚、授权、意见),包含原文和引文 CNIL, deliberation n° ... du ...。
fr_get_convention(convention_id)根据 KALITEXT... ID 获取集体劳动协议文本。返回元数据和目录,其中的 KALIARTI... ID 可通过 fr_get_text 查询。
fr_get_company_agreement(agreement_id)根据 ACCOTEXT... ID 获取公司层级协议——仅提供元数据(公司、SIRET、IDCC、行业、主题、工会、日期)。Legifrance 仅以 .docx 附件形式提供完整的 ACCO 文本,因此该工具会引用 source_url,而不会重新提供文本。
fr_coverage()说明此连接器涵盖的内容、各类别的采集时间,以及明确说明未涵盖的内容。每项缺口都提供备用方案。
覆盖的语料库(实时总量,沙盒,2026-07-08)
语料库内容已验证总量
CNILCNIL deliberations>= 26 759(针对宽泛停用词查询的 totalResultNumber)
KALI集体劳动协议(conventions collectives)>= 35 790
ACCO公司级协议>= 387 656
覆盖的司法管辖区
语料库法院ID 前缀原生 ECLI
JURICour de cassation、cours d'appelJURITEXT...是
CONSTITConseil constitutionnel(QPC + DC 决定,PISTE 上实时数量约 7 400+)CONSTEXT...是(ECLI:FR:CC:...)
CETATConseil d'Etat、cours administratives d'appel(CAA)、tribunaux administratifs(TA)CETATEXT...Conseil d'Etat 有;CAA/TA 通常为 null(上游 ECLI 覆盖不均——绝不伪造)

Conseil constitutionnel 的决定采用法国引注惯例:Cons. const., decision n° 2025-1173 QPC du 7 novembre 2025 - [case name]。JURI/CETAT 决定会逐字引用 Legifrance 的 titre (法院、审判组织、日期、案号)。

Judilibre(api.piste.gouv.fr/cassation/judilibre)曾作为 Cour de cassation 的替代数据源进行评估,但除本连接器已持有的 Legifrance 订阅外,还需要单独订阅 PISTE API。于 2026-07-08 重新验证:有效的 Legifrance 令牌(授予的 scope 为 openid resource.READ)在沙盒主机上对所有尝试过的端点和认证形式均返回 403 (Bearer、KeyId、无认证 -> 400),而且生产 OAuth 端点会直接拒绝沙盒应用(invalid_client)。将 Judilibre API 订阅到 PISTE 应用需要在仪表板中操作,这超出了本连接器的范围。未集成——现有 Legifrance 订阅已通过 JURI 覆盖 Cour de cassation 判例。

关于 ELI 与 ECLI 的说明

法国有官方的 ELI 方案,但对于我们测试过的法律法规,PISTE lf-engine-app 咨询 API 返回的原生 ELI 字段为 null。遵循本项目的原则——如实说明缺失内容,绝不伪造 ELI——eli_uri 存放的是稳定、可解析的 Legifrance 资源 URL(以 CID 为键),而不是从正文解析出的 /eli/... 字符串。每个响应都会在 eli_note 中重复说明这一点。

判例则有所不同:API 会返回 Cour de cassation(例如 ECLI:FR:CCASS:2025:C100399)、Conseil constitutionnel(例如 ECLI:FR:CC:2025:2025.1173.QPC)和 Conseil d'Etat(例如 ECLI:FR:CECHR:2026:506507.20260529)的原生权威 ECLI,并由 fr_get_decision 原样提供。CETAT 下的 CAA/TA 决定通常没有 ECLI——该字段为 null,绝不伪造。

配置

Legifrance 需要通过免费的 PISTE 账户获取 OAuth2 应用凭据 (piste.gouv.fr → Applications → 订阅 Legifrance API → OAuth Credentials)。 凭据仅从环境中读取:

变量含义
FR_ELI_OAUTH_URLOAuth 令牌端点(.mcp.json.example 中显示了沙盒默认值)。
FR_ELI_BASE_URLLegifrance lf-engine-app 基础 URL。
FR_ELI_CLIENT_ID你的 PISTE 应用客户端 ID(必需)。
FR_ELI_CLIENT_SECRET你的 PISTE 应用客户端密钥(必需)。
FR_ELI_CACHE_DIR磁盘缓存目录(默认值为 ~/.matematic/cache/fr-eli)。
FR_ELI_AUDIT_DIR审计日志目录(默认值为 ~/.matematic/audit)。

将 .mcp.json.example 复制为 .mcp.json(已加入 git 忽略列表)并填写凭据,或在宿主环境中设置这些变量。OAuth 令牌会缓存在内存中并自动刷新。

安装

py -3.13 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"   # Windows
# or: python -m pip install -e ".[dev]"                  # POSIX

测试

pytest tests/test_instructions_drift.py tests/test_parse.py   # offline, no creds
pytest tests/test_smoke.py -v                                 # live, needs PISTE creds in .env

分发

由于 Legifrance 需要 PISTE 密钥,此连接器通过 PATRON / appliance 渠道(受治理)分发,而非随意下载使用。请参阅 eu-legal-mcp 项目说明。

许可

Apache-2.0。Legifrance 内容归法国共和国 / DILA 所有,并受 Legifrance / PISTE 使用条款约束;本软件仅检索并引用这些内容。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。