mcpField
P
prawo-pl-mcp

prawo-pl-mcp

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

关于 prawo-pl-mcp

prawo-pl-mcp 将波兰及部分欧盟法律数据连接器汇总为一组统一工具,供跨多个数据库查询法律资料的用户使用。它统一参数、按需启动连接器,并对长文档分页。

主要功能

  1. 01跨法律数据源搜索
  2. 02分页获取文档
  3. 03调用来源专属原生工具
  4. 04列出数据源及覆盖范围
  5. 05统一连接器参数
  6. 06首次使用时启动连接器

适用场景

  1. 01搜索波兰判例和立法
  2. 02检索公司登记或税务裁定
  3. 03查看公共采购或数据保护决定
  4. 04查询部分欧盟法律法规

MCP 相关

作为 MCP 服务,通过 stdio 将 MCP 调用代理至独立连接器服务,并按需启动。它提供统一的搜索、文档、来源目录、覆盖范围及原生调用工具。

配置

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

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

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

安装包
pypiprawo-pl-mcp0.2.4

工具

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判例法:普通法院、最高法院、宪法法庭 + 引证检索SAOSmcp-saosnpx
nsa判例法:行政法院(NSA + 16 个 WSA)CBOSAmcp-nsanpx
isap法规:Dziennik Ustaw + Monitor Polski,超过 9.6 万部法案Sejm ELI APImcp-isapnpx
krs公司注册信息:摘录、历史记录、董事会组成KRS API (Ministry of Justice)mcp-krsnpx
eureka税务裁定:超过 55 万份个别解释EUREKA (Ministry of Finance)mcp-eurekanpx
kio公共采购:国家上诉委员会裁定orzeczenia.uzp.gov.plkio-orzeczenia-mcpuvx
uodoGDPR 执法:波兰数据保护机构的决定、罚款和统计数据orzeczenia.uodo.gov.pluodo-orzeczenia-mcpuvx
eu-sparql欧盟法律:按 CELEX 查询 EUR-Lex,按 ECLI 查询 CJEU,以及 GDPRhubCellar SPARQLmcp-eu-sparqlnpx
eu-compliance14 项欧盟法规的离线数据(GDPR、AI Act、DORA、NIS2……)本地 SQLite 语料库mcp-eu-compliancenpx
legalize法律即 git:涵盖 32 个司法管辖区,按提交版本管理legalize-devlegalize-mcpuvx

波兰来源标记为 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_TIMEOUT180连接器首次启动允许的秒数(包括下载软件包的时间)。
PRAWO_PL_MCP_TIMEOUT90启动后每次工具调用允许的秒数。
PRAWO_PL_MCP_AUDIT_DIR~/.matematic/auditJSONL 审计日志的存放位置。
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), 并遵守各自的速率限制及其对上游数据库的条款;聚合器除分页外不添加缓存 或进行任何转换,因此各连接器的限制仍原样适用。

评论

支持 Markdown

第一次接触 MCP?

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

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