关于 mcp-saos
mcp-saos 将 MCP 客户端连接到波兰 SAOS 公共判决数据库,支持筛选检索和按案号查找,并提供启发式引证检查,用于发现后续判决可能对某裁决的处理。
主要功能
- 01按全文和条件搜索判决
- 02按 ID 获取判决
- 03按案号搜索
- 04查找后续引用及可能的立场变更
- 05以结构化格式返回引文
适用场景
- 01按法院、法官或日期研究判决
- 02通过案号获取判决
- 03检查后续判决是否可能不再遵循某裁决
MCP 相关
向 MCP 客户端提供四种工具,用于搜索和读取 SAOS 判决及检查后续引用。服务连接公共 SAOS REST API,并通过 stdio 与客户端通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| all | string | 否 | 全文搜索——判决正文中的单词或短语。 |
| dateTo | string | 否 | 判决日期上限(格式 YYYY-MM-DD),例如 '2016-12-31'。 |
| dateFrom | string | 否 | 判决日期下限(格式 YYYY-MM-DD),例如 '2015-01-01'。 |
| pageSize | number | 否 | 每页结果数(最少 10,最多 100)。默认值为 10。 |
| courtType | enum | 否 | 法院类型:COMMON=普通法院,SUPREME=最高法院,CONSTITUTIONAL_TRIBUNAL=宪法法庭,NATIONAL_APPEAL_CHAMBER=国家上诉分庭(KIO)。不要使用 ADMINISTRATIVE——SAOS 中没有行政法院。COMMON | SUPREME | CONSTITUTIONAL_TRIBUNAL | NATIONAL_APPEAL_CHAMBER |
| judgeName | string | 否 | 法官姓氏,例如 'Kowalski'。 |
| legalBase | string | 否 | 法律依据,例如 'art. 415 kc' 或 'art. 6 RODO'。 |
| caseNumber | string | 否 | 案号,例如 'I ACa 772/13' 或 'IV CSK 123/15'。 |
| pageNumber | number | 否 | 页码(从 0 开始)。用于结果分页。 |
| referencedRegulation | string | 否 | 引用的法律法规,例如“个人数据保护法”。 |
详细介绍
mcp-saos
安装(一条命令)
已发布到 npm 和 MCP Registry(io.github.matematicsolutions/mcp-saos)。无需克隆即可运行:
npx -y @matematicsolutions/mcp-saos
MCP 客户端配置(stdio):
{ "mcpServers": { "mcp-saos": { "command": "npx", "args": ["-y", "@matematicsolutions/mcp-saos"] } } }
(从源代码构建——见下文。)
面向波兰判例法的 MCP(Model Context Protocol)服务——连接到 SAOS(System Analizy Orzeczen Sadowych,即法院公开判例数据库,由 Fundacja ePanstwo 运营)。
这是 MateMatic「波兰法律 AI」项目的一部分。它以独立进程运行, 通过 stdio 通信;聊天模板(mike 的一个分支)通过 MCP 协议调用它。
SAOS 是什么
波兰法院判决的开放数据库。提供公开 REST API,无需密钥。
**覆盖范围说明:**覆盖面广,包含当前判决 (2024-2026 年的数据较为充足),但不同类型法院的覆盖情况并不均衡,一些 最高法院决议仅作为引文出现在其他判决中。 请通过 sn.pl、orzeczenia.ms.gov.pl、trybunal.gov.pl 核实任何重要信息。
该数据库涵盖:普通法院(COMMON)、Sad Najwyzszy(最高法院,SUPREME)、 Trybunal Konstytucyjny(宪法法院,CONSTITUTIONAL_TRIBUNAL)、KIO(国家上诉委员会,NATIONAL_APPEAL_CHAMBER)。 行政法院(WSA/NSA)——SAOS 中没有相关数据。
MCP 工具
| 工具 | 描述 |
|---|---|
search | 全文和筛选搜索(法院、法官、法律依据、日期) |
get_judgment | 按 ID 获取 SAOS 中的完整判决 |
search_by_case | 快捷方式:按案号搜索(例如「I ACa 772/13」) |
saos_cite_check | 引证检查器:该判决是否仍是有效法律依据?查找后续引用该判决的判决,并扫描签名附近是否有推翻性措辞 |
saos_cite_check——引证检查器
提供一个案号(此处为占位示例;请使用真实案号):
{ "caseNumber": "III CZP NN/RR" }
它会在 SAOS 全文中搜索引用该案号的后续判决,扫描其判决理由中
签名附近约 500 个字符范围内是否存在偏离措辞(「odstepuje od pogladu wyrazonego」、
「nie podziela pogladu」、「traci moc uchwala」、「uchwala skladu siedmiu sedziow」
等),并返回四种结论之一:przelamanie_wykryte、uchwala_skladu_powiekszonego、
nadal_cytowany、brak_cytowan_w_saos。每条命中结果均包含前后各约 200 个字符的
片段,以供人工核实。
列表中的每个短语都已通过 SAOS 实时数据核实——证据 表、算法和如实说明限制的部分见 docs/CITE-CHECK.md。简而言之:没有命中 并不意味着该判决仍是有效法律依据,每条回复都会说明这一点。
要求
- Node.js >= 18
- npm >= 9
- 可访问互联网(实时 API saos.org.pl)
安装和构建
git clone https://github.com/matematicsolutions/mcp-saos
cd mcp-saos
npm install
npm run build
执行 npm run build 后,入口文件为 dist/index.js。
独立运行(测试)
node dist/index.js
# the server listens on stdin/stdout, diagnostic logs go to stderr
接入聊天模板(mike 的分支)——mcp-servers.json
在客户端的 MCP 配置中添加一项(例如 mcp-servers.json):
{
"name": "saos",
"transport": "stdio",
"command": "node",
"args": ["C:/Users/<YOUR-USER>/mcp-saos/dist/index.js"],
"enabled": true
}
请提供 dist/index.js 的绝对路径。在 Windows 上使用正斜杠 /
或双反斜杠 \\。
测试
npm run build
npm test # offline: drift test + unit tests (parser, window scan, phrase patterns)
node test/smoke.mjs # live: 5 checks against the real SAOS API, including the citator
冒烟测试会检查 tools/list(4 个工具)、search、search_by_case、
一次宪法法院查询,以及对一项已知有后续处理的最高法院决议运行 saos_cite_check。
架构
stdin --> MCP JSON-RPC (stdio transport) --> src/index.ts
|
SAOS REST API
https://www.saos.org.pl/api
/search/judgments
/judgments/{id}
stdout <-- formatted text responses <--
HTTP/JSON 请求不依赖外部依赖项——请求通过内置的 node:https 发出。
唯一的生产依赖项:@modelcontextprotocol/sdk。
局限性和已知问题
pageSize的硬性下限为 10(SAOS 在值更小时会返回 HTTP 400)—— 服务会自动将其设为至少 10。courtType=ADMINISTRATIVE会返回空结果——SAOS 不会索引 WSA/NSA。- 数据库中的日期可能包含 OCR 错误(例如“3013-12-04”)——案件编号比
judgmentDate字段更可靠。 - 不同法院类型的数据覆盖范围不一——服务会在每个工具响应中说明相关注意事项。
saos_cite_check是启发式工具。它只读取排名靠前的引用判决,其短语列表无法涵盖法院偏离某一判例路线的所有方式;没有命中也不能确认该判决仍然有效。
许可证
MIT——详情请参阅 LICENSE 文件。 判决数据:Fundacja ePanstwo,采用开放许可证(公共 API,无使用限制)。
MateMatic 的一部分
此连接器会实时查询其数据源。它是 PATRON 中捆绑的波兰和欧盟数据源连接器之一,并且适用于任何 MCP 客户端。
- 波兰,一个服务涵盖所有数据源:prawo-pl-mcp · 每个数据源独立提供:mcp-saos(本仓库)· mcp-nsa · mcp-isap · mcp-krs · mcp-eureka · kio-orzeczenia-mcp
- 欧盟:mcp-eu-sparql(实时)· mcp-eu-compliance(离线语料库)
- 包含波兰和欧盟法律及引用关系图的整理语料库:Repertorium
mcp-saos、mcp-nsa、mcp-isap、mcp-krs 和 mcp-eu-sparql 共用一套 structuredContent.citations
契约:每个工具都会返回一个 {title, url, snippet?, ...metadata} 数组,
法律 Agent 可直接在其引用面板中呈现这些内容。
完整组织简介请参阅 matematicsolutions/.github。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。