mcpField
L
legal-text-mcp-de

legal-text-mcp-de

本地服务
klein-business.github.io法律与政务22 周前更新

关于 legal-text-mcp-de

legal-text-mcp-de 提供德国联邦、州及欧盟法律文本,并附结构化元数据和来源溯源信息。它面向需要检索法律资料的 MCP 客户端与开发者,仅提供文本和引文,不提供法律建议。

主要功能

  1. 01列出法律并获取单项条文
  2. 02搜索法律文本并解析引文
  3. 03通过 legal:// 提供只读资源
  4. 04记录来源 URL、时间戳和哈希
  5. 05提供 HTTP API 和命令行

适用场景

  1. 01按引文查找法律条文
  2. 02按主题或短语搜索法律
  3. 03在 MCP 客户端中加载法律文本
  4. 04检查来源信息和语料覆盖范围

MCP 相关

向 MCP 客户端提供工具、只读 legal:// 资源和精选提示词。服务使用配置的数据集,并支持 streamable HTTP 传输。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"klein-business-legal-text-mcp-de": {
"command": "uvx",
"args": [
"legal-text-mcp-de"
],
"env": {
"DATASET_PATH": "<DATASET_PATH>",
"STRICT_DATASET": "<STRICT_DATASET>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
启动命令uvx legal-text-mcp-de
需要配置的环境变量
DATASET_PATHPath to a normalised corpus directory or a corpus archive (legal-texts-de-*.tar.zst). Defaults to the bundled fixture; production deployments should mount /data/corpus/latest.tar.zst.
STRICT_DATASETSet to 'true' to refuse to start if the dataset cannot be loaded (recommended for hosted deployments).
ANTHROPIC_API_KEY密钥Optional. Required only for the smart `research_topic` tool which uses LLM-assisted synthesis. Without it, the tool degrades gracefully to a ranked-search fallback.

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

安装包
pypilegal-text-mcp-de2.1.3
ocighcr.io/klein-business/legal-text-mcp-de:2.1.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

legal-text-mcp-de: German legal text MCP server banner

PyPI version Python 3.12 / 3.13 License: Apache 2.0 GitHub release Container image Docs

CI CodeQL OpenSSF Scorecard OpenSSF Best Practices SLSA Level 3 Signed by cosign MCP Registry

legal-text-mcp-de

适用于 LLM Agent 的可引用级德国法律文本基础设施。 约 8 500 部联邦、州和欧盟法律,可通过 MCP、HTTP API 和 typer shell CLI 使用 — 全部运行在同一运行时,并由 gesetze-im-internet.de 和 EUR-Lex / Cellar 提供加密溯源信息。

这是本地或服务端基础设施:无 SaaS、无计费、无账户、无租户模型,且不提供法律建议。运行时会加载快速 CI 使用的已提交 fixture 包,或在 Git 之外构建的生产语料包。德国联邦法律的官方文本来自 gesetze-im-internet.de,欧盟法规(如 GDPR)的官方文本来自 EUR-Lex / Cellar。

不提供法律建议。 本软件返回文本和结构化元数据。它不会解释法律、就法律提供建议,也不会得出任何法律结论。维护者不对在法律决策场景中的使用承担任何责任。

较早的内部文档已归档至 docs-legacy/summary.md。

状态

生命周期稳定版 v2.1.3(v2.1.0 typer-CLI 次要版本的当前补丁版本)— 原生 MCP 领域服务,附带 typer CLI
版本控制SemVer 2.0.0(稳定性承诺自 v1.0.0 起生效)
许可证Apache License 2.0 — 参见 LICENSE 和 NOTICE
上游项目源自 floleuerer/deutsche-gesetze-mcp(MIT,保留)

功能

  • 用于列出法律、获取法条、解析引文、全文搜索和查询来源溯源信息的 MCP 工具。
  • 基于同一运行时的 HTTP API(FastAPI),提供结构化的 /health、/ready、/laws、/search 和 OpenAPI 端点。
  • 溯源优先设计:每部法律和每条法条都带有来源 URL、 获取时间戳、内容哈希以及所经过的解析器路径。
  • 两种语料模式:用于确定性测试和 CI 的已提交 fixture 包,或在运行时基于官方来源构建的生产包。
  • 不捆绑编辑内容:本仓库提供工具,不提供法律文本。运行时从官方来源加载文本。

安装

使用显式数据集通过 pip 或 uvx 安装
pip install legal-text-mcp-de==2.1.3
DATASET_PATH=/path/to/dataset legal-text-mcp-de serve
# Or:
DATASET_PATH=/path/to/dataset uvx legal-text-mcp-de==2.1.3 serve
  • 软件包和标准 Docker 镜像仅包含运行时。
  • DATASET_PATH 必须指向包含 laws.json、norms.json 和 search-index.json 的标准化数据集目录。
  • 公共语料 OCI 引用和 -full 镜像目前会返回 DENIED;没有经过验证的公共语料下载源。
  • CLI 和 HTTP 运行时不会自动准备可用的数据集。.tar.zst 压缩包不支持直接用作运行时路径。
  • 按照联邦语料指南,使用官方来源构建已注册的九部联邦法律。这需要当前源代码检出版本,并包含超出 v2.1.3 的修复。
  • 尚未实现 prepare_data.build_corpus --sources bund。其归档输出与服务使用的数据集格式不同。
使用挂载的数据集通过 Docker 运行
docker run -p 8001:8001 \
  -v /absolute/path/to/dataset:/data/legal-texts:ro \
  ghcr.io/klein-business/legal-text-mcp-de:2.1.3 \
  uv run --frozen --no-sync legal-text-mcp-de http
  • 使用与所选运行时版本兼容的数据集。
  • /health 检查进程;/ready 检查 HTTP API 是否能提供其数据集服务。
  • 对于新构建的联邦数据,请遵循指南中的源镜像构建说明。
模式 5 — 公共托管服务
// claude_desktop_config.json
{
  "mcpServers": {
    "legal-de": {
      "url": "https://mcp.klein.business/legal/de",
      "transport": "streamable-http"
    }
  }
}

CLI

legal-text-mcp-de 提供完整的子命令 CLI。直接调用会显示 --help。常用命令:

legal-text-mcp-de serve              # start the MCP server (replaces the v2.0 bare invocation)
legal-text-mcp-de http               # start the FastAPI HTTP API
legal-text-mcp-de laws --query DSGVO # list laws
legal-text-mcp-de norm BGB "§ 433"   # fetch a single norm
legal-text-mcp-de search Werbung     # full-text search
legal-text-mcp-de corpus info        # inspect locally cached bundle metadata
legal-text-mcp-de version            # version + Python + platform

要输出机器可读内容,请将 --json 或 --output yaml 放在子命令之前;data 字段包含 HTTP 响应格式。完整子命令列表请参阅 CLI 参考。

v2.1.0 中的重大变更: 现在直接调用 legal-text-mcp-de 会显示 --help。 添加 serve 以保持 v2.0 的行为(启动 MCP 服务)。

快速入门

MCP 客户端兼容性
  • 已测试要求记录客户端版本、传输方式、成功调用 tools/list,以及成功调用一次工具。
  • 仅有配置示例不构成测试证据。以下客户端运行情况仍为 [UNVERIFIED];协议级 CI 不能证明与桌面客户端兼容。
客户端测试状态stdiostreamable-HTTP设置 / 证据请求
Claude Desktop待定[UNVERIFIED][UNVERIFIED]快速入门
Cursor待定[UNVERIFIED][UNVERIFIED]快速入门
Continue待定[UNVERIFIED][UNVERIFIED]报告客户端测试
Cline待定[UNVERIFIED][UNVERIFIED]报告客户端测试
Zed待定[UNVERIFIED][UNVERIFIED]报告客户端测试
使用已提交的固定语料运行 MCP 服务
uv sync --all-groups

DATASET_PATH=tests/fixtures/normalized \
STRICT_STARTUP=true \
uv run legal-text-mcp-de serve

默认传输方式是在 http://localhost:8001/mcp 上运行的 streamable HTTP。CLI 不提供 stdio;请参阅 stdio 传输状态。

开发快捷方式。 Justfile 封装了常用的 uv 调用(just install、just test、just lint、just run、 just api、just docs)。通过 brew install just 安装。 Justfile 是可选的——CI 只会直接使用 uv。

运行 HTTP API

自 v2.1 起,最简单的方法是使用新的 CLI:

DATASET_PATH=tests/fixtures/normalized \
STRICT_STARTUP=true \
uv run legal-text-mcp-de http

默认端口为 8001(来自 settings.port / PORT 环境变量);使用 --port <N> 可覆盖该值。

或者直接通过 uvicorn 运行(等效——使用相同的 FastAPI 应用):

DATASET_PATH=tests/fixtures/normalized \
STRICT_STARTUP=true \
uv run uvicorn legal_text_mcp_de.http_api:app --host 127.0.0.1 --port 8001

HTTP 层会强制实施 MAX_REQUEST_BODY_BYTES(默认值为 1048576 = 1 MiB), 作为纵深防御的请求体大小上限;超出上限的请求将返回 413 Payload Too Large。仍预期运营方的反向代理会在此基础上 实施代理级别的限制。

Docker

Docker 镜像不包含法律文本数据。请将经过验证的 数据包挂载到 /data/legal-texts:

docker run --rm -p 8001:8001 \
  -v /path/to/legal-text-package:/data/legal-texts:ro \
  ghcr.io/klein-business/legal-text-mcp-de:2.1.3 serve

MCP 资源

自 v2.0 起,语料以只读 legal:// URI 的形式公开,任何 MCP 客户端都可以直接将其加载到大模型上下文中。示例:

  • legal://laws — 分页索引
  • legal://laws/bgb — BGB 标题和规范索引
  • legal://laws/bgb/norms/par:433 — 以 Markdown 格式呈现的 § 433 BGB
  • legal://corpus/coverage — 语料包含的内容

完整 URI 目录请参阅 docs/concepts/mcp-native.md。

MCP 提示词(斜杠命令)

五种精选工作流会在 MCP 客户端中显示为斜杠命令:

斜杠命令参数用途
/rechtsfragefrage、rechtsgebiet?回答德国法律问题,并准确引用规范
/zitation-checkencitation解析引文(例如 § 433 Abs. 1 BGB)并提供 Stand-Datum
/norm-erklaerencode、norm以通俗语言解释,并引用交叉参考内容
/recherchetopic使用智能工具 research_topic 进行多步骤研究
/dsgvo-checkaktivitaet针对一项处理活动,逐项检查 GDPR 第 5、6、7、9、13、14 条

智能工具

research_topic 是一种多步骤研究工具,每次调用会协调执行 2 次大模型采样调用:

  1. 在语料中搜索候选规范
  2. 使用大模型按相关性对候选项排序
  3. 加载相关规范关系图
  4. 使用大模型综合生成结构化研究报告

当客户端不支持采样时,该工具会返回降级报告,其中仅包含已排序的候选项。

数据来源

来源覆盖范围复用方式
gesetze-im-internet.de德国联邦法律根据 UrhG §5 (1),可按公有领域等同方式使用
EUR-Lex / Cellar (publications.europa.eu)欧盟法案(GDPR、AI Act、Data Act 等)根据 Commission Decision 2011/833/EU,允许注明出处后复用

本仓库未提交来自这些来源的文本。生成语料库的流水线会在构建时获取这些文本,并将来源信息存储在清单中。

MCP 工具

完整内容请参阅 MCP 工具参考。主要工具:

  • list_laws(query?) — 列出已加载的法律,可选按元数据筛选。
  • get_law(code) — 返回法律元数据和规范化条文摘要。
  • get_norm(code, norm) — 返回一条结构化规范。
  • search_laws(query, codes?) — 搜索规范化文本。
  • resolve_citation(...) — 解析结构化引文,不进行法律解释。
  • get_source_metadata(code?)、get_source_limitations(...)、 get_corpus_coverage()、get_related_norms(code, norm)。

MCP 工具返回兼容 JSON 的对象,不会返回经过双重序列化的 JSON 字符串。

HTTP API

方法路径用途
GET/health存活状态
GET/ready就绪状态
GET/laws列出法律
GET/laws/{code}法律详情
GET/laws/{code}/norms/{norm}规范详情
GET/laws/{code}/norms/{norm}/relationships关系元数据
GET/corpus/coverage语料库覆盖范围摘要
GET/corpus/source-limitations来源限制查询
GET/search搜索
GET/openapi.jsonOpenAPI 文档

条文加分项的路径必须进行 URL 编码:

/laws/egbgb/norms/art%3A246a%2Fpar%3A1

文档

完整文档发布于 klein-business.github.io/legal-text-mcp-de。

快捷链接:

权威文档位于仓库中:README.md、 CHANGELOG.md、SECURITY.md、 CONTRIBUTING.md、GOVERNANCE.md、 NOTICE、LICENSE。

开发

uv sync --all-groups
uv run --group dev pytest

完整的基于夹具的发布门禁:

uv run --group dev python scripts/verify_release.py

公开切换就绪门禁:

uv run --group dev python scripts/verify_pre_flip.py

Justfile 封装了常用目标(just test、 just lint、just docs、just run、just api),方便使用。

贡献

请参阅 CONTRIBUTING.md,了解指南、行为准则和安全政策。 所有贡献都必须遵守开发者原创声明 (使用 git commit -s 签署)。

验证

自 v1.0.0 起的每个版本都经过签名,并附带 SBOM 和 SLSA-3 来源证明。以下示例使用 v2.1.3;请替换为 你实际拉取的标签。

Cosign 镜像签名
cosign verify ghcr.io/klein-business/legal-text-mcp-de:2.1.3 \
  --certificate-identity-regexp 'https://github.com/klein-business/.*' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

请参阅 使用 cosign 验证, 了解 SBOM 和 SLSA 证明的验证方法。

许可证与致谢

本项目采用 Apache License 2.0 许可。 所需归属信息请参阅 NOTICE。

衍生自 floleuerer/deutsche-gesetze-mcp (版权所有 (c) 2025 Florian Leuerer,MIT)。上游许可证条款已 保留在 licenses/MIT-floleuerer.txt 中。


MCP Registry:io.github.klein-business/legal-text-mcp-de · registry.modelcontextprotocol.io

mcp-name: io.github.klein-business/legal-text-mcp-de

评论

支持 Markdown

第一次接触 MCP?

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

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