Entscheidsuche — Schweizer Gerichtsentscheide について
Entscheidsucheは、スイスの裁判例を検索する開発者やクライアント向けのMCPサーバーです。連邦・州の情報源を対象とし、ドイツ語、フランス語、イタリア語で全文検索と文書取得ができます。
主な機能
- 01Lucene構文による全文検索
- 02事件番号や引用からの検索
- 03判決全文の取得
- 04日付・裁判所・言語での絞り込み
- 05裁判所階層とファセットの参照
活用シーン
- 01法律用語に合う判決を探す
- 02事件番号から判決を取得する
- 03言語圏をまたいで判決を比較する
MCP 対応
公開Streamable HTTPエンドポイント`https://mcp.entscheidsuche.ch/mcp`で、検索、文書取得、階層・ファセット参照、サーバー情報のツールを提供します。認証は不要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.entscheidsuche.ch/mcpclaude mcp add --transport http ch-entscheidsuche https://mcp.entscheidsuche.ch/mcp{"mcpServers":{"ch-entscheidsuche":{"type":"http","url":"https://mcp.entscheidsuche.ch/mcp"}}}Cursor で開く{"servers":{"ch-entscheidsuche":{"type":"http","url":"https://mcp.entscheidsuche.ch/mcp"}}}VS Code で開く{"mcpServers":{"ch-entscheidsuche":{"type":"http","url":"https://mcp.entscheidsuche.ch/mcp"}}}{"mcpServers":{"ch-entscheidsuche":{"serverUrl":"https://mcp.entscheidsuche.ch/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
6| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| size | integer | いいえ | 1 ページあたりの結果数(1~100)。 |
| sort | enum | いいえ | 任意の並べ替え順:'relevance' | 'date'(決定日)| 'scrapedate'。デフォルトは 'relevance' です。relevance | date | scrapedate |
| query | string | いいえ | 全文クエリ。フレーズには "..."、ブール演算子には AND/OR/NOT、ワイルドカードには * と ? を使用します。"*" はすべてに一致します。 |
| language | any | いいえ | ハイライト/表示に使用する優先言語(de、fr、it)は任意です。省略すると、最初に利用可能な言語フィールドが返されます。これは絞り込みではありません。絞り込むには `language_filter` を使用してください。 |
| hierarchy | any | いいえ | 階層 ID のリスト(州/裁判所/部)。複数の ID は OR で結合され、他のフィルターとは AND で結合されます。 |
| search_after | any | いいえ | 前回の応答の `next_cursor` に含まれるカーソル。 |
| scrape_date_to | any | いいえ | スクレイプ日の上限(YYYY-MM-DD、当日を含む)。 |
| language_filter | any | いいえ | ドキュメントの言語で絞り込みます。 |
| decision_date_to | any | いいえ | 裁判日の上限(YYYY-MM-DD、当日を含む)。 |
| scrape_date_from | any | いいえ | スクレイプ日の下限(YYYY-MM-DD、当日を含む)。 |
| decision_date_from | any | いいえ | 裁判日の下限(YYYY-MM-DD、当日を含む)。 |
| include_aggregations | boolean | いいえ | 集計(検索結果の分布)を含めます。 |
詳細
entscheidsuche-mcp
スイスの公開判例を対象とする MCP サーバー(ベータ版) — ドイツ語、フランス語、イタリア語で公開されている、スイス全域の あらゆる審級(連邦裁判所、州裁判所、行政機関、刑事命令)の判決を 全文検索し、全文にアクセスできます — Model Context Protocol 経由で利用できます。
スイス判例を対象とする MCP サーバー(ベータ版)。 ドイツ語、フランス語、イタリア語で公開されている、スイス全域のあらゆる審級(連邦裁判所、26 の全州、行政機関、刑事命令)の判決を検索、取得できます。 非営利団体 entscheidsuche.ch が、オープンなスイス法務データ基盤として運営しています。同団体は 2020 年以来、スイスで税制上の免除を受けています。
公開エンドポイント: https://mcp.entscheidsuche.ch/mcp
(Streamable HTTP、認証不要)
エンドユーザー向けランディングページ: mcp.entscheidsuche.ch — Claude.ai、ChatGPT、Cursor、VS Code、Claude Desktop などのクライアントでの設定に必要な情報をすべて掲載しています。このリポジトリは主に開発者、サードパーティーアプリケーション、自ら運用する方向けです。
目次
MCP サーバーについて
スイスの裁判所の判決は形式上は公開されていますが、実際には 26 を超える州のポータル、複数の連邦裁判所、さまざまな形式の 公開情報に分散しています。entscheidsuche.ch 協会は 2017 年以来、 これらの判決を収集し、全文をインデックス化して、アクセスできるように しています。裁判所の判決は著作権の対象ではないため、ライセンスは ありません。この MCP サーバーは、これらの判例データを AI アシスタントや プログラムから利用するクライアントに提供します。
このサーバーの特長
- 非営利団体 entscheidsuche.ch 協会が運営しています(2017 年に Landquart GR で設立され、2020 年以来、公益目的の団体として Bern で 税制上の免除を受けています)。複数の関係者が共同で支えるスイスの 法務データ基盤であり、個人の試作品ではありません。
- 独自のデータセット:スイス全域の裁判所の一次情報源から毎日 スクレイピングしています。機関によって公開されていない判決や、 適切な形式で公開されていない判決も含まれます。これらは、刑事命令を 含め、2021 年から利用可能なアップロード機能を通じて提出されています。
- 3 つの公用語(DE / FR / IT)に対応し、言語を指定したフィルターと 言語をまたいだ検索が可能です。
- オープン:認証不要、API キー不要、ライセンス料不要です。
ツール
| ツール | 説明 |
|---|---|
search | Lucene 構文による全文検索。判決日、スクレイピング日、階層(カントン/裁判所/部)と言語で絞り込めます。関連度、判決日、スクレイピング日で並べ替えできます。next_cursor/search_after によるページネーションに対応しています。ファセット分析用の集計も利用できます。 |
search_by_case_number | 事件番号、事件記録番号、BGE 引用を対象とする完全一致のフレーズ検索です(例:BGE 142 III 1、6B_1234/2025、5A_396/2015)。番号は自動的に引用符で囲まれます。 |
fetch_document | ID を指定して、判決の全文を取得します。 |
list_hierarchy | ヒット件数付きで、階層 ID(連邦/カントン/裁判所/部)を一覧表示します。 |
list_facets | DE/FR/IT のローカライズされたラベルを含む、階層型ファセットツリーです。 |
server_info | バージョンと設定情報です。 |
すべてのパラメーター、フィルター、戻り値のスキーマ、例を含む完全なインターフェースの説明は、docs/API.md をご覧ください。
検索構文 — チートシート
| 操作 | 例 |
|---|---|
| 全文検索、すべての語句(AND) | Mietzins Kündigung |
| フレーズ検索、完全一致の語順 | "fristlose Kündigung" |
| 事件番号 | "BGE 142 III 1" |
| OR | Mietzins OR Pachtzins |
| 除外 | Mietzins NOT Erhöhung |
| ワイルドカード | Mietz* |
| フィールド検索 | title.de:"Kündigung" |
語句間のデフォルトの演算子は AND です。検索対象は
title、abstract、meta、attachment.content、reference です。
language と sort は省略可能です。language を指定しない場合、言語による絞り込みは行われず、サーバーは最初に見つかった言語フィールドを返します(de → fr → it)。sort を指定しない場合は、関連度順に並べ替えられます。明示的に言語を絞り込むには language_filter を使用します。
指定できる言語:de、fr、it。
MCP クライアントへのクイック接続
前提条件(claude.ai と ChatGPT のプラン要件、設定パス)を含む、クライアントごとの詳しい手順は、ランディングページ と docs/CLIENTS.md に記載されています。概要は次のとおりです。
Claude Code(CLI)
claude mcp add --transport http entscheidsuche https://mcp.entscheidsuche.ch/mcp
Cursor/Windsurf/VS Code/汎用(mcp.json)
{
"mcpServers": {
"entscheidsuche": {
"url": "https://mcp.entscheidsuche.ch/mcp"
}
}
}
Claude Desktop(stdio のみ対応のため、mcp-remote ブリッジ経由):
{
"mcpServers": {
"entscheidsuche": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.entscheidsuche.ch/mcp"]
}
}
}
テスト用 MCP Inspector
npx @modelcontextprotocol/inspector https://mcp.entscheidsuche.ch/mcp
注:一部のクライアント向け手順は、まだすべてのケースで動作確認できていません。 Anthropic、OpenAI などのプロバイダーでは、プラン、ツール一覧、設定パスが定期的に変更されます。記載と異なる場合は、 各クライアントの公式ドキュメントを参照してください。フィードバックは Issue または PR としてお寄せください。
ローカル開発
git clone https://github.com/entscheidsuche/entscheidsuche-mcp.git
cd entscheidsuche-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
# Server starten — Streamable HTTP auf 127.0.0.1:8765/mcp
python -m entscheidsuche_mcp
# Alternative: stdio (für lokale CLI-Clients)
python -m entscheidsuche_mcp --transport stdio
設定(環境変数)
完全な一覧は .env.example をご覧ください。主な項目:
| 変数 | デフォルト値 | 説明 |
|---|---|---|
ENTSCHEIDSUCHE_ES_URL | https://entscheidsuche.pansoft.de:9200/entscheidsuche.v2-*/_search | Elasticsearch エンドポイント |
ENTSCHEIDSUCHE_FACETS_URL | https://www.recherche.histoirerurale.ch/Facetten.json | ファセット階層 |
HOST / PORT | 127.0.0.1 / 8765 | リッスンアドレス |
MCP_PATH | /mcp | HTTP パス |
MCP_STATELESS_HTTP | true | セッションを必須としない Streamable HTTP |
MCP_DNS_REBINDING_PROTECTION | true | ホスト/オリジンの検証 |
PUBLIC_BASE_URL | https://mcp.entscheidsuche.ch | 公開ベース URL |
LOG_LEVEL | INFO | ログレベル |
curl によるクイックテスト
# initialize
curl -N -H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
http://localhost:8765/mcp \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
# tools/list
curl -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
http://localhost:8765/mcp \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# search
curl -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
http://localhost:8765/mcp \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search","arguments":{"query":"\"BGE 142 III 1\"","language":"de","size":3}}}'
MCP クライアント(MCP Inspector、Claude Code)を使うと、Streamable HTTP のセッション管理が自動で行われるため、より便利です。
独自インスタンスのデプロイ(Debian)
このリポジトリには、systemd ユニット、nginx vHost、インストールスクリプトが含まれています。これを使うと、誰でも同じ Elasticsearch インデックスに対して独自の MCP エンドポイントを運用できます。
ssh [email protected]
git clone https://github.com/entscheidsuche/entscheidsuche-mcp.git /opt/entscheidsuche-mcp
sudo bash /opt/entscheidsuche-mcp/deploy/install.sh
# TLS-Zertifikat
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d mcp.example.org
このスクリプトはシステムユーザー entscheidsuche を作成し、venv を構築し、.env.example を /etc/entscheidsuche-mcp.env にコピーして、systemd ユニットと nginx vHost をインストールします。
状態を確認します。
systemctl status entscheidsuche-mcp
journalctl -u entscheidsuche-mcp -f
利用統計(/statistik)
MCP サーバーは /statistik で、日別の数値、人気のツール、AI クライアントの分類(clientInfo.name)、時間別スパークライン、メソッドの分布を含む自己完結型の HTML ページを提供します。アクセスのたびにリアルタイムで生成されます。過去の日のデータは JSON キャッシュ(/var/lib/entscheidsuche-mcp/stats-cache.json)に固定されます。
環境変数による Basic Auth(/etc/entscheidsuche-mcp.env に設定):
ESC_STATS_USER=admin
ESC_STATS_PASS=DEIN_PASSWORT
両方が空の場合、/statistik は保護されずにアクセスできます(開発モード)。Authorization ヘッダーは nginx vHost から変更されずに Python サーバーへ転送され、そこで環境変数と照合するために hmac.compare_digest で検証されます。
内容は集計データのみです。ESC_ACCESS_LOG_ARGS_MAX=0(.env.example のデフォルト)にすると、ユーザーの検索クエリにあたるツール引数は、そもそもログに記録されません。
データソース:/var/log/entscheidsuche-mcp/access.log(entscheidsuche_mcp.access ミドルウェアが書き込みます)。たとえば /etc/logrotate.d/entscheidsuche-mcp でログローテーションを設定します。
/var/log/entscheidsuche-mcp/access.log {
weekly
rotate 12
compress
delaycompress
missingok
notifempty
copytruncate
}
サーバーを再起動せずにロガーがローテーション後のファイルへ書き込み続けられるようにするには、copytruncate が重要です。
アーキテクチャ
MCP-Client (Claude, ChatGPT, Cursor, ...)
│ Streamable HTTP (JSON-RPC)
▼
mcp.entscheidsuche.ch
│ TLS, nginx Reverse Proxy
▼
127.0.0.1:8765/mcp ← uvicorn + FastMCP
│ HTTPS
▼
Elasticsearch (entscheidsuche.v2-*)
実装:Python + FastMCP。
運営団体
MCP サーバー、基盤となるプラットフォーム、データセットは、Verein entscheidsuche.ch が運営しています。
- 設立: 2017年、Landquart(GR)
- 団体の目的: スイスの裁判所の判例を、誰もが検索し、アクセスできるようにすること (定款)
- 公益性: 公益目的の追求により、2020年からベルン州で納税義務を免除
- 理事会: Jörn Erbguth、Daniel Kettiger、Claudia Schreiber
- 連絡先:
[email protected] - 郵送先住所: Verein entscheidsuche.ch, 3000 Bern
- 寄付口座: Postfinance IBAN
CH04 0900 0000 1412 0685 4、Verein entscheidsuche.ch, 8000 Zürich(希望に応じて寄付受領書を発行) - 会員資格: 個人は年間100 CHF、法人会員は年間1'000 CHF
このプラットフォームは、2018~2020年に wemakeitでのクラウドファンディング によって資金調達されました。プロジェクトの概要は、2021年7月に民事訴訟・強制執行法の専門誌(ZZZ)に掲載されました。
原典から判例を取得するスクレイパーもオープンソースです。GitHub にある団体のリポジトリをご覧ください。
貢献
Issue、プルリクエスト、提案を歓迎します。特に、次のような貢献をお待ちしています。
- 検索や API に関するバグ報告
- MCP ツールの拡張(例:集計・統計ツール、引用グラフ)
- docs/CLIENTS.md のクライアント向けガイドの改善
- 翻訳
データの誤りや判例の欠落については、このリポジトリではなく、データセットを一元管理している [email protected] まで直接ご連絡ください。
ライセンス
コード: MIT
データ: 基盤となる裁判所の判例は公的著作物であり、URG 第5条に従い著作権保護の対象ではありません。Verein entscheidsuche.ch が構造化したデータは自由に利用できます。詳細は entscheidsuche.ch をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。