mcpField
C
CanLII

CanLII

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

CanLII について

CanLIIは、カナダの連邦・州・準州の判例や立法のメタデータをAIアシスタントに提供するMCPサーバーです。案件や立法を検索できますが、APIから文書の全文は取得できません。

主な機能

  1. 01裁判所・審判機関のデータベース一覧
  2. 02判例と案件メタデータの閲覧
  3. 03判例の引用関係を取得
  4. 04法律・規則データベースの一覧
  5. 05立法メタデータの閲覧

活用シーン

  1. 01特定の裁判所や審判機関の判断を探す
  2. 02案件の引用関係を確認
  3. 03データベース別に法律や規則を閲覧

MCP 対応

MCPクライアントにCanLII APIのツールを公開し、判例と立法のメタデータを検索できるようにします。APIキーはリクエストごと、またはサーバー設定で指定でき、文書の全文は取得できません。

設定

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

エンドポイントhttps://canlii-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://canlii-mcp.vaquill.ai/mcp認証が必要

ツール

詳細

canlii-mcp

CanLII のカナダ法律情報 API 用 MCP(Model Context Protocol) サーバーです。AI アシスタントが、連邦、州、準州のすべての管轄区域におけるカナダの判例法および法令のメタデータにアクセスできるようにします。

フォーク元:tomilashy/canlii-mcp。このフォークでは、キー持ち込み(BYOK)認証、/health ルート、canlii-mcp.vaquill.ai のホスト型エンドポイントが追加されています。ツールに変更はありません。

注: CanLII API が提供するのは、タイトル、引用、日付、キーワード、引用関係などのメタデータのみです。API から文書全文を取得することはできません。

Discord

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

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

ホスト型インスタンスは公開されています。Vaquill トークンは不要です。以下のいずれかの方法で、自分の CanLII キーを指定してください。

  • ヘッダー(推奨。キーが URL に含まれません): X-CanLII-Token: <your_canlii_api_key>

  • URL パラメーター(最も簡単。Claude Desktop コネクター UI や claude.ai web など、ヘッダーに対応していないクライアントでも使えます): URL に ?token=<your_canlii_api_key> を追加します。

    https://canlii-mcp.vaquill.ai/mcp?token=YOUR_CANLII_API_KEY
    

CanLII API リクエストフォームからキーを申請してください。サーバーがキーを保存することはなく、サーバー側のフォールバックキーもないため、すべての呼び出しがご自身の CanLII 利用枠に加算されます。

Claude Desktop / Claude Code
{
  "mcpServers": {
    "canlii": {
      "url": "https://canlii-mcp.vaquill.ai/mcp",
      "headers": {
        "X-CanLII-Token": "YOUR_CANLII_API_KEY"
      }
    }
  }
}
Cursor / VS Code / Windsurf

同じ方法で設定できます。カスタムヘッダー付きの MCP ストリーミング可能 HTTP に対応するクライアントなら、どれでも動作します。stdio のみに対応するクライアントでは、mcp-remote を使ってプロキシしてください。

認証

モードヘッダー用途
BYOK ヘッダー(推奨)X-CanLII-Token: <key>ホスト型/共有デプロイ
BYOK URL パラメーター?token=<key>(または ?canlii_token=)Claude Desktop コネクター UI、claude.ai web など、ヘッダーに対応していないクライアント
サーバーフォールバック(env CANLII_API)セルフホストの単一テナント環境。stdio では必須です。
MCP ゲートAuthorization: Bearer <MCP_AUTH_TOKEN>任意。セルフホスト専用です。canlii-mcp.vaquill.ai の公開ホスト型エンドポイントでは使用しないため、ベアラートークンは不要です。

ツール

ツール説明
list_case_databasesCanLII コレクションに含まれるすべての裁判所および審判機関を一覧表示します
list_cases特定の裁判所/審判機関のデータベースから判決を閲覧します
get_case特定の事件のメタデータ(タイトル、引用、日付、キーワード)を取得します
get_case_citationsある事件が引用した事件、その事件を引用した事件、またはその事件が参照する法令を取得します
list_legislation_databasesすべての制定法および規則のデータベースを一覧表示します
list_legislation特定のデータベースから制定法または規則を閲覧します
get_legislation特定の法令のメタデータを取得します

必要条件

使い方

