mcpField
I
it-eli-mcp

it-eli-mcp

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

关于 it-eli-mcp

it-eli-mcp 为法律专业人士及需要意大利法律资料的 MCP 客户端提供法规与判例检索。它结合 Normattiva 实时法规、宪法法院本地索引及两类法院的实时判例搜索,并支持引文核验。

主要功能

  1. 01检索 Normattiva 法规及历史版本
  2. 02搜索宪法法院判决全文
  3. 03实时搜索最高法院判决
  4. 04实时搜索行政法院判决
  5. 05核验法规与宪法判例引文

适用场景

  1. 01按指定日期查询法条版本
  2. 02搜索并读取意大利法院判决
  3. 03检查法律备忘录中的条文引用

MCP 相关

作为 MCP 服务,它向客户端提供意大利法规、宪法法院判例、Cassazione 与行政法院检索,以及引文核验工具。

配置

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

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

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

安装包
pypiitaly-eli-mcp0.7.3

工具

14

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

此工具无需参数。

详细介绍

it-eli-mcp

一个用于意大利法律的 MCP 服务,分为两层:

  • 立法:通过 Normattiva 获取,该网站是司法部的官方门户。服务以 Akoma Ntoso 格式获取法律文本,提供可验证的 URN:NIR 和 ELI 标识符,并返回法律在任意过去日期的文本版本(multivigenza)。实时访问,无需密钥。
  • 宪法判例(Corte Costituzionale):本地、无需密钥的全文索引,涵盖自 1956 年以来的所有裁决,每项裁决均带有其原生 ECLI,索引根据法院的官方开放数据构建。
  • 最高法院判例(Corte di Cassazione):实时、无需密钥地搜索 SentenzeWeb 全文;这是法院自有的免费公共搜索引擎,涵盖民事和刑事裁决,提供完整 OCR 文本,无需构建本地索引。
  • 行政判例(Consiglio di Stato、C.G.A.R.S.、TAR):实时、无需密钥地搜索 Giustizia Amministrativa 门户自有的公共裁决搜索系统;一个后端覆盖整个行政司法体系,包含 340 多万份裁决,带有原生 ECLI 和结构化全文。

按人数计算,意大利拥有欧盟规模最大的法律职业群体——根据 CCBE 数据,律师约有 24 万人,领先于德国和西班牙。此前没有实时、无需密钥的 MCP 连接器覆盖其成文法。本项目填补了这一空白,同时也覆盖宪法判例。

这是 MateMatic eu-legal-mcp 生产线的一部分:意大利版本与德国的 de-eli-mcp 和波兰的 sejm-eli-mcp 同属一个系列,采用相同架构和引文约定,并接入意大利数据源。

没有 JSON API。 Normattiva 不提供 REST API。此连接器采用浏览器使用的同一套基于会话的流程——解析 URN、读取法律页面、获取其 Akoma Ntoso 导出文件——因此每项法律都会以结构化 XML 返回,并保留其 ELI。请参阅 DISCOVERY.md。

许可。 意大利官方法律文本不受版权保护(第 633/1941 号法律第 5 条),且 Normattiva 声明自 2026-01-01 起,其数据采用 CC-BY-4.0 许可。此连接器按请求转发单项法律,并注明出处和 source_url;不会批量抓取数据库(Normattiva 的条款对此有限制)。每个响应都包含 dataset_note。(这是执业者的理解,并非正式法律建议。)

Cassazione 并非 Italgiure/ItalgiureWeb。 法院的完整数据库搜索(ItalgiureWeb,包含 3,500 多万份文档)仅对司法人员免费;执业者需付费订阅。此连接器不使用该服务。它查询的是 SentenzeWeb(italgiure.giustizia.it/sncass),这是法院另行发布的免费公共搜索引擎,依据**意大利开放数据许可(IODL 2.0)**提供,无需身份验证——开发期间已进行实时验证(请参阅 DISCOVERY.md)。其覆盖范围小于完整的 Italgiure 数据库,但内容真实可靠:提供 42 万多项民事和刑事裁决的完整 OCR 文本。

立法工具(Normattiva,实时)

工具功能
it_list_codes列出主要意大利法典和汇编法律(《民法典》《刑法典》《民事诉讼法典》《刑事诉讼法典》、隐私/GDPR、CAD、第 231/2001 号立法法令、《宪法》、第 241/1990 号法律)及其规范性 URN。
it_resolve将法律坐标(act_type、year、number)转换为规范且可解析的 URN:NIR。离线使用。
it_get_act根据法典名称、URN、ELI 路径或 normattiva.it URL 获取法律元数据(标题、日期、ELI、条款数量)。
it_get_text获取整部法律或单个 article 的文本;使用 at_date 获取指定日期的文本版本。

