mcpField
M
mcp-saos

mcp-saos

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

关于 mcp-saos

mcp-saos 将 MCP 客户端连接到波兰 SAOS 公共判决数据库,支持筛选检索和按案号查找,并提供启发式引证检查,用于发现后续判决可能对某裁决的处理。

主要功能

  1. 01按全文和条件搜索判决
  2. 02按 ID 获取判决
  3. 03按案号搜索
  4. 04查找后续引用及可能的立场变更
  5. 05以结构化格式返回引文

适用场景

  1. 01按法院、法官或日期研究判决
  2. 02通过案号获取判决
  3. 03检查后续判决是否可能不再遵循某裁决

MCP 相关

向 MCP 客户端提供四种工具,用于搜索和读取 SAOS 判决及检查后续引用。服务连接公共 SAOS REST API,并通过 stdio 与客户端通信。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"matematicsolutions-mcp-saos": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-saos"
]
}
}
}
启动命令npx -y @matematicsolutions/mcp-saos

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

安装包
npm@matematicsolutions/mcp-saos1.3.1

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
allstring否全文搜索——判决正文中的单词或短语。
dateTostring否判决日期上限(格式 YYYY-MM-DD),例如 '2016-12-31'。
dateFromstring否判决日期下限(格式 YYYY-MM-DD),例如 '2015-01-01'。
pageSizenumber否每页结果数(最少 10,最多 100)。默认值为 10。
courtTypeenum否法院类型:COMMON=普通法院,SUPREME=最高法院,CONSTITUTIONAL_TRIBUNAL=宪法法庭,NATIONAL_APPEAL_CHAMBER=国家上诉分庭(KIO)。不要使用 ADMINISTRATIVE——SAOS 中没有行政法院。COMMON | SUPREME | CONSTITUTIONAL_TRIBUNAL | NATIONAL_APPEAL_CHAMBER
judgeNamestring否法官姓氏,例如 'Kowalski'。
legalBasestring否法律依据,例如 'art. 415 kc' 或 'art. 6 RODO'。
caseNumberstring否案号,例如 'I ACa 772/13' 或 'IV CSK 123/15'。
pageNumbernumber否页码(从 0 开始)。用于结果分页。
referencedRegulationstring否引用的法律法规,例如“个人数据保护法”。

详细介绍

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 License: MIT Node

面向波兰判例法的 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 客户端。

mcp-saos、mcp-nsa、mcp-isap、mcp-krs 和 mcp-eu-sparql 共用一套 structuredContent.citations 契约:每个工具都会返回一个 {title, url, snippet?, ...metadata} 数组, 法律 Agent 可直接在其引用面板中呈现这些内容。

完整组织简介请参阅 matematicsolutions/.github。

评论

支持 Markdown

第一次接触 MCP?

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

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