SuperAPI AI 工具集

canlii-mcp

canlii-mcp 是一个面向 CanLII 加拿大法律信息 API 的 MCP(模型上下文协议)服务器,让 AI 助手能够访问加拿大联邦、各省及地区的判例法与立法元数据。该项目由 tomilashy/canlii-mcp 分叉而来,此分叉新增了自带密钥(BYOK)认证、/health 路由,以及托管端点 canlii-mcp.vaquill.ai,工具本身未变。需要说明的是,CanLII API 仅提供元数据,包括标题、引用、日期、关键词和引用关系,不含完整文档正文。用户可通过托管端点免安装使用,或以 stdio 方式通过 npx、源码、Docker Compose 部署,也可部署到 Cloudflare Workers。服务器按 CanLII 密钥自动执行速率限制,分别为同时 1 个请求、每秒 2 个请求、每天 5000 个请求,且各密钥配额相互独立。

访问官网

工具介绍

用途

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)。 步骤:

  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 将其存储为密钥

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 社区进行提问、交流想法或贡献。