返回市场
实时监控平台

实时监控平台

作者:Alhwyn7 星标更新:2025-09-13

项目介绍

CanLII MCP Server

这是一个提供访问CanLII(加拿大法律信息研究所)API的模型上下文协议(MCP)服务器。该服务器允许AI助手搜索并检索加拿大法律信息,包括法院判决、立法和法律引用。

预备条件

  • CanLII API密钥(从CanLII API获取)
  • Node.js 和 npm
  • Cloudflare Workers账户(用于部署)

设置

1. 克隆并安装依赖

git clone <repository-url>
cd canlii-mcp
npm install

2. 配置环境变量

创建一个.env文件或配置你的Cloudflare Workers环境:

CANLII_API=your_canlii_api_key_here

对于Cloudflare Workers部署,使用以下命令设置环境变量:

wrangler secret put CANLII_API

3. 本地开发

npm run dev

这将在http://localhost:8787启动本地服务器。

4. 部署到Cloudflare Workers

npm run deploy

可用工具

1. get_courts_and_tribunals

检索可用的法院和仲裁机构数据库列表。

参数:

  • language(必需):"en" 或 "fr"
  • 可选日期过滤器:publishedBeforepublishedAftermodifiedBeforemodifiedAfterchangedBeforechangedAfterdecisionDateBeforedecisionDateAfter

2. get_legislation_databases

获取可用的立法数据库(法规、条例等)。

参数:

  • language(必需):"en" 或 "fr"
  • 可选日期过滤器(同上)

3. browse_legislation

在特定数据库中浏览立法。

参数:

  • language(必需):"en" 或 "fr"
  • databaseId(必需):数据库代码(例如,“cas”代表加拿大法规,“car”代表加拿大条例)
  • 可选日期过滤器

4. get_legislation_regulation_metadata

获取特定立法的详细元数据。

参数:

  • language(必需):"en" 或 "fr"
  • databaseId(必需):数据库标识符
  • legislationId(必需):特定立法ID

5. get_case_law_decisions

从特定数据库检索案例法判决。

参数:

  • language(必需):"en" 或 "fr"
  • databaseId(必需):数据库标识符
  • offset(必需):起始记录编号
  • resultCount(必需):结果数量(最大10,000)
  • 可选日期过滤器

6. get_case_metadata

获取特定法院案件的详细元数据。

参数:

  • language(必需):"en" 或 "fr"
  • databaseId(必需):数据库标识符
  • caseId(必需):案件标识符
  • 可选日期过滤器

7. get_case_citator

获取案件引用信息(哪些案件引用了此案件,此案件引用了哪些案件等)。

参数:

  • language(必需):"en" 或 "fr"
  • databaseId(必需):数据库标识符
  • caseId(必需):案件标识符
  • metadataType(必需):"citedCases","citingCases" 或 "citedLegislations"
  • 可选日期过滤器

连接到Claude Desktop

  1. 安装mcp-remote代理

    npm install -g mcp-remote
    
  2. 在Claude Desktop中,进入设置 > 开发者 > 编辑配置,并添加:

{
  "mcpServers": {
    "canlii": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:8787/sse"]
    }
  }
}

对于已部署的服务器,请替换URL为你自己的Cloudflare Workers URL:

https://your-worker-name.your-account.workers.dev/sse
  1. 重启Claude Desktop

连接到Cloudflare AI Playground

  1. 访问 https://playground.ai.cloudflare.com/
  2. 输入你的MCP服务器URL:https://your-worker-name.your-account.workers.dev/sse
  3. CanLII工具将在Playground中可用

使用示例

查找法院判决

// 获取可用的法院和仲裁机构
await get_courts_and_tribunals({
  language: "en",
});

// 浏览加拿大最高法院最近的判决
await get_case_law_decisions({
  language: "en",
  databaseId: "scc-csc",
  offset: 0,
  resultCount: 10,
});

搜索立法

// 获取立法数据库
await get_legislation_databases({
  language: "en",
});

// 浏览联邦法规
await browse_legislation({
  language: "en",
  databaseId: "cas",
});

// 获取特定法案的元数据
await get_legislation_regulation_metadata({
  language: "en",
  databaseId: "cas",
  legislationId: "criminal-code",
});

案件引用

// 获取案件元数据
await get_case_metadata({
  language: "en",
  databaseId: "scc-csc",
  caseId: "2023scc1",
});

// 查找引用此案件的案件
await get_case_citator({
  language: "en",
  databaseId: "scc-csc",
  caseId: "2023scc1",
  metadataType: "citingCases",
});

开发

脚本

  • npm run dev - 启动本地开发服务器
  • npm run deploy - 部署到Cloudflare Workers
  • npm run format - 使用Biome格式化代码
  • npm run lint:fix - 修复linting问题
  • npm run type-check - 运行TypeScript类型检查

项目结构

src/
├── index.ts          # 主MCP服务器实现
├── schema.ts         # API响应的Zod模式
└── worker-configuration.d.ts  # TypeScript声明

API速率限制

请注意CanLII API的速率限制和使用条款。API旨在用于研究和教育目的。

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 运行测试和linting
  5. 提交拉取请求