LibreJustice について
LibreJustice は、フランス語および欧州の法律を対象とした無料の検索エンジンで、裁判所の判決と法典・法律・条約などの法令文書を横断して検索できます。判決と引用条文を相互にリンクし、法律調査を行う利用者や AI アシスタントから MCP 経由で利用できます。
主な機能
- 01フランス語の判例と法令文書の統合検索
- 02判決と条文を結ぶ引用グラフ
- 03任意の日付時点の法典版の参照
- 04ソース横断の重複排除と AI 要約
- 05OpenAPI で記述された REST API
- 06OAuth 対応のリモート MCP エンドポイント
活用シーン
- 01特定の法律条文を引用する判決の検索
- 02指定日に有効だった法令版の確認
- 03AI アシスタントによる法律調査の支援
MCP 対応
LibreJustice は https://librejustice.fr/mcp でリモート MCP サーバーを公開し、OAuth 2.1 認証のもとで search_decisions、get_decision、search_norms、get_norm の 4 つのツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://librejustice.fr/mcpclaude mcp add --transport http fr-librejustice-librejustice https://librejustice.fr/mcp{"mcpServers":{"fr-librejustice-librejustice":{"type":"http","url":"https://librejustice.fr/mcp"}}}Cursor で開く{"servers":{"fr-librejustice-librejustice":{"type":"http","url":"https://librejustice.fr/mcp"}}}VS Code で開く{"mcpServers":{"fr-librejustice-librejustice":{"type":"http","url":"https://librejustice.fr/mcp"}}}{"mcpServers":{"fr-librejustice-librejustice":{"serverUrl":"https://librejustice.fr/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
LibreJustice
librejustice.fr: フランス語圏およびヨーロッパの法律を対象とした無料の検索エンジンで、最新の公示情報も提供します。フランスの行政裁判所および司法裁判所の判例を統合された法令テキストにリンクし、平易な言葉でウェブおよび MCP を通じて検索可能にします。
無料かつオープンソース。約 380 万件の判決と約 390 万件の法令条文を単一のデータベースに収録し、条文ごとにリンク付けして毎日再同期しています。これが要点です。テキストと判例が一緒に存在するため、法典用に別のサーバーを接続する必要も、引用グラフ用にさらに別のサーバーを接続する必要もありません。
検索できるもの
- 判例: Conseil d'État、Cour de cassation、cours d'appel、行政および司法の第一審裁判所、Conseil constitutionnel、CNIL、CNDA(公開された判決のみ)、Tribunal des conflits、ECHR、CJEU。裁判所、日付、結果、引用条文によるフィルタリング。
- 法令テキスト: 任意の日付時点の法典および法律(条文ごとの履歴付きの統合版)、Journal officiel の全文、EU 法、条約および二国間協定、労働協約、BOFiP、circulaires、および 59 か国の外国法典。
- 公示情報: BOAMP および購買プラットフォームからの公開入札機会。重複を排除し、応募リンクと締切付き。
- ディレクトリ: 弁護士、企業、裁判所。それぞれの訴訟とリンク。
コーパスはオープンソース(Judilibre、DILA/Légifrance、EUR-Lex...)から毎日更新されます。
公式ソースが提供しないもの
公開データベースはサイロであり、それぞれの検索エンジンは自らの収蔵範囲に限定されています(Judilibre は司法裁判所のみを対象とし、行政のオープンデータは CE/CAA/TA をキーワード、裁判所、日付で検索し、Légifrance はテキストを保持しています)。LibreJustice はそれらを統合し、欠けている層を追加します:
- 平易な言葉での検索(語彙検索と意味検索のハイブリッド)と AI による再ランキング、動的ファセット、類似判決;
- グラフ: 抽出・解決された引用。判決から、それが適切なバージョンで引用する正確な条文へ、そして条文からそれを引用する判決へ;
- ソース間の重複排除(1 判決、1 ページ)および公式チャネルから欠落している判決の復元;
- AI 要約を判決ごとに提供し、逐語的な抜粋とは常に区別;
- AI アシスタント向けのリモート MCP エンドポイント。
AI アシスタントから LibreJustice を使う
公開 MCP サーバーは https://librejustice.fr/mcp です(動的クライアント登録を伴う OAuth 2.1: 設定すべき API キーはありません)。4 つのツール: search_decisions、get_decision、search_norms、get_norm。
Claude Code では、プラグインがコネクターと使用スキルをインストールします:
/plugin marketplace add librejustice/librejustice
/plugin install librejustice@librejustice
スキルのみ(MCP コネクターなし)は、skills を通じて互換性のある任意のエージェントにインストールできます:
npx skills add librejustice/librejustice
claude.ai では、LibreJustice はコネクターディレクトリに掲載されています。ワンクリックしてから OAuth 認証を行うだけです。ChatGPT、Le Chat、Perplexity では、https://librejustice.fr/mcp を指すカスタムコネクターを追加してください。
自分のコードから LibreJustice を使う
同じコーパスを REST で利用でき、openapi.json(OpenAPI 3.1)で記述されています。キーは無料です: アカウントを作成し、プロフィールからキーを発行してください。ガイドは librejustice.fr/api-guide にあります。
curl -H 'Authorization: Bearer ljk_your_key' \
'https://librejustice.fr/api/search?q=trouble+anormal+de+voisinage&limit=3'
5 つのルート: /api/search、/api/search-textes、/api/decision/{id}、/api/texte/{code}/{article}、およびその日に有効なバージョン用に末尾に /{date} を付けた同様のルート。
スタック
単一サーバーノードで、Postgres + ParadeDB + VectorChord(ハイブリッド BM25 + ベクトル検索)、API とフロントエンドは Rust 製です。
純粋な Rust の Cargo ワークスペースで、2 つのルートに分かれています:
packages/ライブラリ:lj-core純粋なコア: 判断モデルとその正規化。lj-parse判断モデルへのソースパーサー。lj-norm法令テキストの参照情報: 条文キー、エイリアス、適用可否。lj-extract判断からのフィールドおよび引用の抽出。lj-sourcesソース I/O(Judilibre JSON、opendata ZIP/XML)。lj-storePostgres アクセス(tokio-postgres + deadpool)とマイグレーション。lj-llm埋め込みバックエンド、キャッシュ、量子化、Mistral クライアント(chat/OCR)。lj-dtosapi から web へのコントラクト(serde)。lj-telemetryトレーシングと OTLP エクスポート。lj-apiAPI レイヤー(Axum + MCP rmcp + OAuth)。lj-webLeptos フロントエンド(SSR + WASM ハイドレーション)、Tailwind。
apps/出荷可能なバイナリ:lj-server単一デプロイ: API + MCP/OAuth + SSR。lj-ingest取り込み CLI と cron ランナー。
ビルドと開発
Rust ツールチェーンは rust-toolchain.toml で固定されています。タスクは mise を通じて実行されます:
mise run test # rustfmt --check + clippy -D warnings + cargo test --workspace
mise run dev # merged lj-server (cargo leptos watch, :3000)
ローカルデータベースには: mise run dbs。このタスクは LIBREJUSTICE_STATE_DIR 配下に Postgres の状態を準備し、データディレクトリを管理し、コンテナがマウントする設定をコピーしてから起動します。
デプロイ
podman compose(infra/docker-compose.yml)による単一サーバー: Postgres(ParadeDB + VectorChord)、統合された lj-server バイナリ、caddy フロントエンド、および取り込み cron。.env を記入し(.env.example を参照)、その後:
mise run ensure-pg # Postgres state and conf
podman compose -f infra/docker-compose.yml --profile prod up -d --build
podman compose -f infra/docker-compose.yml exec -T cron lj-ingest migrate # migrations
lj-server は API、MCP/OAuth、SSR およびアセットを配信します。平文で待ち受け、caddy が :443 を保持して TLS を終端するため、アプリケーションコンテナが再作成されてもソケットはバインドされたままです。
出荷される Postgres 設定(infra/pg-conf/)には、アプリケーションが必要とするもの(拡張機能、ParadeDB 設定、圧縮)が開発マシン向けのサイズで含まれています。本番インスタンスでは、ハードウェアに合わせて shared_buffers と effective_cache_size を引き上げます。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。