加拿大法律信息协议服务

为AI助手提供加拿大案例法和立法元数据访问的MCP服务器,覆盖联邦、省和地区司法管辖区。

  • by tomilashy
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 tomilashy/canlii-mcp

使用说明

canlii mcp

一 MCP(模型上下文协议) 服务器 CanLII 加拿大法律信息API。使人工智能助理能够访问所有联邦、省和地区司法管辖区的加拿大判例法和立法元数据。

注: CanLII API仅提供元数据-标题、引用、日期、关键字和引用关系。API无法提供完整的文档文本。

工具

工具 说明
list_case_databases 列出CanLII收藏中的所有法院和法庭
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 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兼容的入口点(src/worker.ts).

CLI部署

npx wrangler secret put CANLII_API
npx wrangler secret put MCP_AUTH_TOKEN  # optional
npx wrangler deploy

仪表板部署(连接到Git)

  1. 首选 Cloudflare仪表板 → 工人和页面 → 创建 → 连接到Git
  2. 选择您的 tomilashy/canlii-mcp 仓库
  3. 上 设置您的应用程序 页面:
    • 项目名称: canlii-mcp
    • 生成命令: npm install && npm run build
    • 部署命令: npx wrangler deploy (预填)
  4. 扩展 高级设置:
    • 变量名称: CANLII_API
    • 变量值:您的CanLII API密钥
    • 检查 加密 将其作为秘密存储
  5. 点击 部署

MCP端点将位于 https://canlii-mcp.<your-subdomain>.workers.dev/mcp.

配置

环境变量 必填 默认 描述
CANLII_API 是 - 您的CanLII API密钥
PORT 没有 3000 HTTP服务器端口(仅限HTTP模式)
MCP_AUTH_TOKEN 没有用于HTTP身份验证的承载令牌。如果设置,所有HTTP请求都必须包括 Authorization: Bearer <token>。如果未设置,服务器将在没有身份验证的情况下运行。

速率限制

服务器自动执行CanLII的API限制:

  • 一次一个请求
  • 每秒2个请求
  • 每天5000个请求

超过每日限制的请求返回错误,而不是命中API。

发展

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

发布

此项目使用 语义化版本 通过 语义释放.提交消息后 约定式提交 规格:

提交前缀 发布类型
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.

许可证

麻省理工学院