它是什么
给 DSH(运行在 .223 上的 agent 程序,Web UI 在 127.0.0.1:19387)增加一个联网搜索工具 mcp__bocha__search。agent 可以直接调用博查搜索 API,得到中文长摘要,单次耗时 0.3–0.5s。
为什么这么做
最初想直接写一个 DSH 原生 search provider 插件来替换内置的 SearXNG,写完才发现走不通:DSH 的模块解析表在启动时就固定了,运行中安装的 host 插件 import 不到 @deepseek-ai/* 依赖,必须重启整个进程才生效,而这会中断当前对话、旧 GUI token 也失效。
所以改走 MCP 配置型 bundle:只往配置里 insert 一条 DSH 自带的 @deepseek-ai/dsh-mcp-client,再配一个独立的 Node stdio MCP server 调博查,安装即热生效,不用重启。原生 provider 代码留在 /root/plugins-src/dsh-bocha,将来重启 DSH 想切回原生 web_search 随时可以。
目前状态
运行中。MCP 协议单测(initialize + tools/list + tools/call)505ms 通过,实测问天气、查财报都能出结果。默认策略省钱优先:DSH 日常 web_search 仍走免费 SearXNG,博查只在要更准结果时手动调;余额已接进监控台,低于阈值手机提醒。
功能
- 零依赖 Node 写的 stdio MCP server,单文件 server.mjs 走 JSON-RPC
- 以 MCP 配置型 bundle 方式安装,不重启 DSH 即可热生效
- 工具参数支持 query、count(1–10,默认 8)、freshness(noLimit/oneDay/oneWeek/oneMonth/oneYear)
- API Key 存放在 /root/.dsh/secrets/bocha.key(600 权限),配置里只写路径
- 保留原生 search provider 代码,将来重启后可切回 web_search
- 博查余额接入监控台,每 15 分钟采样,低于 ¥5 / ¥2 手机提醒
技术栈
使用 / 部署教程
部署步骤
1. 准备 API Key 把博查 Key 写入 /root/.dsh/secrets/bocha.key,chmod 600。配置文件里只引用路径,不写明文 Key。
2. 放 MCP server 在 /root/plugins-src/bocha-mcp/server.mjs 写一个零依赖的 Node stdio MCP server,实现 initialize、tools/list、tools/call 三个方法,tools/call 里请求博查搜索 API 并返回结果。
3. 写 bundle 定义 同目录下放 package.json、cordis.patch.yml、locale、icon。cordis.patch.yml 里 insert 一条 @deepseek-ai/dsh-mcp-client(DSH 自带包,可原生解析),指向上面这个 stdio server。这是能热生效的关键:不新增需要 @deepseek-ai/* 解析的 host 插件。
4. 安装到 profile 在 profile /root/.dsh/profiles/web 里把它装成 @local/bocha-mcp,实际指向 link:/root/plugins-src/bocha-mcp。用 plugin_manager 安装,确认结果是 application: applied 且无 warning。
5. 验证
Tool.listTools能看到mcp__bocha__search,系统提示里出现MCP server: bocha。- 跑一遍协议单测:
initialize+tools/list+tools/call。 - 实际问一句“上海今天天气”看返回。
6. 日常使用 agent 直接调 mcp__bocha__search,参数 query、count、freshness。默认只在对准确性有要求时手动用,平时搜索仍走免费的 SearXNG。
维护
- 改完
server.mjs:在plugin_manager里禁用再启用@local/bocha-mcp(或重启 DSH),否则改动不生效。 - 查余额:
curl -H "Authorization: Bearer <key>" https://api.bochaai.com/v1/fund/remaining。 - 备份:
/opt/homelab-git/sync.sh的 .223 清单已包含/root/plugins-src,每日 01:00 自动同步。
注意
- Key 只存本机 secrets 目录,不进 homelab-git 备份;备份清单里只加了 /root/plugins-src。
- 博查按次计费,一次联网提问约 2 次调用 ≈ ¥0.07,注意余额,低于阈值有 ntfy 提醒。
- 改 server.mjs 后必须禁用/启用 bundle 让 MCP server 重启,否则跑的还是旧代码。