0N3-0/dsh-tui-mcp-manager

dsh-tui-mcp-manager

面向 dsh-TUI 的原生 MCP Server 管理插件:通过 /mcp-manager 浮窗完成 MCP CRUD、启停、Sets、复制、Inspector、Tool schema、Doctor Lite 和凭据引用管理,并将配 置原子写入当前 profile,支持 Cordis HMR 热重载。

미분류deepseek-harnessdsh-tuimcp

dsh-tui-mcp-manager

English | 中文

在 dsh-TUI 中集中管理 MCP 服务器、Set、工具与运行状态。 无需离开终端,输入 /mcp-manager 即可打开全屏界面。

安装

需要 Node.js ^22.19 || >=24、dsh 0.2.1-rc.2 和 dsh-TUI >=0.16.1 <0.17.0。

npm install -g @deepseek-harness-tui/dsh-tui@0.16.1
dsh plugin --profile dsh-tui add dsh-tui-mcp-manager
dsh-tui

进入 TUI 后运行 /mcp-manager。界面语言跟随 dsh-TUI,可用 /lang zh 或 /lang en 切换。

dsh-TUI 0.16.1 通过 Loader 接纳本插件,/mcp-manager 通过宿主托管注册,遵循插件归属与 commands.invoke 授权;接纳失败时不注册命令。界面语言支持新版 ~/.dsh-tui/settings.json。

请通过 dsh-tui(或 dst)启动,默认使用 dsh-tui profile,无需传 --profile。已验证 dsh 0.2.1-rc.2 + TUI 0.16.1 的正式启动器组合顺序、命令调用和卸载。旧的 dsh --profile dsh-tui 入口在 TUI 0.16.1 中可能因宿主接纳顺序导致命令未注册;本插件不会绕过接纳或授权检查。

dsh 升级命令:npm install -g @deepseek-ai/dsh@0.2.1-rc.2。TUI 0.16.1 已声明兼容该版本,可直接安装:

dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui@0.16.1

预览

MCP 服务器概览

更多界面截图

Set 管理 · 工具与 Schema · 创建 Set · 创建服务器

核心能力

区域能力
服务器池创建、复制、编辑、停止、重连和全局删除服务器
MCP Sets编排成员、独立启停、设置启动时状态,并对跨 Set 成员自动去重
工具浏览工具说明与输入 Schema,按名称或说明搜索
诊断打开页面即自动检查配置、连接、运行时和工具注册
凭据通过 DSH credentials 引用敏感环境变量与请求头

服务器编辑器支持 dsh 0.2 的 maxInstructionBytes,用于限制服务器说明进入系统提示词时的 UTF-8 字节数,默认 32768。MCP 资源由 dsh 的共享资源工具按需读取。

服务器、Set 和工具列表都支持 / 搜索。服务器概览还会显示它所属的全部 Set:◆ 表示活动,◇ 表示未活动。

Set 如何生效

实际运行的服务器是所有活动 Set 成员的并集。重复成员只会启动一次:

Set A: context7, websearch
Set B: websearch, ghgrep
运行:  context7, websearch, ghgrep

首次使用时会生成包含现有 MCP 的 Default Set;保存后它就是普通 Set。停止服务器只影响当前进程,不会改变 Set 成员关系;也可以随时原地恢复。

按键

按键操作
Tab切换左侧导航与右侧详情焦点
↑ / ↓选择节点、操作、字段或工具
← / →切换详情标签或移动输入光标
Enter打开、编辑或确认
/搜索当前列表
w切换 Set 与服务器池
Esc返回或取消

配置与安全

  • 服务器配置直接读写当前 profile 的 cordis.patch.yml,不维护第二份数据库。
  • Set 保存在同目录的 mcp-manager.sets.yml,只记录 Set 信息和服务器 ID。
  • 完整的读取、修改、写入过程与 dsh 的 Profile 配置编辑器共用锁,避免多个窗口或进程互相覆盖;managed block 外的内容保持不变。
  • 服务器与 Set 联动修改一起提交,使用 fsync、原子 rename 和恢复日志。保存失败会回滚;进程中断后,下次访问会恢复未完成的提交。若检测到后续人工修改,则保留文件并提示冲突。
  • 删除服务器时会同步清理所有 Set 引用。
  • 敏感值只写入 credentials provider,配置文件中仅保留引用。
  • 升级旧版 dsh 时,如果 profile 尚无 managed block,会从保留的 settings.yaml 或 settings.yaml.imported 一次性导入旧 MCP 配置。
诊断与运行时细节

诊断页会检查 Loader/Fiber、可执行文件或 URL、工作目录、凭据、连接和工具数。未处于活动 Set 的服务器会临时启用已有 Loader 配置完成握手,检查完成后恢复原来的禁用状态;不会修改 Set 或配置文件。

切换服务器、离开诊断页或关闭界面会取消诊断,并清理临时启动;诊断期间仍可刷新列表和操作其他服务器。后台刷新、手动刷新和状态事件会合并请求,内容未变化时复用界面快照。

“停止服务器”同样只停用当前进程中的 Loader 行。配置或 profile 重载后,临时停止状态会自动失效。

配置写入与凭据引用

插件只修改 cordis.patch.yml 中由以下 marker 包围的区块,兼容旧 marker、row prefix 和 metadata key:

# >>> dsh-mcp-manager: managed MCP server rows >>>
# managed MCP server rows
# <<< dsh-mcp-manager: managed MCP server rows <<<

敏感字段在 patch 中只保留引用,例如:

secretHeaders:
  api-key:
    ref: MY_CONTEXT7_KEY
    prefix: ''

真实值不会出现在服务器概览、profile patch 或 RPC snapshot 中。

跨文件提交采用恢复日志保证失败后可恢复;外部文件监视器仍可能短暂观察到两个文件依次替换。恢复日志位于 profile 的 .mcp-manager.transaction.json,仅属主可读写;待恢复时不要手动删除它。

更新与卸载

重新执行安装命令即可更新。卸载使用:

dsh plugin --profile dsh-tui remove dsh-tui-mcp-manager
从源码开发
git clone https://github.com/0N3-0/dsh-tui-mcp-manager.git
cd dsh-tui-mcp-manager
pnpm install --frozen-lockfile
pnpm check
dsh plugin --profile dsh-tui add .

常用发布前检查:

pnpm check
npm pack --dry-run
pnpm smoke:package

pnpm check 包含类型检查、构建、真实 MCP 测试、跨进程写入与崩溃恢复、诊断取消、真实 React 生命周期,以及 TUI Loader 接纳和命令授权测试。测试使用临时 profile 与本地 fixture。宿主集成脚本单独启用 Node 的 --expose-internals,供 Cordis Loader 的内置模块解析回退使用。

本地 add . 仅用于开发联调;普通用户无需 clone 或构建仓库。

兼容性

当前构建与运行基线为 dsh-TUI 0.16.1 与 dsh 0.2.1-rc.2。项目采用纯 ESM 和 MIT 许可证;发布由 GitHub Actions OIDC Trusted Publishing 完成。

插件运行在宿主进程内。manifest 权限用于宿主审计与策略声明,不是操作系统安全沙箱。

License

MIT © 2026 0N3-0