用途
canlii-mcp 是一个 MCP(模型上下文协议)服务器,用于对接 CanLII 加拿大法律信息 API,让 AI 助手能够获取加拿大联邦、各省及地区的判例法与立法元数据。该服务器可配合 Claude、Cursor、VS Code、Windsurf 等客户端使用。
主要能力
- 提供加拿大判例法与立法元数据的访问能力。
- 支持通过托管端点使用,无需安装。
- 支持自带密钥(BYOK)认证。
- 提供 /health 路由。
- 按 CanLII 密钥自动执行 API 速率限制。
重要限制
CanLII API 仅提供元数据——标题、引用、日期、关键词和引用关系。完整文档正文无法通过该 API 获取。
使用方式
使用托管端点(无需安装)
托管实例是公开的,不需要 Vaquill token。需通过以下两种方式之一提供自己的 CanLII 密钥:
- 请求头(推荐,可使密钥不出现在 URL 中):
X-CanLII-Token: <your_canlii_api_key> - URL 参数(最简单,适用于 Claude Desktop 连接器 UI 和 claude.ai 网页等无请求头客户端):在 URL 后追加
?token=<your_canlii_api_key>,例如:https://canlii-mcp.vaquill.ai/mcp?token=YOUR_CANLII_API_KEY
可通过 CanLII API 请求表申请密钥。服务器不会存储你的密钥,也没有服务端备用密钥,因此每次调用都计入你自己的 CanLII 配额。
客户端兼容
适用于 Claude Desktop / Claude Code、Cursor / VS Code / Windsurf。任何支持带自定义请求头的 MCP streamable HTTP 的客户端均可使用;仅支持 stdio 的客户端可使用 mcp-remote 进行代理。
stdio 方式
- 通过 npx(最快捷)
- 从源码运行
添加到 MCP 配置中后,MCP 端点为 http://localhost:3000/mcp。服务器以无状态模式运行——每个请求自包含,无需会话 ID 或初始化握手。客户端可直接调用工具。
Docker Compose
也可使用 Docker Compose 运行。
部署到 Cloudflare Workers
服务器包含兼容 Workers 的入口点(src/worker.ts)。
步骤:
- 进入 Cloudflare Dashboard → Workers & Pages → Create → Connect to Git。
- 选择 tomilashy/canlii-mcp 仓库。
- 在 Set up your application 页面填写:
- Project name:
canlii-mcp - Build command:
npm install && npm run build - Deploy command:
npx wrangler deploy(已预填)
- Project name:
- 展开 Advanced settings:
- Variable name:
CANLII_API - Variable value:你的 CanLII API 密钥
- 勾选 Encrypt 将其存储为密钥
- Variable name:
MCP 端点将位于 https://canlii-mcp.<your-subdomain>.workers.dev/mcp。
速率限制
服务器按 CanLII 密钥自动执行 CanLII 的 API 限制,因此一个调用者的使用不会限制另一个调用者:
- 同时 1 个请求
- 每秒 2 个请求
- 每天 5000 个请求
这些限制与 CanLII 自身的按密钥限制一致。每个 X-CanLII-Token 拥有独立配额(以密钥哈希为键;原始密钥不会被保留)。超出每日限制的请求会返回错误,而不会访问 API。
适用场景
适合需要在 AI 助手中检索加拿大判例法与立法元数据(如标题、引用、日期、关键词和引用关系)的法律相关工作流。由于 API 仅提供元数据,不适用于需要完整判决书或法规正文的场景。
其他信息
该项目使用 Semantic Versioning,通过 semantic-release 管理。提交信息遵循 Conventional Commits 规范。推送到 main 会触发发布工作流;若发布,Docker 镜像会自动构建并发布到 ghcr.io。可通过 Discord 加入 Vaquill 社区进行提问、交流想法或贡献。