mcp-saos について
mcp-saos は、MCP クライアントをポーランドの公開判決データベース SAOS に接続します。条件検索や事件番号による検索に加え、後続判決による扱いの変化を示すヒューリスティックな引用チェック機能を備えています。
主な機能
- 01全文と条件で判決を検索
- 02ID で判決を取得
- 03事件番号で検索
- 04後続の引用と判断変更の可能性を検出
- 05構造化形式で引用情報を返す
活用シーン
- 01裁判所・裁判官・日付で判決を調査
- 02事件番号から判決を取得
- 03後続判決が先例と異なる判断を示す可能性を確認
MCP 対応
SAOS 判決の検索・取得と後続引用の確認に使える4つのツールを MCP クライアントに公開します。公開 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 | いいえ | 1 ページあたりの結果数(最小 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
インストール(コマンド1つ)
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 の「Polish legal AI」プロジェクトの一部です。独立したプロセスとして動作し、stdio 経由で通信します。チャットテンプレート(mike のフォーク)が MCP プロトコル経由で呼び出します。
SAOS とは
ポーランドの裁判所判決を収録したオープンデータベースです。公開 REST API を提供しており、キーは不要です。
**収録状況に関する注意:**収録範囲は広く、最近の判決(2024~2026 年)は十分に収録されていますが、裁判所の種類によって偏りがあります。また、最高裁判所の決議の中には、他の判決内で引用されているものしか存在しない場合があります。重要な情報は、sn.pl、orzeczenia.ms.gov.pl、trybunal.gov.pl で確認してください。
このデータベースには、普通裁判所(COMMON)、最高裁判所(SUPREME)、憲法裁判所(CONSTITUTIONAL_TRIBUNAL)、KIO(国家上訴審査会、NATIONAL_APPEAL_CHAMBER)の情報が含まれます。行政裁判所(WSA/NSA)のデータは SAOS にありません。
MCP ツール
| ツール | 説明 |
|---|---|
search | 全文検索と絞り込み検索(裁判所、裁判官、法的根拠、日付) |
get_judgment | SAOS から ID を指定して判決全文を取得 |
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」など)があるかを調べ、4 種類の判定結果のいずれかを返します:przelamanie_wykryte、uchwala_skladu_powiekszonego、nadal_cytowany、brak_cytowan_w_saos。各検索結果には、人が確認するための前後 200 文字の抜粋が含まれます。
一覧にある各表現は、実際の SAOS データで確認済みです。根拠を示す表、アルゴリズム、そして制限事項については、docs/CITE-CHECK.md をご覧ください。要点は、検索結果がないことは判決が現在も有効な法であることを意味しない、ということです。すべての応答でその旨を示しています。
要件
- Node.js >= 18
- npm >= 9
- インターネット接続(saos.org.pl のライブ API)
インストールとビルド
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 にバンドルされているポーランドおよび EU の情報源向けコネクターの 1 つで、あらゆる MCP クライアントで動作します。
- ポーランド、すべての情報源に対応する単一のサーバー:prawo-pl-mcp · 情報源ごとに個別:mcp-saos(このリポジトリ) · mcp-nsa · mcp-isap · mcp-krs · mcp-eureka · kio-orzeczenia-mcp
- 欧州連合:mcp-eu-sparql(リアルタイム) · mcp-eu-compliance(オフラインコーパス)
- 引用グラフを備えた、ポーランドおよび EU 法の整備済みコーパス:Repertorium
mcp-saos、mcp-nsa、mcp-isap、mcp-krs、mcp-eu-sparql は、共通の structuredContent.citations
コントラクトを使用します。各ツールは、法律エージェントが引用パネルにそのまま表示できる
{title, url, snippet?, ...metadata} の配列を返します。
組織のプロフィール全体については、matematicsolutions/.github をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。