宪法法院判例工具(Corte Costituzionale,本地索引)

工具功能
it_case_search在裁决全文(标题、理由、裁决主文)中进行全文搜索。可按年份和类型(sentenza/ordinanza)筛选。忽略重音符号。
it_case_get_decision根据 ECLI(ECLI:IT:COST:2024:1)或年份 + 编号获取一项裁决的全文。
it_case_recent获取最新的裁决(按时间从新到旧排列)。
it_case_stats索引覆盖情况:裁决总数、年份范围、按类型统计的数量、上次构建时间。

判例工具读取本地 SQLite 索引,该索引会在首次调用时自动配置——无需进行设置。首次使用时,服务会从 GitHub 发布版本下载经过 sha256 校验的预构建 cost.sqlite.gz(由 CI 在每次发布时构建并附加),并将其解压;如果没有已发布的文件,则会根据法院的开放数据构建索引(包含自 1956 年以来的所有裁决)。之后,索引会缓存在 ~/.matematic 下,后续每次调用都会离线查询。it_case_stats 会报告 provenance 和 ingested_at,方便你查看索引的新旧程度。

如需刷新,或提前预构建索引(例如用于离线部署),请运行:

italy-eli-mcp-caselaw-ingest

可调节的环境变量:IT_ELI_CASELAW_INDEX_URL(覆盖/禁用预构建文件下载)、IT_ELI_CASELAW_INDEX_SHA256(固定校验和)、IT_ELI_CASELAW_AUTOBUILD=0(跳过自动本地构建)。立法工具无需索引,会实时获取数据。

最高法院判例工具(Corte di Cassazione、SentenzeWeb,实时)

工具功能
it_cassazione_search在裁决正文中进行全文搜索。筛选条件:chamber(“civile”/“penale”)、sub_chamber(“lavoro”/“tributaria”)、anno(年份)。返回按相关度排序的结果,并附有高亮摘录。
it_cassazione_get根据 SentenzeWeb 的 sic_id(取自搜索结果)获取一项裁决的全文。

无需导入步骤——每次调用都会实时查询 SentenzeWeb。覆盖范围:民事(snciv,约 19 万项)和刑事(snpen,约 23.8 万项)裁决,包括劳动(szdec:L,约 3 万项)和税务(szdec:5,约 5.9 万项)分庭,均提供 OCR 全文。

行政法院判例工具(Consiglio di Stato、C.G.A.R.S.、TAR,实时)

工具功能
it_ga_search在 Giustizia Amministrativa 门户中进行全文搜索和/或按裁决编号查找——通过一个后端覆盖整个行政司法管辖区(340 多万项裁判文书)。筛选条件:sede、tipo、numero、anno。结果附有法院原生 ECLI。
it_ga_get_decision根据 document_url(从搜索结果中原样复制)获取一项裁决的全文。

无需导入步骤——每次调用都会实时查询该门户自己的公开裁决搜索服务。

引文核验(防止幻觉)

工具功能
it_verify_citations从任意文本(草拟的答复、备忘录、合同条款)中提取意大利法律引文,并逐条对照来源进行核验。法规引文(art. 2043 c.c., art. 5 della legge 241/1990, artt. 1341 e 1342 c.c., commi)会逐条对照 Normattiva 上的现行法规进行检查;ECLI:IT:COST:* 引文则会对照本地宪法法院索引进行检查。
it_coverage声明此连接器涵盖的内容、各类数据的采集时间,以及明确说明未涵盖的内容。每个缺口都提供备用方案。

每条引文及整体报告的内容:

  • 是否存在,并提供范围提示。 如果所引条文不存在,结果会显示为 not_found,并提示实际存在的条文范围:art. 9999 does not exist in this act; the act has 372 articles, numbered art. 1-372。
  • 可选的内容检查。 引文后紧跟的括号描述(art. 2043 c.c. (risarcimento per fatto illecito))会使用字符三元组匹配,与实际条文进行比对。不匹配会触发审查提示(content_mismatch),但不会直接拦截——改述是合理的。
  • 严格的语义判定。 如果任何所引条文不存在,结果状态会设为 HALLUCINATION_DETECTED,且工具响应会携带 isError=true,调用模型因此不会误将其视为核验通过。如果文本中完全没有引文,状态会设为 NO_CITATIONS_FOUND——明确表示并未成功核验。
  • 结构化的 gaps。 工具无法核验的所有内容都会以带类型的缺口列出(out_of_corpus、unparseable_citation、act_unresolvable、upstream_unavailable、comma_not_checkable),而不是隐含在说明文字中。Normattiva 无法解析的法规属于缺口,而非幻觉:其是否存在尚不确定,并未被证伪。Cassazione 和行政法院的 ECLI 不在本地语料库中;请使用 it_cassazione_search / it_ga_search 核验。
