关于 prawo-pl-mcp
prawo-pl-mcp 将波兰及部分欧盟法律数据连接器汇总为一组统一工具,供跨多个数据库查询法律资料的用户使用。它统一参数、按需启动连接器,并对长文档分页。
主要功能
- 01跨法律数据源搜索
- 02分页获取文档
- 03调用来源专属原生工具
- 04列出数据源及覆盖范围
- 05统一连接器参数
- 06首次使用时启动连接器
适用场景
- 01搜索波兰判例和立法
- 02检索公司登记或税务裁定
- 03查看公共采购或数据保护决定
- 04查询部分欧盟法律法规
MCP 相关
作为 MCP 服务,通过 stdio 将 MCP 调用代理至独立连接器服务,并按需启动。它提供统一的搜索、文档、来源目录、覆盖范围及原生调用工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
prawo-pl-mcp
一个用于波兰法律数据的 MCP 服务。
十个独立连接器,涵盖判例、立法、公司登记册、税务裁定、公共采购、数据保护决定,以及欧盟扩展数据——通过五个工具提供服务。每个连接器都是独立的软件包,拥有自己的代码库;此服务会按需启动它们,并转换各自的约定。
“Prawo” 在波兰语中意为“法律”;这个名称沿用了 yargi-mcp 的做法,以当地语言为国家服务命名。
为什么要做聚合器
这些连接器很好地覆盖了波兰法律数据,但如果它们是彼此独立的 MCP 服务,每个数据库一个,就得先安装十个服务并配置十项,才能提出第一个问题。yargi-mcp 为土耳其法律数据展示了解决方案:16 个机构,一个服务。prawo-pl-mcp 在波兰也采用了同样的做法:
- 五个工具,而不是 42 个。
pl_list_sources、pl_search、pl_get_document、pl_call和pl_coverage——工具架构更少,意味着大模型开始工作前消耗的上下文更少。 - 统一约定。连接器是逐步发展起来的:有的用
dateFrom,有的用date_from;不同代码库的页码有的从 0 开始,有的从 1 开始。这里的page始终从 1 开始,日期始终使用date_from/date_to(YYYY-MM-DD);转换在内部完成。聚合器自己的工具也遵循每个概念使用一个名称的原则:page是pl_search和pl_get_document的页码参数(仍支持已弃用的别名page_number),而pl_call接受arguments或其别名args。 - 目录中提供原生名称。每个目录条目都带有
native_params,标明各个统一参数在相应来源中的原生参数名称,因此无需启动连接器或读取上游错误,就能看到article_number(eu-compliance)这样的名称。pl_call会根据连接器自身的架构检查收到的参数名称,并说明它预期的名称。 - 无需预先安装。连接器通过
npx -y/uvx作为子进程运行;首次调用某个来源时会下载,之后会保持运行。如果某个来源无法启动,会报告易于理解的错误,其余来源仍可继续工作。 - 支持分页的文档。完整判决和法案文本会按每页约 5000 个字符分块(采用 yargi-mcp 的模式),因此 200 页的裁决不会塞满上下文窗口。由服务器端分页的来源(
isap)会原样传递page参数,并标记为pagination: "native"——聚合器不会再次切分已分页的内容,也不会臆造无法得知的total_pages。
覆盖范围
| 来源 ID | 内容 | 机构 / 数据库 | 连接器 | 运行时 |
|---|---|---|---|---|
saos | 判例法:普通法院、最高法院、宪法法庭 + 引证检索 | SAOS | mcp-saos | npx |
nsa | 判例法:行政法院(NSA + 16 个 WSA) | CBOSA | mcp-nsa | npx |
isap | 法规:Dziennik Ustaw + Monitor Polski,超过 9.6 万部法案 | Sejm ELI API | mcp-isap | npx |
krs | 公司注册信息:摘录、历史记录、董事会组成 | KRS API (Ministry of Justice) | mcp-krs | npx |
eureka | 税务裁定:超过 55 万份个别解释 | EUREKA (Ministry of Finance) | mcp-eureka | npx |
kio | 公共采购:国家上诉委员会裁定 | orzeczenia.uzp.gov.pl | kio-orzeczenia-mcp | uvx |
uodo | GDPR 执法:波兰数据保护机构的决定、罚款和统计数据 | orzeczenia.uodo.gov.pl | uodo-orzeczenia-mcp | uvx |
eu-sparql | 欧盟法律:按 CELEX 查询 EUR-Lex,按 ECLI 查询 CJEU,以及 GDPRhub | Cellar SPARQL | mcp-eu-sparql | npx |
eu-compliance | 14 项欧盟法规的离线数据(GDPR、AI Act、DORA、NIS2……) | 本地 SQLite 语料库 | mcp-eu-compliance | npx |
legalize | 法律即 git:涵盖 32 个司法管辖区,按提交版本管理 | legalize-dev | legalize-mcp | uvx |
波兰来源标记为 group: pl,欧盟扩展来源标记为 group: eu——使用
pl_list_sources(group="pl") 进行筛选。
工具
| 工具 | 功能 |
|---|---|
pl_list_sources | 来源目录(不会启动子进程)。指定 source_id 时:返回一个连接器的实时工具架构。 |
pl_search | 使用标准化参数搜索任意来源;通过 extra 设置来源专属筛选条件。 |
pl_get_document | 按标识符(判决 ID、ELI、KRS 编号、签名等)获取完整文档,支持分页。 |
pl_call | 调用任意连接器的原生工具:引证检索、数据保护机构统计、董事会组成、法规比较等。 |
pl_coverage | 声明此连接器覆盖的内容、各类数据的采集时间,以及明确说明未覆盖的内容。每项缺口都附有备用方案。 |
LLM 遵循的典型流程(已在服务端的 instructions 中明确说明):
pl_list_sources → pl_search → pl_get_document;也可使用 pl_call 调用各连接器提供的
专用工具。
安装
需要 Python ≥ 3.11,以及所用来源的运行时:使用 npx 的来源需要 Node.js ≥ 18,
使用 uvx 的来源需要 uv。如果缺少某个运行时,相应来源会报告 source_unavailable,其他来源仍可正常工作。
Claude Code
claude mcp add pl-legal -- uvx prawo-pl-mcp
Claude Desktop / 任意 MCP 客户端(stdio)
{
"mcpServers": {
"pl-legal": {
"command": "uvx",
"args": ["prawo-pl-mcp"]
}
}
}
远程(Streamable HTTP)
uvicorn prawo_pl_mcp.asgi:app --host 0.0.0.0 --port 8000
默认公开(公开、只读数据)。设置 PRAWO_PL_MCP_API_KEY,即可要求每个请求都携带
X-API-Key: <key> 或 Authorization: Bearer <key>。
配置
| 环境变量 | 默认值 | 含义 |
|---|---|---|
PRAWO_PL_MCP_CMD_<ID> | - | 覆盖某个数据源的启动命令,例如,为本地检出版本设置 PRAWO_PL_MCP_CMD_SAOS="node C:/dev/mcp-saos/dist/index.js"。<ID> = 数据源 ID,大写,- → _。 |
PRAWO_PL_MCP_INIT_TIMEOUT | 180 | 连接器首次启动允许的秒数(包括下载软件包的时间)。 |
PRAWO_PL_MCP_TIMEOUT | 90 | 启动后每次工具调用允许的秒数。 |
PRAWO_PL_MCP_AUDIT_DIR | ~/.matematic/audit | JSONL 审计日志的存放位置。 |
PRAWO_PL_MCP_API_KEY | - | 仅限 ASGI 模式:要求提供此 API 密钥(双通道)。 |
架构
聚合器是一个轻量级代理 (ADR 0001)。它不会导入、 内置或派生连接器;聚合器通过标准输入输出与连接器进行 MCP 通信,方式与 任何客户端相同。整个层由数据源注册表(每个连接器对应一个数据类条目)、 延迟子进程池、参数转换器和分页器组成。添加数据源只需添加一条注册表条目。
LLM client ──MCP──▶ prawo-pl-mcp ──MCP/stdio──▶ npx @matematicsolutions/mcp-saos
│ ──MCP/stdio──▶ uvx kio-orzeczenia-mcp
│ ──MCP/stdio──▶ ... (spawned on first use)
└─ registry + param mapping + 5000-char pagination
每次调用都会写入 JSONL 审计日志(时间戳、工具、数据源、参数哈希、 延迟——绝不记录文档内容)。
开发
git clone https://github.com/matematicsolutions/prawo-pl-mcp && cd prawo-pl-mcp
uv sync --extra dev
uv run pytest # offline tests: registry, dispatch mapping, pagination, drift
uv run prawo-pl-mcp # stdio server
许可证
Apache-2.0。各连接器采用各自的许可证(MIT 或 Apache-2.0), 并遵守各自的速率限制及其对上游数据库的条款;聚合器除分页外不添加缓存 或进行任何转换,因此各连接器的限制仍原样适用。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。