article
README
🚀 CanLII MCP服务器
CanLII MCP服务器是一个基于模型上下文协议(MCP)的服务器,它提供了对加拿大法律信息研究所(CanLII)API的访问。借助该服务器,AI助手能够搜索和获取包括法院判决、法规以及法律引用在内的加拿大法律信息。
🚀 快速开始
✨ 主要特性
- 提供对CanLII API的访问,支持AI助手搜索和获取加拿大法律信息。
- 提供多种工具,可用于检索法院和法庭数据库、法规数据库、浏览法规、获取法规元数据、获取判例法判决、获取案例元数据和案例引用信息等。
- 支持与Claude Desktop和Cloudflare AI Playground集成。
📦 安装指南
前提条件
- CanLII API密钥(从 CanLII API 获取)
- Node.js和npm
- Cloudflare Workers账户(用于部署)
安装步骤
- 克隆仓库并安装依赖
git clone <repository-url>
cd canlii-mcp
npm install
- 配置环境变量
创建一个
.env文件或在Cloudflare Workers环境中配置以下内容:
CANLII_API=your_canlii_api_key_here
若要部署到Cloudflare Workers,可使用以下命令设置环境变量:
wrangler secret put CANLII_API
- 本地开发
npm run dev
这将在本地启动服务器,访问地址为 http://localhost:8787。
4. 部署到Cloudflare Workers
npm run deploy
💻 使用示例
基础用法
查找法院判决
// 获取可用的法院和法庭
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",
});
📚 详细文档
可用工具
- get_courts_and_tribunals 检索可用的法院和法庭数据库列表。 参数:
language(必填):"en" 或 "fr"- 可选日期过滤器:
publishedBefore、publishedAfter、modifiedBefore、modifiedAfter、changedBefore、changedAfter、decisionDateBefore、decisionDateAfter
- get_legislation_databases 获取可用的法规数据库(如成文法、法规等)。 参数:
language(必填):"en" 或 "fr"- 可选日期过滤器(同上)
- browse_legislation 浏览特定数据库中的法规。 参数:
language(必填):"en" 或 "fr"databaseId(必填):数据库代码(例如,"cas" 表示加拿大法规,"car" 表示加拿大条例)- 可选日期过滤器
- get_legislation_regulation_metadata 获取特定法规的详细元数据。 参数:
language(必填):"en" 或 "fr"databaseId(必填):数据库标识符legislationId(必填):特定法规ID
- get_case_law_decisions 从特定数据库中检索判例法判决。 参数:
language(必填):"en" 或 "fr"databaseId(必填):数据库标识符offset(必填):起始记录编号resultCount(必填):结果数量(最多10,000条)- 可选日期过滤器
- get_case_metadata 获取特定法院案件的详细元数据。 参数:
language(必填):"en" 或 "fr"databaseId(必填):数据库标识符caseId(必填):案件标识符- 可选日期过滤器
- get_case_citator 获取案件的引用信息(如哪些案件引用了此案件、此案件引用了哪些案件等)。 参数:
language(必填):"en" 或 "fr"databaseId(必填):数据库标识符caseId(必填):案件标识符metadataType(必填):"citedCases"、"citingCases" 或 "citedLegislations"- 可选日期过滤器
连接到Claude Desktop
- 安装 mcp-remote代理:
npm install -g mcp-remote
- 在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
- 重启Claude Desktop
连接到Cloudflare AI Playground
- 访问 https://playground.ai.cloudflare.com/
- 输入你的MCP服务器URL:
https://your-worker-name.your-account.workers.dev/sse - CanLII工具将在Playground中可用
🔧 技术细节
脚本
npm run dev- 启动本地开发服务器npm run deploy- 部署到Cloudflare Workersnpm run format- 使用Biome格式化代码npm run lint:fix- 修复代码检查问题npm run type-check- 运行TypeScript类型检查
项目结构
src/
├── index.ts # 主要的MCP服务器实现
├── schema.ts # API响应的Zod模式
└── worker-configuration.d.ts # TypeScript声明
📄 许可证
文档未提及相关许可证信息。
⚠️ 重要提示
要注意CanLII API的速率限制和使用条款。该API仅用于研究和教育目的。
💡 使用建议
如果你想为项目做出贡献,可以按照以下步骤进行:
- 分叉仓库
- 创建功能分支
- 进行更改
- 运行测试和代码检查
- 提交拉取请求
微信扫一扫