pkulaw-mcp
# 北大法宝 MCP
把北大法宝接入支持 MCP 的 AI 客户端,用自然语言检索法规、查询案例,并按账户权限获取法律资料。
这个项目在客户端与北大法宝 MCP 服务之间做了一层转接:安装包不含凭据,Token 配置在运行桥接服务的环境中。模型通过两个工具查看可用接口、发起查询,不需要在每次调用时传入 Token。
## 安装
### 方法一:手动配置
需要 **Node.js 22 或更高版本**、支持 stdio 的 MCP 客户端,以及可用的北大法宝 Token。
1. 安装 Node.js 22 或更高版本,运行 `node --version` 和 `npx --version` 确认命令可用。
2. 打开目标客户端的 MCP 配置,新增一个 stdio 服务。先在本地私密位置备份原配置,保留已有的其他服务。
3. 使用下面的配置;Token 通过客户端的私密环境变量设置或本地私人配置填写,不要把示例占位符当作真实凭据。
```json
{
"mcpServers": {
"pkulaw": {
"command": "npx",
"args": ["-y", "@adelagary/pkulaw-tokenless-bridge@0.1.0"],
"env": {
"PKULAW_TOKEN": "YOUR_PKULAW_TOKEN"
}
}
}
}
```
`PKULAW_TOKEN` 只填写 Token 本身,**不要加 `Bearer ` 前缀**。不要带空格或换行。程序不会自动读取 `.env` 文件,需要由客户端或运行环境传入变量。不同客户端的配置文件位置和外层字段可能不同,请按客户端要求填写。
配置中的启动命令为 `npx -y @adelagary/pkulaw-tokenless-bridge@0.1.0`。首次启动会由 npx 获取对应 npm 包;stdio 服务等待客户端通信,不会打开登录页或提供 HTTP 地址。
保存后重新加载 MCP 服务,检查初始化是否成功,以及客户端是否能列出下方两个桥接工具。这只能确认程序可运行,不能证明 Token 有效或账户具有数据权限。确认查询可能消耗账户额度后,再发起一次需要的只读查询。
例如,可以让 AI:
> 查看北大法宝当前账户有哪些可用工具,再检索与劳动合同解除有关的法规。
### 方法二:让 AI Agent 帮你安装
把下面的提示词交给能操作本机配置的 AI Agent。涉及 Token 时,请自己在客户端或本地安全输入界面填写,不要粘贴到对话中。
```text
请阅读 https://github.com/shiroidaoqi/pkulaw-mcp 的 README,帮我安装北大法宝 MCP。先检测或询问操作系统和目标客户端,确认其 stdio 配置方式与 Node.js ≥22;不要猜配置路径。在本地私密位置备份配置,保留其他 MCP 服务,再按 README 配置指定版本。Token 由我通过安全输入或客户端环境变量设置,不要索取、显示或写入聊天及公开文件;只填纯 Token,不加 Bearer 前缀,不走 OAuth,不额外授予权限。完成后验证初始化及两个桥接工具可见;这不代表法宝认证成功。如需查询验证,先说明可能消耗积分或额度,得到我授权后仅做最小只读查询。报告实际结果与错误,不要把安装成功当成查询成功。
```
## 工具怎么用
桥接层提供两个工具:
| 工具 | 参数 | 用途 |
| --- | --- | --- |
| `pkulaw_list_upstream_tools` | 可选 `cursor` | 获取当前账户可用的工具及参数说明;如返回 `nextCursor`,可继续翻页。 |
| `pkulaw_call_upstream_tool` | 必填 `name`、`arguments` | 按工具名称和参数对象调用北大法宝接口。 |
通常先查看工具列表,再按返回的参数说明发起查询。工具清单来自上游服务,不在项目中写死;不同账户的可用工具、数据范围和调用额度可能不同。
可用于法规检索、法规正文获取、案例检索等工作,具体以当前账户返回的工具为准。案例检索结果不等于裁判文书全文,能否获取全文取决于上游是否提供相应接口及账户权限。
每次调用使用独立会话,操作超时为 30 秒;输入参数上限 128 KiB,返回数据上限 1 MiB。结果较大时,可按上游工具支持的分页方式分次获取。
## 凭据与隐私
安装包不附带凭据,使用时需要配置自己的北大法宝 Token。`tokenless` 指分发包不含 Token,工具调用参数中也不需要填写 Token,并不代表匿名访问法宝。
Token 仅通过 `PKULAW_TOKEN` 环境变量传入,不要放在工具参数、聊天、Issue 或公开配置中。查询内容和返回结果会经过所用的 MCP 客户端与北大法宝;如果另行部署到托管环境,也会经过该环境,请留意敏感材料和凭据的访问权限。
本程序通过 **stdio** 与客户端通信,不直接提供远程 HTTP 服务。账户的数据权限、调用额度与 Token 有效期由北大法宝决定。
## 常见问题
**认证失败**
检查 Token 是否有效、`PKULAW_TOKEN` 是否传入运行环境,以及是否误加了 `Bearer ` 前缀。
**客户端只显示两个工具**
这是桥接层的设计。先调用 `pkulaw_list_upstream_tools` 查看北大法宝提供的具体工具,再通过 `pkulaw_call_upstream_tool` 使用它们。
**工具能调用,但没有返回预期资料**
先核对工具参数,再检查账户的数据权限、调用额度和服务可用性。桥接层不会增加账户权限或绕过额度限制。
## 本地开发
在仓库目录中运行:
```bash
npm ci
npm run check
npm test
```
使用 `npm start` 启动 stdio 服务,`PKULAW_TOKEN` 仍需由运行环境传入。
## 许可证
[MIT](LICENSE)。北大法宝数据与接口的使用以其服务条款及账户权限为准。
TDQS
Scored across 2 tools
The two tools have clearly distinct roles: one discovers upstream tool names and schemas, the other invokes them. The descriptions explicitly clarify the relationship and prevent confusion between listing and calling.
Both names use a consistent pkulaw_ prefix and verb_noun structure (list_upstream_tools, call_upstream_tool). There is a minor singular/plural mismatch between 'tools' and 'tool', but the pattern remains predictable.
Two meta-tools are appropriate for a gateway/proxy server whose real surface is discovered dynamically. The count is slightly below the typical 3-15 range, but each tool earns its place and avoids unnecessary duplication.
The list-and-call pair covers the core proxy lifecycle: discover upstream schemas and invoke them. Minor gaps exist around explicit credential status or single-tool metadata, but the list tool returns the necessary schemas for invocation.