内容
# 法国立法连接器 fr-eli-mcp
<!-- mcp-name: io.github.matematicsolutions/fr-eli-mcp -->
## 安装(单命令)
已发布到 PyPI 和 MCP 注册表(`io.github.matematicsolutions/fr-eli-mcp`)。无需克隆即可运行:
```bash
uvx fr-eli-mcp
```
环境变量中需要 PISTE 密钥:`PISTE_CLIENT_ID`,`PISTE_CLIENT_SECRET`(Legifrance/PISTE)。
MCP 客户端配置(stdio):
```json
{ "mcpServers": { "fr-eli-mcp": { "command": "uvx", "args": ["fr-eli-mcp"] } } }
```
(从源代码构建 - 见下文。)
一个用于 **法国 Legifrance API** 的 MCP 服务器,通过 [PISTE](https://piste.gouv.fr) 实现。它搜索
法国立法(LODA 法律和法令,法规)和案例法(JURI),并返回带有可验证引用的原文。
该服务器是 **eu-legal-mcp** 系列国家法律连接器的一部分,由 [MateMatic](https://matematic.co) 开发。
每个响应都包含引用合同:一个稳定的 `eli_uri`,一个 `human_readable_citation`
(法国惯例)和一个可解析的 `source_url`。
> **只读。** 服务器仅查询 Legifrance 并写入本地审计日志。 它从不修改
官方文本,从不发送查询/文档 ID 之外的任何内容。
## 工具
| 工具 | 功能 |
| --- | --- |
| `fr_search(query, fond, page_size)` | 关键字搜索 `fond`:`LODA`(法律和法令),`CODE`(法规),`JURI`(案例法)。 返回带有引用合同的搜索结果;`CODE` 搜索结果会显示匹配的 `article_id`s。 |
| `fr_get_act(text_id, date)` | 通过 `LEGITEXT...` ID 查询 LODA 法律/法令。 返回元数据 + 目录(`articles`)。 |
| `fr_get_text(article_id)` | 通过 `LEGIARTI...` ID 获取单个文章的原文。 |
| `fr_get_decision(decision_id)` | 通过 `JURITEXT...` ID 获取 JURI 法院判决,包含其 **原生 `ecli`**,法院,审理机构,解决方案和文本。 |
### 关于 ELI 和 ECLI 的说明
法国有一个官方的 ELI 方案,但 PISTE `lf-engine-app` **咨询 API 返回的原生
ELI 字段 `null`,适用于我们测试的立法**。遵循此系列的规则 - **说你没有的,不要捏造 ELI** -
`eli_uri` 携带 **稳定,可解析的 Legifrance 资源 URL**
(CID 键控),而不是从文本中解析的 `/eli/...` 字符串。 每个响应都重复此操作,位于 `eli_note` 中。
案例法则不同:API 返回 **原生,权威的 ECLI**
(例如 `ECLI:FR:CCASS:2025:C100399`),在 `fr_get_decision` 中原样显示。
## 配置
Legifrance 需要来自免费 PISTE 帐户的 OAuth2 应用程序凭证
(`piste.gouv.fr` → *应用程序* → 订阅 Legifrance API → *OAuth 凭证*)。
凭证仅从环境中读取:
| 变量 | 含义 |
| --- | --- |
| `FR_ELI_OAUTH_URL` | OAuth 令牌端点(`.mcp.json.example` 中显示的沙盒默认值)。 |
| `FR_ELI_BASE_URL` | Legifrance `lf-engine-app` 基址。 |
| `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`(gitignored)并填写您的凭证,或在主机环境中设置变量。 OAuth 令牌缓存在内存中并自动刷新。
## 安装
```bash
py -3.13 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]" # Windows
# 或:python -m pip install -e ".[dev]" # POSIX
```
## 测试
```bash
pytest tests/test_instructions_drift.py tests/test_parse.py # 离线,无凭证
pytest tests/test_smoke.py -v # 在线,需要 PISTE 凭证
```
## 分发
由于 Legifrance 需要 PISTE 密钥,此连接器通过 **PATRON / appliance** 渠道(受管辖)分发,而不是随意的下载。 请参阅 eu-legal-mcp 系列说明。
## 许可证
Apache-2.0。 Legifrance 内容 © 法国共和国 / DILA,并受 Legifrance / PISTE 使用条款的约束;该软件仅检索和引用它。