德国法律MCP服务器
 ](https://nodejs.org/)  
⚠️ 警告:工作正在进行中\ 该项目目前正在积极开发中 可生产的API可能会更改,恕不另行通知,功能可能不完整或不稳定。使用风险自负。
用于德国法律研究的模型上下文协议(MCP)服务器,提供对多个法律数据库的统一访问。
支持的来源
| 源 | 状态 | 前缀 | 身份验证 |
|---|---|---|---|
| 联邦和州法院 | ✅ 可用 | legis: | 无(公开) |
| 互联网司法 | ✅ 可用 | rii: | 无(公开) |
| InfoCuria(英语:InfoCuria) | ✅ 可用 | icu: | 无(公开) |
| 欧元莱克斯 | ✅ 可用 | eul: | 无(公开) |
| DIP联邦议院 | ✅ 可用 | dip: | 包含公钥 |
| arXiv | ✅ 可用 | arxiv: | 无(公开) |
| 诺托斯 | ✅ 可用 | nautos: | 必需(IP或凭据) |
特性
联邦和州法律(legis:* 工具)
- 联邦和州立法 --BUND(所有联邦法律)+16个州(所有州)
- 无需认证 --免费公众访问,无费率限制
- 统一接口 --一套适用于所有司法管辖区的工具
- 全文搜索 --跨州立法搜索(仅限各州)
- 弹性投入 --BUND接受“第823条”、“823”、“第1条”和“第51款”
- Pandoc兼容Markdown --使用Turndown进行清洁转换
- 保存到文件 —
save_path避免上下文污染的参数 - 可用状态: BUND、BB、BW、BY、BE、HB、HE、HH、MV、NI、NW、RP、SL、SN、ST、SH、TH
互联网法律(rii:* 工具)
- 联邦法院判决 --BVerfG、BGH、BVerwG、BFH、BAG、BSG、BPatG(自2010年起)
- 巴伐利亚州法院 — AG,LG,OLG,VG,VGH,FG,ArbG,LAG,BayVerfGH通过gesetze-bayern.de
- 无需认证 --免费公众访问
- 全文搜索 --搜索所有联邦法院判决
- 短文本/长文本 --摘要或全文通过
part参数 - 边框编号 --格式化为
[Rn. 5]{.rn}(潘多克跨度) - 保存到文件 —
save_path避免上下文污染的参数
InfoCuria - 欧洲 法院icu:* 工具)
- 欧盟法院判例法 --欧盟法院和普通法院的判决、意见、命令
- 无需认证 -通过InfoCuria API免费公开访问
- 多语言 --文档支持所有欧盟语言(默认:DE)
- 灵活的案例查找 --接受案例编号(C-476/17)、CELEX编号或内部ID
- 边框编号 --格式化为
[Rn. 5]{.rn} - 部分内容 —
sectionRn范围、标题或行范围的参数 - 保存到文件 —
save_path避免上下文污染的参数
欧元莱克斯(eul:* 工具)
- 欧盟立法 --指令、法规、决定、条约(TFEU、TEU)
- 无需认证 -通过CellarRESTneneneba API和SPARQL实现免费公共访问
- 多语言 --文档支持所有欧盟语言(默认:DE)
- CELEX查询 --按CELEX编号检索(例如,GDPR的“32016R0679”)
- SPARQL搜索 --按标题关键字搜索,按资源类型筛选
- 部分内容 —
section文章(第5条)、标题或行范围的参数 - 保存到文件 —
save_path避免上下文污染的参数
DIP联邦议院(dip:* 工具)
- 议会文件 — 联邦议会印刷品(法案、决议建议、请求)
- 立法程序 --带有状态跟踪和链接文档的Vorgänge
- 辩论记录 --在Plenarprotokolle(BT和BR)上进行全文搜索
- 全文检索 --提取的文本包括Gesetzesbegründungen,带有部分支持
- 包含公共API密钥 --开箱即用(密钥过期2026-06-01,通过env-var覆盖)
- 保存到文件 —
save_path避免上下文污染的参数
arXiv(arxiv:* 工具)
- 预印本搜索 --按关键字、作者、标题、摘要或类别搜索
- 元数据+摘要 --默认响应,不进行全文提取(令牌高效)
- HTML全文 --2024年以上论文的Markdown转换(LaTeXML HTML)
- PDF回退 --没有HTML的旧论文返回摘要+PDF链接
- 无需认证 -免费的公共API,没有超过约1 req/3s的费率限制
- 保存到文件 —
save_path避免上下文污染的参数
诺托斯(nautos:* 工具)
- DIN/EN/ISO标准 --从nautos.de中检索技术标准
- 两阶段文档检索 --首先是大纲(元数据+TOC),然后是按需划分的部分
- 自动身份验证 --基于IP的登录(自动检测),基于用户的登录回退
- 结构化TOC --带有导航部分ID的分层目录
- 文件缓存 --30天TTL,重启后持续(
~/.local/share/german-legal-mcp/cache/nautos/) - 保存到文件 —
save_path将完整文档转储到磁盘的参数
npx快速入门
npx @metaneutrons/german-legal-mcp或添加您的MCP客户端配置(例如。, claude_desktop_config.json):
{
"mcpServers": {
"german-legal": {
"command": "npx",
"args": ["-y", "@metaneutrons/german-legal-mcp"]
}
}
}环境变量
提供商启用
| 变量 | 默认值 | 描述 |
|---|---|---|
GLMCP_LEGIS_ENABLED | true 联邦和州法律。 | |
GLMCP_RII_ENABLED | true 互联网上的司法。 | |
GLMCP_ICU_ENABLED | true InfoCuria(英语:InfoCuria) | |
GLMCP_EUL_ENABLED | true | 欧元莱克斯 |
GLMCP_DIP_ENABLED | true | DIP Bundestag(2026-06-01后自动禁用,没有自己的钥匙) |
GLMCP_DIP_API_KEY | 公钥 | 覆盖绑定的公共API密钥 |
GLMCP_ARXIV_ENABLED | true | arXiv预印本搜索 |
GLMCP_NAUTOS_ENABLED | Auto | nautos.de。使用租户密钥或凭据自动启用,不使用时自动禁用。 |
Nautos.de配置
| 变量 | 必填 | 描述 |
|---|---|---|
GLMCP_NAUTOS_TENANT_KEY | 对于基于IP的 | 租户密钥(例如。, DWW).启用基于IP的身份验证。 |
GLMCP_NAUTOS_USERNAME | 对于基于用户的 | nautos.de帐户用户名 |
GLMCP_NAUTOS_PASSWORD | 基于用户的 | nautos.de帐户密码 |
GLMCP_NAUTOS_TENANT_ID | 否 | 租户ID(从登录响应中自动检测到) |
认证:首先尝试基于IP的登录(需要 GLMCP_NAUTOS_TENANT_KEY).如果失败并且设置了凭据,则尝试基于用户的登录作为回退。
工具
联邦和州法律
| 工具 | 说明 |
|---|---|
legis:search | 搜索联邦和州立法。参数: query, state (例如,“BW”、“BE”), limit。注意:BUND不支持搜索。 |
legis:get | 检索特定的法律/规范。堤岸: id =“法律/条款”(例如“bgb/823”)。各州: id 从搜索结果中。可选的 save_path. |
legis:toc | 法律简明目录——章节编号和标题。支持 from/to 范围和 depth 过滤器。堤岸: id =法律缩写(例如“bgb”)。 |
legis:states | 列出可用的司法管辖区及其实施状态。 |
互联网司法
| 工具 | 说明 |
|---|---|
rii:search | 搜索法院判决。返回包含文档ID、标题和代码段的列表。使用 source: "BY" 巴伐利亚州法院。 |
rii:get_decision | 通过文档ID检索法院判决的全文。 part:K(Kurztext)或L(Langtext,默认)。可选的 save_path 保存到文件。使用 source: "BY" 对于 gesetze-bayern.de IDs。 |
InfoCuria — 法院
| 工具 | 说明 |
|---|---|
icu:search | 搜索CJEU的决定和意见。返回案例编号、ECLI、日期和文档ID。 |
icu:get_document | 按案例编号(C-476/17)或CELEX编号检索全文。支持 section (Rn范围、标题、线条范围)和 save_path. |
欧元莱克斯
| 工具 | 说明 |
|---|---|
eul:search | 通过SPARQL搜索欧盟立法。按类型筛选(指令、法规、决定、条约)。 |
eul:get_document | 通过CELEX编号检索欧盟法规(例如,GDPR的“32016R0679”)。支持 section (第5条,第5-10条,标题、行范围)和 save_path. |
DIP联邦议院
| 工具 | 说明 |
|---|---|
dip:search Search Bundestagsdrucksachen by title.按类型(法案,请求等),选举期,日期范围过滤。 | |
dip:get | 通过Dokumentnummer检索Drucksache的全文(例如“19/27426”)。支持 section 和 save_path. |
dip:search_vorgang | 搜索具有状态和链接的Drucksachen的立法程序(Vorgänge)。 |
dip:search_plenarprotokoll | 在议会辩论记录(BT和BR)中进行全文搜索。 |
arXiv
| 工具 | 说明 |
|---|---|
arxiv:search | 按关键字、作者、标题、摘要或类别搜索预印本。返回元数据+摘要。 |
arxiv:get | 按arXiv ID检索论文。默认:元数据+摘要。随着 section 或 save_path:HTML全文为Markdown(~2024+,旧版本:PDF链接)。 |
诺托斯
| 工具 | 说明 |
|---|---|
nautos:search | 按文件编号搜索DIN/EN/ISO标准。返回acCode、标题、日期、类型。 |
nautos:get_document | 通过acCode检索标准。默认情况下返回大纲(元数据+TOC);使用 section 对于特定部件, save_path 保存完整文档。 |
两阶段文档检索
所有文档工具都使用两阶段方法来避免淹没LLM上下文:
- 大纲 --第一个调用返回标题、元数据、目录和预览
- 部分 --按Randnummer、标题或行范围请求特定部分(从缓存中提供)
- 保存到文件 --将完整文档写入磁盘,仅返回元数据
章节格式: "Rn 5", "Rn 5-12", "lines:100-200",或任何标题文本(模糊匹配)。
Markdown输出
文档转换为pandoc兼容的Markdown:
- 边框编号 :
[Rn. 5]{.rn}(括号内的跨度) - 脚注:
^[inline footnote text](pandoc内联脚注)
发展
npm test # Run tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage reportMCP检查员
npx @modelcontextprotocol/inspector node dist/index.js承诺公约
此仓库使用 常规提交 通过赫斯基+承诺执行。
类型: feat, fix, docs, style, refactor, perf, test, chore, ci, build, revert
范围: legis, rii, icu, eul, dip, nautos, core, deps, config
建筑
- 动态提供程序加载 --从以下位置自动发现提供商
src/providers/*/ - 欢呼+拒绝 对于HTML→ pandoc Markdown转换
- 萨德 用于输入验证
- 阿西奥斯 用于HTTP请求(Legis、RII、InfoCuria、EUR-Lex、DIP、arXiv、nautos)
- 结构化JSON错误 --所有供应商返回
BaseError.toJSON()随着code,userMessage,recoveryHint;Axios错误自动包装;DNS故障很快就会失败 - 转换验证 --所有HTML→Markdown提供者验证输出是否为非空;及早检测上游布局变化
- 按源名称分隔的工具(
legis:,rii:,icu:,eul:,dip:,arxiv:,nautos:)
许可证
GPL-3.0-参见 许可证 了解详情。