it_verify_citations(text="L'art. 2043 c.c. e l'art. 9999 della legge 241/1990 si applicano.")
→ status: "HALLUCINATION_DETECTED" (isError=true)
  citations: [
    {raw: "art. 2043 c.c.", status: "verified", ...},
    {raw: "art. 9999 della legge 241/1990", status: "not_found",
     range_hint: "art. 9999 does not exist in this act; the act has <N> articles, ..."}
  ]
  gaps: []

解析、核验、报告这一流程改编自 chrisryugj/korean-law-mcp(MIT)——详见 THIRD_PARTY.md。内容匹配器使用字符三元组(韩文原版使用二元组,更适合黏着语;对意大利语而言,三元组的区分度更高)。

每个法规响应都包含引文契约:eli_uri(例如 eli/id/1990/08/18/090G0294/CONSOLIDATED)、urn(例如 urn:nir:stato:legge:1990-08-07;241)、human_readable_citation(例如 Legge 7 agosto 1990, n. 241)和 source_url。

如何识别法规

  • URN:NIR - urn:nir:{authority}:{type}:{date};{number}。仅包含年份的部分 URN(urn:nir:stato:legge:1990;241)也可以解析,因此你可以引用只知道为“L. 241/1990”的法规。
  • ELI - eli/id/{year}/{month}/{day}/{code}/CONSOLIDATED,从法规本身读取。绝不自行编造。

示例

it_list_codes()
→ [{key: "codice civile", urn: "urn:nir:stato:regio.decreto:1942-03-16;262", ...}, ...]

it_resolve(act_type="d.lgs", year=2001, number=231)
→ {urn: "urn:nir:stato:decreto.legislativo:2001;231",
   human_readable_citation: "Decreto legislativo n. 231/2001", source_url: "..."}

it_get_text(reference="codice civile", article="2043")
→ art. 2043 c.c. (Risarcimento per fatto illecito), with eli_uri + source_url

it_get_text(reference="codice privacy", article="1", at_date="2010-01-01")
→ the privacy code's art. 1 as it stood on 1 January 2010

it_cassazione_search(query="responsabilita medica", chamber="civile", limit=5)
→ {total_found: 81177, hits: [{sic_id: "snciv2025224393O",
   citation: "Cass. civ., ord. n. 24393/2025", snippet: "...", source_url: "..."}, ...]}

it_cassazione_get(sic_id="snciv2025224393O")
→ {citation: "Cass. civ., ord. n. 24393/2025", testo: "...", massima: "...", source_url: "..."}

安装

作为 Claude 插件(Claude Code 或桌面应用,需要 uv)安装; 有关其发送和存储的内容,请参阅 plugin/README.md:

/plugin marketplace add matematicsolutions/it-eli-mcp
/plugin install it-eli-mcp@it-eli-mcp

作为独立服务,可从 PyPI(uvx italy-eli-mcp)安装,也可从源码安装:

cd it-eli-mcp
pip install -e .

配置(Claude Code / 任意 MCP 客户端)

复制 .mcp.json.example:

{
  "mcpServers": {
    "it-eli-mcp": { "command": "italy-eli-mcp" }
  }
}
启用了 Smart App Control 的 Windows 11

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

python -m pip install italy-eli-mcp
python -m it_eli_mcp

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

{ "mcpServers": { "italy-eli-mcp": { "command": "python", "args": ["-m", "it_eli_mcp"] } } }

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

环境变量:

  • IT_ELI_BASE_URL - 默认值为 https://www.normattiva.it
  • IT_ELI_CACHE_DIR - 默认值为 ~/.matematic/cache/it-eli
  • IT_ELI_AUDIT_DIR - 默认值为 ~/.matematic/audit
  • IT_ELI_CASELAW_DB - 宪法判例索引路径(默认值为 ~/.matematic/data/it-eli-caselaw/cost.sqlite)
  • IT_ELI_CASELAW_INDEX_URL - 预构建索引下载 URL(默认值:GitHub 发布资源;'' 表示禁用)
  • IT_ELI_CASELAW_INDEX_SHA256 - 固定预期索引校验和,不再获取 .sha256 旁置文件
  • IT_ELI_CASELAW_AUTOBUILD - 设为 0 可跳过自动本地构建(优先返回 index_missing 错误)

测试

pip install -e ".[dev]"
pytest -m "not smoke"   # offline (URN, Akoma Ntoso parser, case-law index, drift)
pytest -m smoke         # live: Normattiva + Corte Costituzionale open data + SentenzeWeb

审计日志

每次工具调用都会向 ~/.matematic/audit/it-eli-mcp.jsonl 追加一行 JSON(时间戳、工具、 输入哈希、输出大小、耗时、状态),用于记录。不会存储原始查询文本。

许可证

Apache-2.0。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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