Skip to main content
Glama

CanLII MCPサーバー

npm version License: MIT

CanLII APIを介してカナダの法情報を検索するためのModel Context Protocol (MCP)サーバーです。Claude DesktopやClaude Codeから、判例の検索、法令の閲覧、引用確認が可能です。

npx canlii-mcp

機能

  • 全文検索 — キーワード、事件名、または法的概念を使用してCanLII全体を検索

  • 判例引用確認(シテーター) — 後続の判例でどのように引用されているかを確認し、その判例が現在も有効な法として機能しているかをチェック

  • 法令閲覧 — 管轄区域ごとに制定法や規則を閲覧

  • バイリンガル — 引用確認ツールを含むすべてのツールで英語とフランス語をサポート

  • 9つのツール — 検索、裁判所一覧、判例一覧、判例メタデータ、完全な引用確認、引用確認プレビュー、法令データベース、法令閲覧、法令メタデータ

  • 組み込みのレート制限 — シリアル化されたリクエストキューにより、CanLIIのAPI制限(2リクエスト/秒、同時接続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)

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を含む)を取得します。

標準的なリサーチワークフロー

  1. 検索search({ query: "gatekeeping parenting time" }) で関連する判例を探す

  2. 詳細取得get_case_metadata(...) で完全な引用とCanLII URLを取得する

  3. 引用確認get_case_citator(..., metadataType: "citingCases") でその判例が現在も有効かを確認する

  4. 判決を読む — CanLII URLをクリックしてcanlii.orgで全文を読む

APIレート制限

CanLIIのAPI利用規約に基づきます:

  • 1日あたり5,000クエリ

  • 1秒あたり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ツールを通じてカナダの法務リサーチをより身近にすることを目指しています。

貢献方法:

PRを提出するには:

  1. このリポジトリをフォークする

  2. フィーチャーブランチを作成する (git checkout -b feature/my-improvement)

  3. 変更を加えてローカルでテストする (npm run build && CANLII_API_KEY=your_key npm run start)

  4. フォーク先にコミットしてプッシュする

  5. 何を変更したか、なぜ変更したかの説明を添えてプルリクエストを開く

CanLII APIのレスポンスやスキーマの不一致、あるいは法務リサーチに役立つ新しいツールのアイデアがあれば、修正方法がわからなくてもIssueを開いてください。一緒に調査しましょう。

セキュリティ

このサーバーは透明性と最小限の構成を重視して設計されています:

  • api.canlii.orgへの接続のみ — 他のネットワーク呼び出し、テレメトリ、分析は一切なし

  • APIキーはローカルに保持 — 環境変数経由で渡され、ログやレスポンスに含まれることはない

  • すべての入力を検証 — データベースID、ケースID、日付は使用前に正規表現で検証され、パスセグメントはURIエンコードされる

  • すべてのAPIレスポンスを検証 — 返される前にZodスキーマで解析される

  • ファイルシステムへのアクセスなし — サーバーはCanLIIへのHTTPS呼び出しのみを行う

  • シェル実行なしchild_processexecspawnは使用しない

  • 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を呼び出す必要があります。

  • 処理指標がない — 引用確認ツールはどの判例がその判決を引用しているかを示しますが、それが「支持された(followed)」のか、「区別された(distinguished)」のか、「覆された(overturned)」のかは示しません。処理内容を判断するには、引用している判例を読む必要があります。

  • 引用確認プレビューは最大5件まで — 包括的な引用分析にはget_case_citator(完全版)を使用してください。

  • 検索にデータベース/管轄区域のフィルタがない — サーバー側で特定の裁判所や州に検索結果を限定することはできません。代わりにクエリに管轄区域のキーワードを追加してください(例:「custody」ではなく「custody Ontario」)。

  • 検索エンドポイントは非公式 — 機能しますがCanLIIの公式APIドキュメントには記載されていないため、予告なく変更される可能性があります。

  • レート制限が厳しい — 1日5,000クエリ、2リクエスト/秒、同時リクエスト1(組み込みのレートリミッターにより自動的に強制)。

ライセンス

MIT — LICENSEを参照してください。

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mohammadfarooqi/canlii-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server