mcpField
C
CourtListener

CourtListener

リモート
github.com/Vaquill-AI法務・行政47 週間前に更新
リポジトリ

CourtListener について

CourtListenerは、CourtListener APIを通じて米国の裁判所意見、事件記録、提出書類、裁判官、引用情報、eCFR規則への読み取り専用アクセスをAIクライアントに提供するMCPサーバーです。ホスト型とセルフホストに対応し、BYOK認証とカーソル方式の検索ページネーションを備えています。

主な機能

  1. 01意見書、事件記録、提出書類、人名の検索
  2. 02裁判記録と音声の取得
  3. 03引用情報の検索と解析
  4. 04eCFR規則の検索と確認
  5. 05カーソルによる検索結果のページ分割

活用シーン

  1. 01法律調査で米国の裁判所意見を探す
  2. 02事件記録やRECAP提出書類を確認
  3. 03法律文書の引用を検証
  4. 04eCFRの連邦規則を検索

MCP 対応

CourtListenerの検索、記録取得、引用情報、eCFR、システム機能を扱う34個の読み取り専用ツールをMCPクライアントに公開します。ホスト型のStreamable HTTP、またはローカルのHTTP・stdioトランスポートに対応し、リクエストごとのBYOKヘッダーを利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://courtlistener-mcp.vaquill.ai/mcp/
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://courtlistener-mcp.vaquill.ai/mcp/認証が必要

ツール

34

このツールにパラメーターはありません。

詳細

CourtListener MCP サーバー

Model Context Protocol サーバーです。公式の CourtListener API v4 を通じて、AI アシスタントが CourtListener の法律データベース(米国の連邦裁判所および州裁判所の判決、訴訟記録、RECAP の提出書類、PACER データ、口頭弁論、裁判官)と、Electronic Code of Federal Regulations を利用できるようにします。

Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、ChatGPT Desktop、または MCP 対応のクライアントで使用できます。

フォーク元:Travis-Prall/court-listener-mcp。このフォークでは、ホスト型エンドポイント、独自キー持ち込み(BYOK)認証、/health ルート、強化された Dockerfile、eCFR(連邦規則)ツール一式、カーソルページネーション、クライアントごとのレート制限、読み取り専用ツールのアノテーションを追加しています。詳しくは変更履歴をご覧ください。

公式サーバーとこのサーバーの使い分け

CourtListener を運営する Free Law Project は、公式 MCP サーバーを https://mcp.courtlistener.com/ でホストしています(OAuth 認証。CourtListener アカウントがあれば無料です)。 告知をご覧ください。OAuth 認証と、最も幅広い CourtListener の機能を利用したい場合は、公式サーバーをおすすめします。eCFR の連邦規則ツール(公式サーバーにはありません)、シンプルな BYOK ヘッダー認証(OAuth の手続き不要)、またはセルフホスト/組み込み可能な Python サーバーが必要な場合は、このサーバーをお使いください。両者は相互に補完するものです。

Discord

ホスト型エンドポイントを使う(インストール不要)

Vaquill チームがコミュニティ向けの公開インスタンスを運用しています。

https://courtlistener-mcp.vaquill.ai/mcp/

courtlistener.com/help/api/rest/ から取得した無料の CourtListener トークンをご自身で用意してください。サーバーはそのトークンを転送します。キーを確認したり保存したりすることはありません。

Claude Desktop / Claude Code

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": {
        "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN"
      }
    }
  }
}
Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
    }
  }
}
VS Code(GitHub Copilot Chat)

.vscode/mcp.json:

{
  "servers": {
    "courtlistener": {
      "type": "http",
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
    }
  }
}
Claude Web(カスタムコネクター)

Settings → Connectors → Add custom connector → URL を貼り付け、ヘッダーとして X-CourtListener-Token を追加します。ワークスペースの所有者のみが利用できます。

Windsurf、Continue など

カスタムヘッダー付きの MCP ストリーミング可能 HTTP に対応するクライアントであれば利用できます。 stdio のみ対応するクライアントでは、サーバーをローカルで実行する(下記参照)か、 mcp-remote でプロキシしてください。

ツール

4 つのグループ(各グループは名前空間で区切られています)に、34 個のツールがあります。すべて読み取り専用です。

グループツール
検索(CourtListener)search_opinions、search_dockets、search_dockets_with_documents、search_recap_documents、search_audio、search_people
取得(CourtListener)get_opinion、get_docket、get_audio、get_court、get_person、get_cluster
引用citation_lookup_citation、citation_batch_lookup_citations、citation_verify_citation_format、citation_parse_citation_with_citeurl、citation_extract_citations_from_text、citation_enhanced_citation_lookup
eCFR(連邦規則)ecfr_list_titles、ecfr_get_title_versions、ecfr_get_title_structure、ecfr_get_ancestry、ecfr_get_source_xml、ecfr_list_agencies、ecfr_list_all_corrections、ecfr_list_corrections_by_title、ecfr_search_regulations、ecfr_get_search_count、ecfr_get_search_summary、ecfr_get_title_search_counts、ecfr_get_daily_search_counts、ecfr_get_hierarchy_search_counts、ecfr_get_search_suggestions
システムstatus

