@pkulaw/mcp-cli
v0.2.1
Published
北大法宝 MCP 命令行:终端直连网关,多 Server、streamableHttp;不经 LLM,宜脚本与编排;tools/list 与 tools/call。
Maintainers
Readme
@pkulaw/mcp-cli
北大法宝 MCP 命令行工具:在终端里提供法律检索、案号识别、法条校验等 MCP 能力——命令与参数即约定,直连网关执行,不经由 LLM 推理;适合 批量查询、脚本与 CI 自动化,以及 Agent 工作流编排。鉴权与网关与 Cursor、Dify 等 MCP 客户端一致。
English: PKULaw MCP CLI — calls your subscribed MCP tools over HTTPS (tools/list, tools/call). MIT licensed; issues and PRs welcome (see CONTRIBUTING). You still need a valid PKULaw MCP Access Token and network access to the gateway.
提示:推荐
npm install -g @pkulaw/mcp-cli全局安装;若你正在克隆本仓库做开发,请用npx pkulaw-mcp …(在仓库根目录)或npm link,详见 本地开发。
章节索引(简介、配置、各服务示例等):见下文 目录。
第一次使用?请按顺序做下面的事
适合完全不了解命令行的用户:一步一步复制粘贴,把尖括号里的内容换成你自己的。
你需要先准备好
| 项目 | 说明 |
|------|------|
| Node.js | 版本 18 或以上。下载地址,安装后重启终端。终端输入 node -v 能看到版本号即成功。 |
| Access Token | 打开 北大法宝 MCP 服务平台,注册/登录后,在应用或密钥管理里获取 Access Token(用于请求头 Authorization: Bearer …)。 |
| (可选)环境变量 | 若使用 PKULAW_MCP_AUTHORIZATION,值为完整 Authorization 头;运行时优先于 config.json。适合 CI / 流水线或临时不想把 Token 写入配置文件的场景。 |
| (可选)PKULAW_MCP_DEBUG | 设为 1 / true / yes / on(不区分大小写)时,在 update 或依赖环境触发的缓存刷新路径上,向 stderr 打印各 tools/list 请求的完整 URL、HTTP 状态等;不打印完整 Token。亦可改用子命令 --verbose(见下文「排障」)。 |
| 网络 | 能访问法宝网关(默认见下文「网关地址」)。 |
第一步:安装本工具
任选一种方式(不必三种都做)。
方式 A:全局安装(装一次,以后到处能用命令 pkulaw-mcp)
npm install -g @pkulaw/mcp-cli方式 B:不全局安装,每次在项目里用 npx(适合临时试用)
先进入你克隆下来的 pkulaw-mcp-cli 文件夹,执行 npm install 和 npm run build,之后所有命令都写成:
npx pkulaw-mcp --help方式 C:从源码安装(与方式 B 类似,适合贡献者或内网源码分发)
git clone <仓库地址>
cd pkulaw-mcp-cli
npm install
npm run build可选:在该目录执行 npm link,之后可在任意目录直接输入 pkulaw-mcp。协作与分支策略见 CONTRIBUTING.md。
第二步:写入配置并拉取工具列表
推荐(最省事、关终端再开也能用):用 init --authorization 把 Token 写入 ~/.pkulaw/mcp/config.json(Bearer 与 Token 之间仅一个空格)。
pkulaw-mcp init --authorization "Bearer <你的Token>"若使用 方式 B / C 且未 npm link,请把命令里的 pkulaw-mcp 改成:
npx pkulaw-mcp init --authorization "Bearer <你的Token>"测试环境网关若与默认不同,可加上 --gateway-base-url,例如:
pkulaw-mcp init --gateway-base-url https://apim-gateway.pkulaw.com --authorization "Bearer <你的Token>"(可选) 若希望在 CI 里不把 Token 写进配置文件,可设置环境变量 PKULAW_MCP_AUTHORIZATION(值同上,完整 Authorization 头),再执行 pkulaw-mcp init(仅写入网关等;详见 安全)。bash / zsh:export PKULAW_MCP_AUTHORIZATION='Bearer <你的Token>';PowerShell:$env:PKULAW_MCP_AUTHORIZATION = "Bearer <你的Token>"。
这一步会做什么?
- 在用户目录下创建配置文件(Windows 一般为
C:\Users\<用户名>\.pkulaw\mcp\config.json,macOS/Linux 为~/.pkulaw/mcp/config.json)。 - 自动向各 MCP 服务请求 工具列表 并写入本地缓存(可能需要几十秒,请耐心等待)。
第三步:确认配置是否正常
pkulaw-mcp check也可使用更直观的别名:
pkulaw-mcp doctor看到「配置文件」「gatewayBaseUrl」「authorization」均为正常提示即可(若仅用环境变量提供 Token,会提示来自 PKULAW_MCP_AUTHORIZATION)。
第四步:查看有哪些服务、每个服务有哪些工具
pkulaw-mcp tools也可使用兼容别名:
pkulaw-mcp list-tools
pkulaw-mcp ls只看某一个服务,例如法规关键词或法规语义:
pkulaw-mcp tools law-keyword
pkulaw-mcp tools law-semantic记下输出里的 工具名称 与 -- 开头的参数名(来自网关 inputSchema,各服务、各工具可能不同)。线网上工具与字段可能更新,请务必以 tools / 子命令 --help 为准,不要凭文档猜参数名。
若某个服务「已缓存工具数」为 0,可先执行:
pkulaw-mcp update也可使用别名:
pkulaw-mcp refresh排障(需要更细的信息时):执行 pkulaw-mcp update --verbose,或在拉缓存前设置 PKULAW_MCP_DEBUG=1 再执行 pkulaw-mcp update(PowerShell:$env:PKULAW_MCP_DEBUG="1"; pkulaw-mcp update)。调试信息输出到 stderr(含各服务请求 URL、HTTP 状态;不含完整 Authorization),便于发给支持同学排查;请勿在公开渠道粘贴可能含业务关键词或响应正文的完整输出。首次 init 拉缓存时也可加 --verbose。
仍为空时,多半是账号未订阅该能力或网关返回异常,请对照控制台订阅与网络。
在线技术文档:tools 输出里会附带各服务在 北大法宝 MCP 平台 的文档链接。也可随时执行(无需先 init):
pkulaw-mcp docs # 列出全部服务的文档 URL
pkulaw-mcp docs law-semantic # 仅打印该服务的 URL(便于复制)
pkulaw-mcp docs law-semantic --open # 在系统默认浏览器中打开第五步:真正「测一次」调用工具
语法:
pkulaw-mcp <服务ID> <工具名> [可选:位置参数] [--参数名 值 ...] [--markdown|--md|-m] [--json]示例 A:法律法规语义检索(自然语言)— law-semantic
服务 law-semantic(检索法律法规-语义)里,通常包含工具 search_article:用自然语言描述问题,按语义检索相关法条,不必先知道具体法规名或条号。
- 先确认本机工具名与参数(参数名以本机缓存为准,线网未必与旧文档一致):
pkulaw-mcp tools law-semantic
pkulaw-mcp law-semantic search_article --help- 发起一次自然语言检索。推荐优先用「位置参数」:第一个字符串会映射到该工具的第一个必填字段(见下文 调用工具(进阶说明)),不依赖具体字段是否叫
query,复制即用:
pkulaw-mcp law-semantic search_article "租房合同纠纷应该适用哪些法律条款?"- 默认即为格式化 JSON;脚本里可显式加
--json(与默认相同)。需要终端易读排版时加--markdown、--md或-m(三者同效):
pkulaw-mcp law-semantic search_article "交通事故后对方全责,保险公司迟迟不赔付怎么办?" --md- 何时写
--某字段? 长选项名 = 网关 schema 里属性名(例如属性是title才有--title)。若出现unknown option '--query'之类提示,说明线网已不用该字段名,请--help查看真实选项,或继续用位置参数传「主检索串」。多必填参数时再用多个--字段 值。
示例 B:法规关键词检索 — law-keyword
工具名以你本机 tools law-keyword 为准(常见为 get_law_list)。多条件时按 --help 写全字段;单行示例见下文 各服务调用示例。
不知道有哪些子命令时,可以逐级查看帮助:
pkulaw-mcp --help
pkulaw-mcp law-semantic --help
pkulaw-mcp law-semantic search_article --help默认输出为格式化 JSON;需要终端易读排版时加 --markdown / --md / -m(同效);--json 与默认相同(便于脚本显式指定)。
各服务调用示例
下列命令为常见线网下的推荐写法,便于客户复制试用。工具名、参数名以本机为准:发版或订阅差异可能导致与下表不一致,请务必先执行 pkulaw-mcp tools <serverId> 与 pkulaw-mcp <serverId> <工具名> --help 核对后再用。
约定:主文本请使用 --字段 "值" 或位置参数;不要在 --text 等后面写裸 *(tools 里「(必填)」不是命令占位符)。若误写成 --text * "正文",当前 CLI 会尽量用位置参数覆盖,仍建议改正。默认输出为 JSON;终端阅读可加 --md;脚本可显式加 --json(与默认相同)。
以下示例以 bash 为主(外层双引号、内层单引号较直观)。大块 JSON 仍支持;更推荐 --<kebab>-file 或 --<字段>=@路径(由 CLI 按 UTF-8 读文件,类 curl @filename)。--<字段> 与对应的 --…-file 不能同用。PowerShell 同样支持 @ 路径、--…-file 与内联 JSON,但 @ 与引号转义规则更严格:(1)不要写裸 --param @.\x.json,否则 @ 触发 splat;请 --param=@…、--param '@…' 或 --param-file。(2)内联 JSON 可行,但写法要求更高;若希望跨 shell 最稳、最易复制,优先 --…-file,其次 --字段=@路径。
1. 检索法律法规-关键词(law-keyword)
常见工具 get_law_list:标题与全文关键词组合检索。
pkulaw-mcp law-keyword get_law_list --title '刑法' --fulltext '盗窃罪'2. 检索法律法规-语义(law-semantic)
见上文 第五步中的 「示例 A:法律法规语义检索」(pkulaw-mcp law-semantic search_article …)。
3. 检索司法案例-关键词(case-keyword)
常见工具 get_case_list:--fulltext 中多个关键词用空格分隔。
pkulaw-mcp case-keyword get_case_list --title '纠纷案' --fulltext '合同纠纷 房租纠纷'4. 检索司法案例-语义(case-semantic)
工具名以 tools case-semantic 为准(线网常见为语义类工具,如 search_case)。主输入用 --text 接一整段话(勿写裸 *):
pkulaw-mcp case-semantic search_case --text '房屋租赁合同到期后,房东拒绝退还押金'5. 法条识别与溯源(law-recognition)
常见工具 law_recognition:
pkulaw-mcp law-recognition law_recognition --text "根据《中华人民共和国民法典》第一千二百六十条规定,该法自2021年1月1日起施行,同时废止了《中华人民共和国婚姻法》、《中华人民共和国继承法》。"6. 案号识别与溯源(case-number)
工具名以 tools case-number 为准(示例为 anhao_recognition)。案号文本同样不要写 --text *,应直接传内容:
pkulaw-mcp case-number anhao_recognition --text '(2021)最高法民申4246号'7. 精准查找法条-关键词(fatiao)
常见工具 get_law_item_content:法规名与条号等 均为必填 时请写全(示例中 --title 与 --tiao_num 缺一不可,具体以 --help 为准)。
pkulaw-mcp fatiao get_law_item_content --title '刑法' --tiao_num 38. 法宝超链(doc-link)
常见工具 get_linked_content:对长段说理文字做法条超链解析。
pkulaw-mcp doc-link get_linked_content --message '根据《中华人民共和国长江保护法》第九十三条和《中华人民共和国民法典》第一千一百六十八条、第一千二百三十五条的规定,张某山等人应在各自参与非法采砂数量范围内承担连带赔偿长江生态环境损害的民事责任。本案的焦点问题有二:一是关于案件的管辖问题;二是关于生态环境修复费用的使用问题。'9. 法宝语义检索 NL-SQL(semantic-nlsql)
需已在控制台配置实例路径并执行 config set serverPaths.semantic-nlsql 与 update(见 法宝语义检索(NL-SQL))。工具名以 tools semantic-nlsql 为准(示例 ai_pkulaw_search)。
pkulaw-mcp semantic-nlsql ai_pkulaw_search --user_question '查询国务院发布的关于公司的法规有哪些?'默认已是 JSON;流水线中可显式写上 --json 以便阅读脚本意图:
pkulaw-mcp semantic-nlsql ai_pkulaw_search --user_question '查询国务院发布的关于公司的法规有哪些?' --json10. 修正生成幻觉-法条(citation-validator)
常见工具 adjust_provisions:线网 param 为 object 时,可用 --param-file、@ 路径、内联 JSON(对象结构以 --help / 线网为准)。
(最推荐)--param-file:Node 直接读 UTF-8,PowerShell / bash 通用,无 @ 与引号陷阱。examples/ 目录会随 npm 包一并发布,也可换成你自己的 ./param.json。
pkulaw-mcp citation-validator adjust_provisions --param-file ./examples/citation-validator-adjust-provisions.param.jsonpkulaw-mcp citation-validator adjust_provisions --param-file .\examples\citation-validator-adjust-provisions.param.json@ 路径(与 curl @file 同款:值以 @ 开头则 CLI 按 UTF-8 读文件再 JSON.parse):
pkulaw-mcp citation-validator adjust_provisions --param @./examples/citation-validator-adjust-provisions.param.jsonPowerShell 下 @ 不能紧跟在空格后面(否则是 splat 语法),任选其一:
pkulaw-mcp citation-validator adjust_provisions --param=@.\examples\citation-validator-adjust-provisions.param.json
pkulaw-mcp citation-validator adjust_provisions --param '@.\examples\citation-validator-adjust-provisions.param.json'内联 JSON(bash / Git Bash / CMD):外层单引号(bash)或 CMD 的 --param="{\"key\":1}" 一类写法,类 curl -d '{"a":1}':
pkulaw-mcp citation-validator adjust_provisions --param '{"userlaw":[{"title":"中华人民共和国民法典","article_number":"第二条"}],"answerlaw":[{"title":"中华人民共和国民法典","article_number":"第二条","text":"民法调整平等主体的自然人、法人和非法人组织之间的人身关系和财产关系。"}],"prompt":"民法典第二条的规定是什么?"}'PowerShell 内联 JSON:可以直接传,但写法要对。下面这条在 PowerShell 5.1 下可直接调用成功:
pkulaw-mcp citation-validator adjust_provisions --param '{\"userlaw\":[{\"title\":\"中华人民共和国民法典\",\"article_number\":\"第二条\"}],\"answerlaw\":[{\"title\":\"中华人民共和国民法典\",\"article_number\":\"第二条\",\"text\":\"民法调整平等主体的自然人、法人和非法人组织之间的人身关系和财产关系。\"}],\"prompt\":\"民法典第二条的规定是什么?\"}'若当前终端、PowerShell 版本或转义方式下内联 JSON 失败,再改用 --param-file、@ 路径,或 b64:。其中 b64: 适合仍想在一条命令里内联内容、但不想继续和引号转义较劲的场景:
cd D:\cursor-workspace\pkulaw-mcp-cli # 按你本机路径改
$utf8 = [Text.Encoding]::UTF8
$b64 = [Convert]::ToBase64String($utf8.GetBytes((Get-Content -Raw -Encoding utf8 .\examples\citation-validator-adjust-provisions.param.json)))
node .\dist\cli.js citation-validator adjust_provisions --param "b64:$b64"单一 Base64 行过长时,可能接近 Windows 命令行长度上限(约 8191 字符);更长 payload 请用
--param-file。
常见问题(新手先看这里)
| 现象 | 怎么办 |
|------|--------|
| 提示 找不到 pkulaw-mcp 命令 | 若未全局安装或未 npm link,请在 pkulaw-mcp-cli 目录下使用 npx pkulaw-mcp ...,或执行 npm install -g @pkulaw/mcp-cli / npm link。 |
| 401 / 403 | 检查 Token 是否过期、应用是否订阅了对应 MCP 服务;确认 Authorization 为 Bearer + 空格 + Token,不要多空格、不要漏写 Bearer。若 Token 来自环境变量,确认当前终端已设置 PKULAW_MCP_AUTHORIZATION。 |
| Request failed with status code 4xx(如 400、404) | 网关已收到请求但拒绝(常见:订阅不含该路由、serverPaths 与控制台不一致、请求体不符合校验)。请核对控制台与 pkulaw-mcp check;新版 CLI 会将 HTTP 4xx(除 401/403)统一为可读错误并尽量附带响应摘要。 |
| tools 里某服务工具数为 0 | 先执行 pkulaw-mcp update;若出现 「上次拉取失败」(如认证失败),请核对 Token、订阅与网关路径。仍为空且无端侧错误时,再检查订阅与网络。 |
| 想查某能力的详细说明 | 使用 pkulaw-mcp docs / pkulaw-mcp docs <serverId>(链接来自内置清单中的 docUrl)。 |
| 没有 <服务ID> 这类子命令 | 该服务在缓存里没有工具记录,先 update,并确认该能力已开通。 |
| 法宝语义检索(NL-SQL) 不可用 | 需在控制台查看分配给实例的 URL 路径,用 config set serverPaths.semantic-nlsql 配置后再 update,见下文 法宝语义检索(NL-SQL)。 |
| unknown option '--xxx' | 线网工具入参字段名与示例不一致。请执行 pkulaw-mcp <serverId> <toolName> --help 或 tools <serverId> 查看真实长选项;单主串时优先用位置参数,避免猜错 --query 等名字。 |
| --text * "……" 与 --text "……" 行为不一致 | * 会被当成 --text 的真实取值(不是 shell 通配),后面引号串落在位置参数上,旧版会仍把 * 发给网关。请写成 --text "……" 或 "……" 作位置参数;CLI 已对「--<主字段> * + 非空位置参数」做兼容,仍不建议依赖裸 *(在类 Bash 里未加引号时 * 还可能被展开成文件名)。 |
| 提示 --…-file 与 --… 不能同时指定 | 同一字段只能二选一:要么 --param-file path(或任意字段的 --<kebab>-file),要么 --param '…' / --param=@./x.json 等。 |
| PowerShell:--param @.\x.json 报「无法识别的标记」 | @ 被当成 splat。请改用 --param=@.\x.json、--param '@.\x.json',或 --param-file。 |
| PowerShell:某种内联 JSON 写法仍报 JSON 解析失败 | PowerShell 调原生可执行程序时,不同版本、终端与转义方式对引号处理并不完全一致。若某种内联写法失败,请优先改用 --param-file、--param=@…、README 中给出的 PowerShell 可用内联示例,或 --param b64:<Base64>(见 §10)。 |
目录
阅读指引:使用/集成 CLI 可优先看 第一次使用、各服务调用示例、安装与升级、常见问题、配置说明。参与贡献、从源码构建、发版与 CI 见 贡献、本地开发 及 CONTRIBUTING.md。
- 简介
- 项目结构与依赖
- 特性
- 与 REST 版 CLI 的区别
- 环境要求
- 安装与升级
- 各服务调用示例
- 内置 MCP 服务(serverId)
- 命令一览
- 调用工具(进阶说明)
- 配置说明
- 法宝语义检索(NL-SQL)
- 本地开发
- 安全
- 贡献
- 许可证
- 相关链接
简介
本工具是干什么的(一句话):在终端里用 pkulaw-mcp 命令,对你已在 北大法宝 MCP 平台 开通并授权的能力,直连法宝网关执行 tools/list(发现工具) 与 tools/call(调用工具),得到 JSON(默认)或可选 Markdown,方便 脚本、CI、Agent 编排。
明确不做什么:不包含本地大模型或「自动法律推理」;不提供 Token 与订阅本身——你必须自行具备 Access Token、对应 MCP 商品订阅 以及能访问网关的 网络。
本仓库 开源(MIT):欢迎 Issue / PR;安全披露见 SECURITY.md。版本发布、CI、协作与代码结构见 CONTRIBUTING.md。
本工具在实现上是 MCP 客户端 的命令行形态:对每个已配置的 MCP 服务通过 HTTPS 调用:
tools/list:获取工具清单及参数定义(inputSchema)tools/call:按名称和参数执行某个工具
响应可能是 JSON 或 SSE(text/event-stream),工具内已做常见解析。
配置文件位置(请勿把含 Token 的文件提交到公开仓库):
| 文件 | 作用 |
|------|------|
| ~/.pkulaw/mcp/config.json | 网关地址、鉴权、超时、各服务路径覆盖等 |
| ~/.pkulaw/mcp/cache/tools.json | 各 MCP 的 tools/list 缓存(由 init/update 写入) |
内置服务清单:随 npm 包发布在包内的 dist/config/servers.json(含各服务 docUrl,指向 mcp.pkulaw.com 在线技术文档),一般无需手动编辑;若参与改清单再发版,见 CONTRIBUTING.md。
项目结构与依赖
说明:本节面向从源码阅读或二开的读者;若仅通过 npm 安装使用 CLI,可跳过本节与 本地开发。
pkulaw-mcp-cli/
├── src/
│ ├── cli.ts
│ ├── cliSetup.ts
│ ├── config/servers.json # 内置 MCP 服务清单(构建时复制到 dist)
│ ├── commands/
│ ├── services/
│ └── utils/
├── dist/ # npm run build 生成
├── scripts/copy-assets.mjs # 构建时复制 servers.json 到 dist
└── package.json| 依赖 | 用途 | |------|------| | commander | 子命令与参数解析 | | axios | HTTPS 请求 | | chalk | 终端着色 |
特性
| 能力 | 说明 |
|------|------|
| 多 MCP 服务 | 法规、案例、案号、法条、超链、引注校验等,路径与线网网关一致 |
| 工具发现 | tools / update,缓存 tools/list |
| 参数校验 | 按线网返回的 inputSchema 做必填与白名单校验 |
| 输出 | 默认 JSON;--markdown / --md / -m 为 Markdown 排版;--json 与默认相同 |
| 配置检查 | check 检查文件与必填项 |
| 在线文档 | 内置 docUrl;docs 子命令打印链接,可选 --open 在浏览器中打开 |
与 REST 版 CLI 的区别
说明:仅作选型参考(法宝另有 REST 版 CLI);若你只使用本 MCP CLI,可略读本节。
| npm 包 | 适用场景 |
|--------|----------|
| @pkulaw/mcp-cli(本包) | 线网以 MCP 为主,需 tools/list / tools/call |
| @pkulaw/agent-tools-cli | 以 REST + registry.json 为主 |
全局命令:pkulaw-mcp。请勿与其它包的 bin 名称混用,以免搞错文档。
环境要求
| 依赖 | 版本 | |------|------| | Node.js | >= 18 | | npm | 建议 >= 9 |
若 Node 低于 18,运行任意 pkulaw-mcp 子命令时会在启动阶段提示版本不足并退出(无需等到连网关);pkulaw-mcp check 也会先显示 Node 是否达标。
另需在 mcp.pkulaw.com 获取可用的 Access Token。
安装与升级
与上文 第一次使用 中 「第一步:安装本工具」 一致,便于单独查阅。
全局安装或升级:
npm install -g @pkulaw/mcp-cli
npm update -g @pkulaw/mcp-cli验证:
pkulaw-mcp -v # 与 -V、--version 相同
pkulaw-mcp --help内置 MCP 服务(serverId)
与包内清单一致;具体工具名称与个数以你执行 tools 时线网返回为准。可复制命令见 各服务调用示例。
| serverId | 说明 |
|----------|------|
| law-keyword | 检索法律法规-关键词 |
| law-semantic | 检索法律法规-语义 |
| case-keyword | 检索司法案例-关键词 |
| case-semantic | 检索司法案例-语义 |
| case-number | 案号识别与溯源 |
| law-recognition | 法条识别与溯源 |
| fatiao | 精准查找法条-关键词 |
| doc-link | 法宝超链 |
| citation-validator | 修正生成幻觉-法条 |
| semantic-nlsql | 法宝语义检索(NL-SQL) |
按内置服务核对调用(避免抄错工具名或 --参数)
所有动态工具(上表每个 serverId)都遵守同一流程,不要凭记忆猜 --query / --title 等名字:
pkulaw-mcp update(或至少已init拉过缓存)pkulaw-mcp tools <serverId>→ 记下真实工具名与--某字段列表pkulaw-mcp <serverId> <工具名> --help→ 确认必填项与长选项拼写
推荐写法:若该工具只有一个主要文本入参,且 --help / tools 里位置参数所映射的主字段(见 调用工具(进阶说明))正是这段文字,可用位置参数(少打字、不依赖字段名是否叫 query):
pkulaw-mcp <serverId> <工具名> "主检索或主输入文本"若有多个必填或位置参数校验失败,改用 --help 中列出的 --字段名 值 逐项传入。若 schema 没有必填、全是可选,位置参数会落到「第一个属性」,易不符合预期,此时不要用位置参数,只写命名参数。
下表仅列出文档/线网常见工具名(方便你 tools 时对照),不等于你账号当前一定存在;以 tools 输出为准。
| serverId | 常见工具名(须 tools 核验) | 说明 |
|----------|-------------------------------------|------|
| law-keyword | get_law_list 等 | 关键词列表类;单条件时可试位置参数,失败则按 --help 写全必填。 |
| law-semantic | search_article、get_article 等 | 语义/法条类;勿使用文档里的 --query,以 --help 为准;单主串推荐位置参数。 |
| case-keyword | get_case_list 等 | 同 law-keyword,先 --help 再写命令。 |
| case-semantic | 语义检索类工具名因网关而异 | 只用 tools / --help,勿照搬他服务参数名。 |
| case-number | 案号识别类 | 多为结构化入参,优先命名参数。 |
| law-recognition | 法条识别类 | 同上。 |
| fatiao | get_law_item_content 等 | 法条精确查,常多字段,按 --help 传参。 |
| doc-link | 超链类工具 | 常为文本/选项组合,按 --help。 |
| citation-validator | 引注校验类 | 按 --help。 |
| semantic-nlsql | NL-SQL 类 | 常需先配置 serverPaths.semantic-nlsql 再 update,工具名以 tools semantic-nlsql 为准。 |
命令一览
| 命令 | 作用 |
|------|------|
| pkulaw-mcp init | 写入配置并拉取工具列表缓存 |
| pkulaw-mcp check | 检查配置是否存在、JSON 是否合法、必填项是否齐全(别名 doctor) |
| pkulaw-mcp update | 重新从各服务拉取 tools/list 并更新缓存(别名 refresh) |
| pkulaw-mcp tools [serverId] | 列出全部服务,或某一服务下的工具(兼容别名 list-tools / ls);有 docUrl 时会一并显示文档链接 |
| pkulaw-mcp docs [serverId] | 打印各 MCP 在线技术文档 URL(不依赖 init);加 --open 且指定 serverId 时尝试用系统浏览器打开 |
| pkulaw-mcp config list | 打印当前配置 JSON |
| pkulaw-mcp config get <key> | 读取单项配置 |
| pkulaw-mcp config set <key> <value> | 写入配置,见 配置说明 |
| pkulaw-mcp config set-path <serverId> <path> | 更友好的 serverPaths.<serverId> 设置助手 |
调用工具(进阶说明)
在 update 成功且该服务缓存中有工具 的前提下,会注册形如:
pkulaw-mcp <serverId> <toolName> [positional] [--参数名 值 ...] [--markdown|--md|-m] [--json]- 工具名、参数名必须与
pkulaw-mcp tools <serverId>输出一致。 - 输出格式:默认
JSON.stringify缩进输出;加--markdown/--md/-m时尽量转为 Markdown;--json与默认相同(兼容旧脚本)。 - 位置参数(规则由 CLI 与线网
inputSchema决定):schema 含searchKey时映射到searchKey;否则映射到required第一个字段;若无必填则映射到 properties 的第一个键(易与直觉不符)。因此:调用前看一眼--help;多必填或校验失败时,只用--字段 值最稳。二开需改映射逻辑时见 CONTRIBUTING.md。 - 不要写
--主字段 * "正文":会把*当作选项值;推荐--主字段 "正文"或pkulaw-mcp <serverId> <tool> "正文"。若已习惯前者写法,当前 CLI 会在主字段恰为单个*且存在非空位置参数时,改用位置参数作为正文(兼容误用;若真要识别字面量*,请写成--text '*'且不要跟位置参数)。
配置说明
| 键 | 含义 |
|----|------|
| gatewayBaseUrl | 网关根地址,不要末尾多写 / |
| authorization | 完整 Authorization 头内容,一般为 Bearer + 一个空格 + Token |
| timeoutMs | 可选,HTTP 超时(毫秒),默认 60000 |
| serverPaths.<serverId> | 覆盖该服务在网关下的路径,以 / 开头,通常以 /mcp 结尾(与 Dify 等文档中的服务端点一致) |
示例:
pkulaw-mcp config list
pkulaw-mcp config get gatewayBaseUrl
pkulaw-mcp config set authorization "Bearer <Token>"
pkulaw-mcp config set serverPaths.semantic-nlsql "/你的实例路径/mcp"若只是设置服务路径,也可使用更直观的助手命令:
pkulaw-mcp config set-path semantic-nlsql "/你的实例路径/mcp"法宝语义检索(NL-SQL)
该能力在控制台按订阅实例分配 MCP 路径。安装包内置清单中有默认 invokePath;若你控制台实例的 URL 与默认不一致(或需按实例单独接入),请用 serverPaths.semantic-nlsql 覆盖为控制台中的路径:
pkulaw-mcp config set-path semantic-nlsql "/<从控制台复制的路径>/mcp"
pkulaw-mcp update
pkulaw-mcp tools semantic-nlsql然后再按 tools 里出现的工具名调用。
本地开发
从源码安装依赖、构建、协作流程与质量门禁等,均写在 CONTRIBUTING.md(含 CI、发版说明)。
npm install
npm run build
npx pkulaw-mcp --help安全
- 切勿将含 Token 的
config.json提交到 Git 或发到公开论坛。 - 日常本机推荐使用
pkulaw-mcp init --authorization "Bearer …"(或config set authorization …)将 Token 写入~/.pkulaw/mcp/config.json,关终端再开仍可用;请注意该文件权限与备份策略。 - 使用
--authorization时,整行命令可能进入 shell 历史;在共享屏幕或公共环境可改用PKULAW_MCP_AUTHORIZATION环境变量(运行时优先于配置文件,适合 CI)。 - 安全漏洞报告见 SECURITY.md。
贡献
欢迎 Issue / PR。提交规范、从源码构建、发版与 CI 等,请阅读并遵循 CONTRIBUTING.md。
许可证
相关链接
- Model Context Protocol 规范
- 北大法宝 MCP 服务平台
- 源码与问题跟踪见
package.json中的repository/bugs字段
网关路径、工具名与产品能力以现网及官方技术文档为准;本文档随版本更新。