npx 経由の stdio(最速)
{
  "mcpServers": {
    "canlii": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@tomilashy/canlii-mcp"],
      "env": {
        "CANLII_API": "your_api_key"
      }
    }
  }
}
stdio(ソースから)
npm install
npm run build
node dist/index.js

MCP 設定に追加します。

{
  "mcpServers": {
    "canlii": {
      "command": "node",
      "args": ["/path/to/canlii-mcp/dist/index.js"],
      "env": {
        "CANLII_API": "your_api_key"
      }
    }
  }
}
HTTP サーバー
PORT=3000 CANLII_API=your_api_key node dist/index.js --transport http

MCP エンドポイントは http://localhost:3000/mcp で利用できます。サーバーはステートレスモードで動作します。各リクエストは独立しており、セッション ID や初期化ハンドシェイクは不要です。クライアントはツールを直接呼び出せます。

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_case_databases","arguments":{"language":"en"}}}'
Docker
docker run -e CANLII_API=your_api_key -e MCP_AUTH_TOKEN=your_secret -p 3000:3000 ghcr.io/tomilashy/canlii-mcp

または Docker Compose を使用します。

services:
  canlii-mcp:
    image: ghcr.io/tomilashy/canlii-mcp
    environment:
      CANLII_API: your_api_key
      MCP_AUTH_TOKEN: your_secret  # optional
    ports:
      - "3000:3000"
Cloudflare Workers

このサーバーには Workers 互換のエントリーポイント(src/worker.ts)が含まれています。

CLI でデプロイ
npx wrangler secret put CANLII_API
npx wrangler secret put MCP_AUTH_TOKEN  # optional
npx wrangler deploy
ダッシュボードからデプロイ(Git に接続)
  1. Cloudflare Dashboard → Workers & Pages → Create → Connect to Git に移動します
  2. tomilashy/canlii-mcp リポジトリを選択します
  3. Set up your application ページで、次のように設定します。
    • Project name:canlii-mcp
    • Build command:npm install && npm run build
    • Deploy command:npx wrangler deploy(事前入力済み)
  4. Advanced settings を展開します。
    • Variable name:CANLII_API
    • Variable value:CanLII API キー
    • Encrypt にチェックを入れて、シークレットとして保存します
  5. Deploy をクリックします

MCP エンドポイントは https://canlii-mcp.<your-subdomain>.workers.dev/mcp になります。

設定

環境変数必須デフォルト説明
CANLII_APIstdio およびセルフホストのシングルテナントでのみ必要—CanLII API キーです。HTTP モードでは不要です。HTTP モードでは、クライアントがリクエストごとに独自のキーを指定します。
PORTいいえ3000HTTP サーバーのポート(HTTP モードのみ)
MCP_AUTH_TOKENいいえ—HTTP 認証用のベアラートークンです。設定した場合、すべての HTTP リクエストに Authorization: Bearer <token> を含める必要があります。設定しない場合、サーバーは認証なしで動作します。

レート制限

サーバーは CanLII の API 制限を CanLII キーごと に自動適用するため、ある呼び出し元の利用状況が別の呼び出し元をスロットリングすることはありません。

  • 同時に処理できるリクエストは 1 件
  • 1 秒あたり 2 リクエスト
  • 1 日あたり 5,000 リクエスト

これらは CanLII 独自のキーごとの制限に準じています。各 X-CanLII-Token には独立した利用枠が割り当てられます(キーのハッシュを使って識別し、キーの生データは保持しません)。1 日の制限を超えたリクエストは、API に送信されず、エラーを返します。

開発

npm install
npm run build      # compile TypeScript
npm run watch      # watch mode

リリース

このプロジェクトでは、semantic-release を使用し、Semantic Versioning に従ってバージョンを管理しています。コミットメッセージは Conventional Commits の仕様に従います。

コミットのプレフィックスリリースの種類
fix:パッチ(1.0.0 → 1.0.1)
feat:マイナー(1.0.0 → 1.1.0)
feat!: または BREAKING CHANGEメジャー(1.0.0 → 2.0.0)

main へのプッシュにより、リリースワークフローが実行されます。リリースが作成されると、Docker イメージが自動的にビルドされ、ghcr.io に公開されます。

ライセンス

MIT

コミュニティ

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

コメント

MCP は初めてですか?

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

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