法律信息检索服务器

一个提供加拿大法律信息检索服务的Model Context Protocol (MCP)服务器,支持查询法院判决、法律条文和法律引用。

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

使用说明

CanLII MCP服务器

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

先决条件

  • CanLII API密钥(从 加拿大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”
  • 可选日期筛选器: publishedBefore, publishedAfter, modifiedBefore, modifiedAfter, changedBefore, changedAfter, decisionDateBefore, decisionDateAfter

2.get_legislation_databases

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

参数:

  • language (必填):“en”或“fr”
  • 可选日期过滤器(与上述相同)

3.浏览_立法

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

参数:

  • 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 (必填):结果数量(最多10000)
  • 可选日期过滤器

6.get_case_metadata

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

参数:

  • language (必填):“en”或“fr”
  • databaseId (必填):数据库标识符
  • caseId (必填):案例标识符
  • 可选日期过滤器

7.get_case_citator

获取案例的引用信息(哪些案例引用了这个案例,这个案例引用了什么,等等)。

参数:

  • language (必填):“en”或“fr”
  • databaseId (必填):数据库标识符
  • caseId (必填):案例标识符
  • metadataType (必填):“引用的案例”、“引用的案件”或“引用的立法”
  • 可选日期过滤器

连接到克劳德桌面

  1. 安装 mcp远程代理:

    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. 重新启动克劳德桌面

连接到Cloudflare AI游乐场

  1. 首选https://playground.ai.cloudflare.com/
  2. 输入您的MCP服务器URL: https://your-worker-name.your-account.workers.dev/sse
  3. CanLII工具将在操场上提供

使用示例

查找法院判决

// Get available courts and tribunals
await get_courts_and_tribunals({
  language: "en",
});

// Browse recent decisions from Supreme Court of Canada
await get_case_law_decisions({
  language: "en",
  databaseId: "scc-csc",
  offset: 0,
  resultCount: 10,
});

搜索立法

// Get legislation databases
await get_legislation_databases({
  language: "en",
});

// Browse federal statutes
await browse_legislation({
  language: "en",
  databaseId: "cas",
});

// Get specific act metadata
await get_legislation_regulation_metadata({
  language: "en",
  databaseId: "cas",
  legislationId: "criminal-code",
});

案例引用

// Get case metadata
await get_case_metadata({
  language: "en",
  databaseId: "scc-csc",
  caseId: "2023scc1",
});

// Find cases that cite this case
await get_case_citator({
  language: "en",
  databaseId: "scc-csc",
  caseId: "2023scc1",
  metadataType: "citingCases",
});

发展

脚本

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

项目结构

src/
├── index.ts          # Main MCP server implementation
├── schema.ts         # Zod schemas for API responses
└── worker-configuration.d.ts  # TypeScript declarations

API费率限制

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

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试和梳理
  5. 提交拉取请求