検索ツールは cursor パラメーターを受け取り、ページネーション用の next_cursor を返します。 パラメーターの詳細はapp/README.mdをご覧ください。

認証

優先順位順に、次の2つのモードがあります。

  1. リクエストごとのヘッダー(BYOK) — ホスト型/共有デプロイで推奨されます。 すべての MCP リクエストで、ユーザーの CourtListener キーを送信します。
    • X-CourtListener-Token: <key>(推奨)、または
    • Authorization: Token <key>(CourtListener のネイティブ方式。MCP サーバー自体で Authorization による認証が要求されていない場合にのみ機能します)。
  2. サーバー環境変数へのフォールバック — サーバーに COURT_LISTENER_API_KEY を設定します。 リクエストごとのヘッダーが指定されていない場合に使用されます。BYOK を必須にして運営者の利用枠を消費しないよう、公開インスタンスでは設定しないでください。

どちらも指定されていない場合、ツールは明確なメッセージを含む ValueError を返します。

セルフホスト

Docker
git clone https://github.com/Vaquill-AI/courtlistener-mcp.git
cd courtlistener-mcp
cp .env.example .env  # optionally set COURT_LISTENER_API_KEY for single-tenant
docker compose up -d
# server at http://localhost:8000/mcp/
Python(uv)
uv sync
uv run python -m app --transport http
Stdio(ローカル CLI 連携)
uv run python -m app --transport stdio

Claude Desktop に追加します。

{
  "mcpServers": {
    "courtlistener-local": {
      "command": "uv",
      "args": ["run", "--directory", "/abs/path/to/courtlistener-mcp", "python", "-m", "app", "--transport", "stdio"],
      "env": { "COURT_LISTENER_API_KEY": "your_token" }
    }
  }
}

設定

変数必須デフォルト備考
COURT_LISTENER_API_KEY任意*—リクエストごとのヘッダーがない場合のフォールバックです。公開サーバーでは設定しないでください。
COURTLISTENER_BASE_URLいいえhttps://www.courtlistener.com/api/rest/v4/
COURTLISTENER_TIMEOUTいいえ30秒
MCP_TRANSPORTいいえstdiostdio | http | sse
MCP_PORTいいえ8000http/sse のみ
HOSTいいえ0.0.0.0http/sse のみ
ECFR_BASE_URLいいえhttps://www.ecfr.goveCFR API のベース URL(キー不要)
RATE_LIMIT_ENABLEDいいえtrueクライアントごとの MCP レート制限
RATE_LIMIT_RPSいいえ15クライアントごとの最大リクエスト数/秒
RATE_LIMIT_BURSTいいえ40クライアントごとのバースト容量

* BYOK を使用しないシングルテナントモードで実行する場合にのみ必須です。

ヘルスチェック

curl https://courtlistener-mcp.vaquill.ai/health
# {"status":"healthy","service":"courtlistener-mcp","version":"..."}

開発

uv sync --dev
uv run pytest
uv run ruff format . && uv run ruff check .
uv run mypy app/

変更履歴

0.2.0
  • eCFR(連邦規則)のツール一式を追加(15 個のツール)。タイトル、構造、バージョン、系譜、ソース XML、機関、訂正情報、規則の全文検索と分析に対応しました。CourtListener のみを扱うサーバーとの差別化要素です。
  • 検証時のクラッシュを修正:検索フィルターのオプション項目を null 許容型(str | None)にしたため、明示的な JSON の null を送信するクライアントで ValidationError が発生しなくなりました(以前は search_dockets/search_recap_documents が失敗していました)。
  • 実際のページネーションに対応:機能していなかった hit パラメーターを削除し、検索ツールで limit が反映されるようにしました。また、next_cursor トークンを返し、入力の cursor に対応しました。
  • すべてのツールに読み取り専用のツールアノテーションを追加しました(クライアントの操作性が向上し、書き込みプロンプトが表示されません)。
  • クライアントごとのレート制限ミドルウェアを追加しました(設定可能で、デフォルトで有効)。
  • import_server から mount に移行(FastMCP 3)。API キーの環境変数エイリアスを修正し、プロジェクトのメタデータを更新して、テストスイートをすべて通過させました(ユニットテストはモックを使用し、実 API テストは RUN_INTEGRATION=1 の場合に実行)。

クレジットとライセンス

CourtListener のデータは、Free Law Project により、それぞれの利用条件に基づいて提供されています。eCFR のデータは ecfr.gov のものです。

コミュニティ

質問やアイデアがある方、または貢献したい方は、Discord で Vaquill コミュニティに参加してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。