关于 legal-text-mcp-de
legal-text-mcp-de 提供德国联邦、州及欧盟法律文本,并附结构化元数据和来源溯源信息。它面向需要检索法律资料的 MCP 客户端与开发者,仅提供文本和引文,不提供法律建议。
主要功能
- 01列出法律并获取单项条文
- 02搜索法律文本并解析引文
- 03通过 legal:// 提供只读资源
- 04记录来源 URL、时间戳和哈希
- 05提供 HTTP API 和命令行
适用场景
- 01按引文查找法律条文
- 02按主题或短语搜索法律
- 03在 MCP 客户端中加载法律文本
- 04检查来源信息和语料覆盖范围
MCP 相关
向 MCP 客户端提供工具、只读 legal:// 资源和精选提示词。服务使用配置的数据集,并支持 streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx legal-text-mcp-deDATASET_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
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 不能证明与桌面客户端兼容。
| 客户端 | 测试状态 | stdio | streamable-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
- 最简 HTTP 模式 Compose 示例请参阅
examples/docker-compose/http/。 - 已提交且经 CI 测试的生产级堆栈(通过 Caddy 在 MCP + HTTP 前端提供服务,可通过 Compose 配置文件切换)请参阅
examples/docker-compose/production/。
MCP 资源
自 v2.0 起,语料以只读 legal:// URI 的形式公开,任何 MCP 客户端都可以直接将其加载到大模型上下文中。示例:
legal://laws— 分页索引legal://laws/bgb— BGB 标题和规范索引legal://laws/bgb/norms/par:433— 以 Markdown 格式呈现的 § 433 BGBlegal://corpus/coverage— 语料包含的内容
完整 URI 目录请参阅 docs/concepts/mcp-native.md。
MCP 提示词(斜杠命令)
五种精选工作流会在 MCP 客户端中显示为斜杠命令:
| 斜杠命令 | 参数 | 用途 |
|---|---|---|
/rechtsfrage | frage、rechtsgebiet? | 回答德国法律问题,并准确引用规范 |
/zitation-checken | citation | 解析引文(例如 § 433 Abs. 1 BGB)并提供 Stand-Datum |
/norm-erklaeren | code、norm | 以通俗语言解释,并引用交叉参考内容 |
/recherche | topic | 使用智能工具 research_topic 进行多步骤研究 |
/dsgvo-check | aktivitaet | 针对一项处理活动,逐项检查 GDPR 第 5、6、7、9、13、14 条 |
智能工具
research_topic 是一种多步骤研究工具,每次调用会协调执行 2 次大模型采样调用:
- 在语料中搜索候选规范
- 使用大模型按相关性对候选项排序
- 加载相关规范关系图
- 使用大模型综合生成结构化研究报告
当客户端不支持采样时,该工具会返回降级报告,其中仅包含已排序的候选项。
数据来源
| 来源 | 覆盖范围 | 复用方式 |
|---|---|---|
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.json | OpenAPI 文档 |
条文加分项的路径必须进行 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。