KanbanNiang:DSH 下的 Live2D 看板娘与 MCP 工具链

前言

在 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。

安装后验证

  1. 重启 DSH,新建会话,工具列表应出现 mcp__kanbanniang__get_status、mcp__kanbanniang__speak、mcp__kanbanniang__play_motion 等。
  2. 对模型说类似「让看板娘挥挥手,并说欢迎回来」,应看到动作与气泡。
  3. 宿主插件日志:<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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