🚀 フランス法用MCPサーバー
このプロジェクトは、Model Context Protocol (MCP) を通じて Claude Desktop にツールを統合することを目的としています。
技術データを扱う際に、言語モデル(LLM)の信頼性、関連性、および効率を向上させるために、ツールのオーケストレーションがどのように機能するかを理解するための実験と検証を行います。
このコンテキストでは、公式ソースからの信頼性の高い法的データへのアクセスに重点が置かれています。
ここで開発されたMCPサーバーは、フランス法の公開API、特に以下のものを照会するための統一インターフェースを提供します。
- Légifrance – 法令、コード、法律、政令
- JudiLibre – 判例と司法判決
このサーバーを使用することで、以下の内容を検索および参照することが可能になります。
- 📖 フランスの法的コード(民法、刑法、労働法など)
- 📜 法律、命令、政令、勅令
- ⚖️ すべてのフランスの司法管轄区域の判例
- 📰 フランス共和国官報(JORF)
- 🤝 労働協約
- 🏛️ 国務院、最高裁判所、裁判所の判決
🚀 クイックスタート
このサーバーを使用するには、まず必要な前提条件を満たす必要があります。その後、インストールと設定を行い、サーバーを起動して使用することができます。
✨ 主な機能
🔍 Légifrance検索
- すべてのフランスの法的資料ベースでの高度な検索
- 性質、日付、司法管轄区域、省などの強力なフィルター
- 完全なメタデータ付きの条文の参照
- コード、法律、JORF、判例、労働協約などの複数の資料ベース
⚖️ JudiLibre検索
- すべてのフランスの司法管轄区域での判例の検索
- 司法管轄区域、部門、地域、解決策、テーマなどのコンテキストフィルター
- 構造化されたセクション付きの判決全文
- 有効な値のリスト(部門、構成、テーマ)へのアクセスする完全な分類体系
🛠️ 技術的機能
- 安全なOAuth 2.0認証
- トークンの自動管理
- デバッグ用の詳細なログ記録
- サンドボックスモードと本番モード
- パラメータの検証
- エラー管理
📦 インストール
1. リポジトリのクローン
git clone https://github.com/jmtanguy/DroitFrancaisMCP.git
cd DroitFrancaisMCP
または、このプロジェクトのZIPファイルをダウンロードしてください。
2. インストール
使用しているオペレーティングシステムに対応するインストールスクリプトを実行します。
- Windows : install.ps1
- macOS / Linux : install.sh
これらのスクリプトは、以下の操作を自動的に実行します。
- 📦 Python仮想環境の作成
- 🔽 必要なすべての依存関係のインストール
- ⚙️ Claude DesktopクライアントがこのMCPサーバーを使用するように設定
📚 ドキュメント
🔑 前提条件
1. PISTE APIへのアクセス
重要 : このサーバーを使用するには、公式サイト PISTE を通じて公開APIへのアクセスを取得する必要があります。
APIへのアクセスを検証するために、Légifrance APIとJudilibre APIの利用条件も検証する必要があります。
アクセスの取得方法
- piste.gouv.fr でアカウントを作成します。
- 以下のAPIへのアクセスを要求します。
- Légifrance API : 法的条文の検索と参照
- JudiLibre API : 司法判決の検索と参照
- 識別情報を取得します。
CLIENT_ID : 一意のクライアント識別子
CLIENT_SECRET : 認証用の秘密鍵
💡 注意 : PISTE APIは無料ですが、事前登録が必要です。アカウントの有効化には数日かかる場合があります。
2. システム
- Python 3.8以上 (推奨バージョン : 3.10以上)
- パッケージ管理用のpip
- リポジトリをクローンするためのGit
- MCP統合用のClaude DesktopまたはCursor
⚙️ 設定
1. 環境ファイルの作成
cp .env.example .env
2. PISTE識別情報の入力
.env ファイルを編集し、実際の値を入力します。
PISTE_CLIENT_ID=ここに本番環境のクライアントIDを入力
PISTE_CLIENT_SECRET=ここに本番環境のクライアントシークレットを入力
PISTE_SANDBOX_CLIENT_ID=ここにサンドボックス環境のクライアントIDを入力
PISTE_SANDBOX_CLIENT_SECRET=ここにサンドボックス環境のクライアントシークレットを入力
⚠️ セキュリティ : .env ファイルには秘密情報が含まれているため、決してGitにコミットしないでください!
3. MCPクライアントの設定
Claude Desktopの設定
Claude Desktopでサーバーを使用するには、以下のファイルで設定を確認します。
macOS/Linux : ~/.config/claude-desktop/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"droit-francais": {
"command": "/絶対パス/DroitFrancaisMCP/.venv/bin/python3",
"args": ["/絶対パス/DroitFrancaisMCP/droit_francais_MCP.py"]
}
}
}
💡 アドバイス : /絶対パス/ を実際のディレクトリの完全パスに置き換えてください。
Cursorの設定
Cursorでサーバーを使用するには、MCP設定ファイル(通常は ~/.cursor/mcp.json またはCursorの設定内)に以下の設定を追加します。
{
"mcpServers": {
"DroitFrancaisMCP": {
"command": "<DroitFrancaisMCPのパス>/.venv/bin/python3",
"args": [
"-u",
"<DroitFrancaisMCPのパス>/droit_francais_MCP.py"
],
"cwd": "<DroitFrancaisMCPのパス>",
"env": {
"PYTHONPATH": "<DroitFrancaisMCPのパス>",
"PYTHONUNBUFFERED": "1",
"PYTHONIOENCODING": "utf-8"
},
"envFile": "<環境ファイルのパス>",
"description": "フランス法の研究用MCPサーバー (Légifrance, JudiLibre)",
"enabled": true
}
}
}
💡 置き換える内容 :
<DroitFrancaisMCPのパス> をDroitFrancaisMCPディレクトリの完全パスに置き換えます。
<環境ファイルのパス> をPISTE識別情報を含む .env ファイルの完全パスに置き換えます。
📖 使用方法
サーバーの起動
Claude Desktopを使用する場合
- Claude Desktopを再起動します。
- サーバーが利用可能なMCPサーバーのリストに表示されるはずです。
- これでClaude内で直接ツールを使用することができます。
Cursorを使用する場合
- Cursorを再起動します。
- サーバーが利用可能なMCPサーバーのリストに表示されるはずです。
- これでCursor内でMCPプロトコルを介して直接ツールを使用することができます。
例
Claude DesktopまたはCursorで以下の例を試してみてください。
民法における婚姻に関する条文を検索してください
最高裁判所の最近の重大過失による解雇に関する判決は何ですか?
2021年8月24日の共和国の原則の尊重に関する法律第2021 - 1109号の全文を教えてください
ClaudeまたはCursorは、公式ソースを照会するために適切なMCPツールを自動的に識別し、対応する結果を表示します。
🛠️ 利用可能なツール
Légifrance
| ツール |
説明 |
rechercher_droit_francais() |
すべての法的資料ベースでの多条件の高度な検索 |
obtenir_article() |
メタデータ付きの条文の全文を取得 |
JudiLibre
| ツール |
説明 |
rechercher_jurisprudence_judilibre() |
高度なフィルターを使用した司法判決の検索 |
obtenir_decision_judilibre() |
判決の全文を取得 |
obtenir_taxonomie_judilibre() |
有効な値のリスト(部門、司法管轄区域など)へのアクセス |
🏗️ アーキテクチャ
DroitFrancaisMCP/
├── droit_francais_MCP.py # 主要なMCPサーバー
├── api_legifrance.py # Légifrance APIクライアント
├── api_legifrance_search_input.py # Légifrance検索入力モデル
├── api_legifrance_search_output.py# Légifrance検索出力モデル
├── api_judilibre.py # JudiLibre APIクライアント
├── test_api_legifrance.py # Légifranceテスト
├── test_api_judilibre.py # JudiLibreテスト
├── requirements.txt # Python依存関係
├── .env.example # 設定テンプレート
└── README.md # ドキュメント
主要なコンポーネント
droit_francais_MCP.py : FastMCPを介してツールを公開するMCPサーバー
api_legifrance.py : OAuth認証付きのLégifrance APIクライアント
api_judilibre.py : トークン管理付きのJudiLibre APIクライアント
- テスト : 機能の検証用のスクリプト
🧪 テスト
Légifrance APIのテスト
python3 test_api_legifrance.py
JudiLibre APIのテスト
python3 test_api_judilibre.py
pytestを使用する場合
pytest test_api_legifrance.py -v
pytest test_api_judilibre.py -v
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細については LICENSE ファイルを参照してください。
🔗 関連リンク
🤖 AIを用いた開発
このプロジェクトは、人工知能ツールの支援を受けて開発されました。
- Claude (Anthropic) - 開発支援とコード生成
- GitHub Copilot - コードの自動補完
これらのツールを使用することで、開発を加速させると同時に、高品質なコードと完全なドキュメントを維持することができました。生成されたすべての要素は、プロジェクトの特定のニーズに合わせてレビュー、検証、および調整されました。
💡 透明性 : この記載により、貢献者やユーザーがプロジェクトの作成背景を理解することができます。
👤 作者
Jean - Michel Tanguy