前言¶
在 DSH 里做 Agent 会话时,工具多半落在文件、终端和 HTTP 上,桌面侧缺少一个可被模型直接「看见反馈」的载体。若你希望 Agent 能驱动桌面角色做动作、换表情、说话并移动窗口,又希望同一套 MCP 端点也能接到 Claude Desktop 等客户端,KanbanNiang(看板娘)把 Tauri 2 桌面应用、Live2D 渲染和内置 MCP 服务打包成一层 DSH 插件:安装并重启 DSH 后,宿主会按需拉起看板娘进程,并把 11 个工具注入为 mcp__kanbanniang__*。
下面介绍它是什么、能做什么,以及如何在本机以 DSH 插件方式安装与验证。
这是什么¶
KanbanNiang 由维护者 Evil-Wideplain 发布,在 SkillHub 社区目录中归类为客户端插件;仓库为 Evil-Wideplain/kanbanniang,许可证 MIT,当前 package 版本为 0.1.0。
一句话定位:Tauri 2 + Live2D 桌面看板娘,内置 MCP 服务(Streamable HTTP,11 个工具);同时是 DSH 插件包——DSH 启动时可通过宿主插件自动拉起应用,并把工具注册到会话。任意支持 Streamable HTTP 的 MCP 客户端(含 DSH 内置 MCP 客户端、Claude Desktop、MCP Inspector)均可连同一端点 http://127.0.0.1:7432/mcp(端口可在看板娘设置页修改,插件从 settings.json 的 mcpEnabled / mcpPort 读取,默认 7432)。
核心功能¶
MCP 与 Agent 工具¶
| 能力 | 说明 |
|---|---|
| 单端点传输 | POST http://127.0.0.1:7432/mcp,Streamable HTTP;GET /health 供探活 |
| DSH 注入名 | 工具在会话中表现为 mcp__kanbanniang__<tool> |
| 11 个工具 | 动作序列、表情、说话、窗口移动、窗口内站位、待机、列举动作、列举表情、状态、换模型、列举模型 |
协议侧:initialize 的 protocolVersion 按客户端请求回显,支持 2025-06-18 / 2025-03-26 / 2024-11-05;旧版 HTTP+SSE 的 /mcp/sse 已下线。
桌面看板娘本身¶
- 窗口:透明、无边框、置顶、不占任务栏;主窗口 640×800,角色按 360×480 渲染。
- 鼠标穿透:仅角色像素接收鼠标,空白区域事件落到下层窗口。
- 模型:需自备 Cubism 3–5.3 的 Live2D 模型(
.model3.json);可构建期放入models/<模型名>/,或运行后把.zip/ 模型文件夹拖到角色身上热切换;set_model失败会回滚。 - Cubism 运行时:仓库已内置
live2dcubismcore.min.js(6.0.1),无需单独下载 Core。
DSH 插件链路(概要)¶
DSH 启动 → 宿主插件(cordis.patch.yml 插入)解析 MCP 端点、探测 /health、未运行则拉起 target/release/kanbanniang.exe → @deepseek-ai/dsh-mcp-client 以 streamable-http 连接同一端点并注入工具。插件以 link: 方式注册,运行时直接执行仓库内构建产物,不复制 exe;因此安装流程会先构建 Tauri 应用(不可用 cargo build --release 代替完整 tauri build,否则 DSH 拉起易出现白屏与查询超时)。
市场安装:README 明确写明当前不能从 DSH 插件市场一键安装(git 包缺编译产物与 exe、无 npm 发布等),请使用下文本地安装。
安装与启用¶
前置¶
| 依赖 | 说明 |
|---|---|
| DSH 桌面端 0.2.x | 需至少启动过一次,完成 desktop profile 初始化 |
| Node.js ≥ 18 | 前端构建与 Tauri CLI |
| Rust stable | 见 Tauri 前置 |
| Windows | WebView2 一般已预装;VS Build Tools 需「使用 C++ 的桌面开发」 |
将本仓库放到本机某绝对路径后,在该目录执行下列命令(与 README「作为 DSH 插件安装」一致):
npm install
npm run plugin:install
若已有 target/release 产物、希望跳过构建:
npm run plugin:install -- --no-build
脚本会通过桌面端自带的 dsh.cmd(resources/runtime/cli/bin/dsh.cmd)执行 plugin --profile desktop add link:<仓库绝对路径>;PATH 上的 npm dsh 不能操作 desktop profile。找不到桌面 CLI 时会退化为改 profile 清单并提示需手工执行的 pnpm 命令。
图形界面等价操作:DSH 侧栏「插件」→「安装第三方插件」→ 填写仓库绝对路径 → 安装并启用。
安装或卸载后需完全退出并重启 DSH 才生效。
卸载¶
npm run plugin:uninstall
看板娘应用与仓库文件不会被删除,仍可直接运行 target/release/kanbanniang.exe。
安装后验证¶
- 重启 DSH,新建会话,工具列表应出现
mcp__kanbanniang__get_status、mcp__kanbanniang__speak、mcp__kanbanniang__play_motion等。 - 对模型说类似「让看板娘挥挥手,并说欢迎回来」,应看到动作与气泡。
- 宿主插件日志:
<DSH_HOME>/kanbanniang/plugin.log(Windows 默认%USERPROFILE%\.dsh)。
仅开发、不装 DSH 插件时,可在仓库内 npm run tauri:dev 启动窗口,另开终端跑冒烟脚本:
node cmd/client/test-streamable.mjs
脚本顺序覆盖 /health、initialize、tools/list(不少于 11 个工具)、get_status、speak、play_motion 等。
典型用法¶
在 DSH 会话里¶
安装插件并重启后无需手工配 MCP。在对话中通过已注入的 mcp__kanbanniang__* 工具即可驱动角色;查询类工具(如 get_status、play_motion)由前端经 Tauri 事件回传,Rust 侧 oneshot 等待约 5s;speak 等部分工具发射后即返回。
在其他 MCP 客户端¶
先启动看板娘应用(或由 DSH 宿主拉起),在客户端配置 Streamable HTTP URL。Claude Desktop 示例:
{
"mcpServers": {
"kanbanniang": {
"url": "http://127.0.0.1:7432/mcp"
}
}
}
修改端口后,URL 需与看板娘设置页一致。
可选配置(一般保持默认)¶
| 位置 | 字段 | 说明 |
|---|---|---|
| 看板娘设置页 | MCP 开关 / 端口 | 写入 settings.json,插件读取 |
cordis.patch.yml 宿主行 |
autoLaunch |
是否由插件拉起应用,默认 true |
| 同上 | mcpUrl |
强制固定端点,覆盖设置文件 |
| 同上 | repoRoot / launchCommand |
仓库路径或自定义启动命令 |
cordis.patch.yml MCP 行 |
toolCallTimeoutMs |
单次工具调用超时,默认 15000ms |
| 同上 | reconnect.maxAttempts |
重连耗尽后工具注销,需重载配置 |
适用场景与注意¶
适合谁:希望在 DSH 或任意 MCP 客户端里,用结构化工具控制桌面 Live2D 角色(演示、陪伴式 UI、Agent 与桌面反馈联动)的开发者;能接受本机构建 Rust/Tauri 与自备 Live2D 模型。
务必注意:
- 插件与看板娘进程以当前用户权限运行;安装前请阅读源码与 MIT 许可证,确认信任维护者与仓库内容。
- 当前不支持从 DSH 插件市场直接安装,必须本地
link:路径安装并完成tauri build。 - 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录是独立社区站点。
结尾¶
KanbanNiang 把桌面 Live2D 看板娘和 MCP 工具合成一条链路:DSH 侧自动拉起与 mcp__kanbanniang__* 注入,站外客户端连同一 Streamable HTTP 端点即可复用。更多架构细节与市场上架阻塞说明见仓库 README 与 docs/market-distribution.md。