canlii について
canliiは、CanLII APIを通じてカナダの法律情報を検索するMCPサーバーです。法律研究者向けに、英語・フランス語の検索、判例の引用確認、法令の閲覧を提供します。
主な機能
- 01キーワードで判例や法令を検索
- 02裁判所・判例・法令データベースを閲覧
- 03判例メタデータと引用関係を取得
- 04英語・フランス語のツールに対応
- 05APIリクエストを自動でレート制限
活用シーン
- 01法律上の論点に関するカナダ判例を検索
- 02州法や連邦法を閲覧
- 03後続判例による判例の引用を確認
- 04引用情報・日付・CanLIIリンクを取得
MCP 対応
MCPサーバーは、CanLIIの判例検索、判例・法令の閲覧、メタデータ取得、引用検索のツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 全文検索クエリです。判例名、法律概念、法律の参照情報、キーワードを含めることができます。 |
| offset | number | いいえ | ページネーションのオフセット(デフォルトは 0)。結果のページを切り替える際に使用します。 |
| language | enum | いいえ | 言語:'en' は英語(デフォルト)、'fr' はフランス語ですen | fr |
| resultCount | number | いいえ | 返す結果の数(1~100、デフォルトは 10)。AI のコンテキスト効率を高めるため、少ない値にしてください。 |
詳細
CanLII MCP サーバー
CanLII API を介してカナダの法律情報を検索するための、Model Context Protocol (MCP) サーバーです。Claude Desktop または Claude Code から、判例の検索、法令の閲覧、引用の確認ができます。
npx canlii-mcp
特長
- 全文検索 — キーワード、判例名、法律概念で CanLII 全体を検索できます
- 判例引用確認 — 後続の判例が引用しているかを調べ、その判例が現在も有効か確認できます
- 法令の閲覧 — 管轄区域ごとに法令や規則を閲覧できます
- バイリンガル対応 — 引用確認機能を含むすべてのツールで、英語とフランス語に対応しています
- 9 つのツール — 検索、裁判所の閲覧、判例の閲覧、判例メタデータ、引用の詳細確認、引用のプレビュー、法令データベース、法令の閲覧、法令メタデータ
- レート制限を内蔵 — リクエストを直列化するキューにより、CanLII API の制限(毎秒 2 リクエスト、同時に 1 リクエスト、1 日 5,000 リクエスト)を遵守します
- 入力検証 — すべてのパラメーターを正規表現で検証し、インジェクションを防ぐため URI エンコードします
- 軽量 — 実行時依存関係は 2 つ、コードは約 500 行で、ローカルの stdio プロセスとして動作します
- セキュリティ優先 — ファイルシステムへのアクセスやシェル実行は行わず、
api.canlii.orgにのみ接続します
クイックスタート
前提条件: Node.js 18 以降と、CanLII API キー(研究目的であれば無料)。
Claude Desktop — 設定ファイル(macOS の場合は ~/Library/Application Support/Claude/claude_desktop_config.json)に追加します。
{
"mcpServers": {
"canlii": {
"command": "npx",
"args": ["-y", "canlii-mcp"],
"env": {
"CANLII_API_KEY": "your_api_key_here"
}
}
}
}
保存後、Claude Desktop を再起動します。
Claude Code:
claude mcp add canlii -e CANLII_API_KEY=your_key -- npx -y canlii-mcp
ソースから実行する場合(開発用):
git clone https://github.com/mohammadfarooqi/canlii-mcp.git
cd canlii-mcp
npm install && npm run build
利用可能なツール(9)
search
CanLII 全体の判例、法令、解説を対象とする全文キーワード検索です。法律調査の主な入口として使用します。
search({ query: "material change in circumstances Ontario", resultCount: 10 })
get_courts_and_tribunals
利用可能な裁判所および審判機関のデータベースをすべて一覧表示します。他のツールで必要となるデータベース ID を返します。
主なオンタリオ州のデータベース:onsc(上級裁判所)、onca(控訴裁判所)、oncj(司法裁判所)、csc-scc(カナダ最高裁判所)。
get_case_law_decisions
特定の裁判所データベースの判例を、新しく追加された順に閲覧します。日付による絞り込みにも対応しています。
get_case_law_decisions({ databaseId: "onsc", resultCount: 20 })
get_case_metadata
特定の判例の詳細情報(引用情報、判決日、事件番号、キーワード、判決全文を読むための CanLII URL)を取得します。
get_case_metadata({ databaseId: "onsc", caseId: "2021onsc8582" })
get_case_citator
判例の引用関係を調べます。判例が現在も有効かどうかを確認するには、citingCases を使用します。
get_case_citator({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })
get_case_citator_tease
最大 5 件の結果を返す、引用の簡易プレビューです。手早く確認する場合は、引用の詳細確認よりも高速です。
get_case_citator_tease({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })
get_legislation_databases
法令データベースをすべて一覧表示します。オンタリオ州:ons(法律)、onr(規則)。連邦:cas(法律)、car(規則)。
browse_legislation
特定のデータベースに含まれる法令項目を一覧表示します。
browse_legislation({ databaseId: "ons" })
get_legislation_regulation_metadata
特定の法律または規則のメタデータ(CanLII URL を含む)を取得します。
一般的な調査ワークフロー
- 検索 —
search({ query: "gatekeeping parenting time" })で関連する判例を探します - 詳細を取得 —
get_case_metadata(...)で完全な引用情報と CanLII URL を取得します - 引用を確認 —
get_case_citator(..., metadataType: "citingCases")で判例が現在も有効か確認します - 判決を読む — CanLII URL をクリックして、canlii.org で全文を読みます
API のレート制限
CanLII の API 利用規約に基づく制限:
- 1 日あたり 5,000 クエリ
- 毎秒 2 リクエスト
- 同時に 1 リクエスト
- メタデータへのアクセスのみ。API から文書の全文は取得できません
サーバーは、内蔵のレートリミッターによりこれらの制限を自動的に適用します。
開発
npm run build # Compile TypeScript
npm run start # Run the server (needs CANLII_API_KEY env var)
プロジェクト構成
src/
index.ts # MCP server — tools, rate limiter, stdio transport
schema.ts # Zod schemas for CanLII API responses
貢献
貢献を歓迎します。このプロジェクトは、AI ツールを通じてカナダの法律調査をより利用しやすくすることを目指しています。
貢献方法:
- バグや予期しない API の動作を報告する — issue を作成
- 新しいツールや改善案を提案する — ディスカッションを開始
- 修正や新機能を含む PR を提出する
PR の提出方法:
- このリポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/my-improvement) - 変更を加え、ローカルでテストします(
npm run build && CANLII_API_KEY=your_key npm run start) - コミットしてフォークにプッシュします
- 変更内容とその理由を説明するプルリクエストを作成します
CanLII API のレスポンスやスキーマの不一致に問題を見つけた場合、または法律調査に役立つ新しいツールのアイデアがある場合は、修正方法がわからなくても、issue を作成してください。一緒に調査します。
セキュリティ
このサーバーは、透明性が高く、最小限の機能を備えるよう設計されています。
- 接続先は
api.canlii.orgのみ — ほかのネットワーク呼び出し、テレメトリー、分析はありません - API キーはローカルに保持 — 環境変数で渡され、ログに記録されたりレスポンスに含まれたりすることはありません
- すべての入力を検証 — データベース ID、事件 ID、日付は使用前に正規表現で検証され、パスセグメントは URI エンコードされます
- すべての API レスポンスを検証 — 返却前に Zod スキーマを通じて解析されます
- ファイルシステムへのアクセスなし — サーバーは CanLII への HTTPS 呼び出しのみを行います
- シェル実行なし —
child_process、exec、spawnは使用しません - ランタイム依存関係は 2 つ —
@modelcontextprotocol/sdk(公式 Anthropic MCP SDK)とzod(スキーマ検証) - レートリミッターを内蔵 — リクエストキューを直列化し、API の不正利用を防ぎます
- MIT ライセンスの完全なオープンソース — src/index.ts(約 350 行)と src/schema.ts(約 140 行)のすべての行を確認できます
セキュリティ上の問題を発見した場合は、SECURITY.md をご覧ください。
既知の制限事項
- 判決本文は取得できません — 全文 検索(事件名、引用、内容を対象にした検索)は可能ですが、API は判決の全文を返すことができません。判決を読むには、CanLII の URL をクリックして canlii.org で確認する必要があります。段落番号や直接引用は、原典を読んで確認してください。
- 検索は意味ベースではなくキーワードベースです — 「mother gatekeeping sole decision-making」のようなクエリでは、さまざまな結果が返されることがあります。クエリを絞り込み、メタデータを詳しく調べる前に事件名を確認してください。
- 検索結果に事件の詳細は含まれません — 検索で返されるのは引用と事件名のみです。キーワード、トピック、判決日、CanLII URL を取得するには、各事件について個別に
get_case_metadataを呼び出す必要があります。 - 判例の扱いを示す指標はありません — 引用判例検索ツールでは、どの事件がある判決を引用しているかはわかりますが、その判決が踏襲、区別、または覆されたかは示されません。判例の扱いを判断するには、引用している事件を読む必要があります。
- 判例の概要表示は結果が最大 5 件です — 包括的な引用分析には、
get_case_citator(完全版)を使用してください。 - 検索にデータベース/管轄区域のフィルターはありません — サーバー側で検索結果を特定の裁判所や州に限定することはできません。代わりに、クエリに管轄区域のキーワードを追加してください(例:「custody」だけでなく「custody Ontario」)。
- 検索エンドポイントは文書化されていません — 動作しますが、CanLII の公式 API ドキュメントには記載されていないため、予告なく変更される可能性があります。
- レート制限は厳格です — 1 日あたり 5,000 クエリ、毎秒 2 リクエスト、同時リクエスト 1 件です(内蔵のレートリミッターによって自動的に適用されます)。
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。