Imzl-zl/dsh-mcp-manager-ui ↗★ 19
dsh-mcp-manager-ui
Responsive MCP management UI for DeepSeek Harness Web — floating panel, JSON import, and profile-backed Host Remote management. 适合需要便捷开关、重连、导入和编辑MCP服务器配置的Web端用户。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Imzl-zl/dsh-mcp-manager-uiREADME
Read the full README ↗使用
打开面板
两个入口,同一个面板:
- 右下角悬浮按钮:可拖拽移动,位置会被记住;
- 侧栏底部「MCP」:展开态在「设置」上方,侧栏收起成 56px 轨道时只剩图标。
面板浮在会话之上,关掉它(右上角「关闭」或 Esc)不会影响会话。
两个入口都能单独关掉:面板右上角「入口」里选 悬浮按钮 + 侧栏入口(默认)/ 仅悬浮按钮 / 仅侧栏入口。不能两个都关——面板只能从这两个入口打开,所以这是一个三选一,而不是两个独立的开关。选择存在浏览器本地(localStorage),换浏览器或清缓存要重选一次。
全局 vs 项目
顶部标签页在「全局」与各项目之间切换:
| 标签页 | 存哪 | 谁可见 | 改动何时生效 |
|---|---|---|---|
| 全局 | Web profile 的 cordis.patch.yml | 所有项目 | DSH 热加载,通常立即生效 |
| 某项目 | 该项目 .dsh/mcp.json | 只该项目会话 | 下一次新建的连接(见下) |
serverName 按作用域判重:不同项目之间、全局与项目之间可以同名,各自独立连接;同一作用域内不能重名。
常用操作
在列表行或详情页里:
- 开关:启用 / 禁用(全局写 profile 补丁的
disabled,项目写.dsh/mcp.json); - 重连:仅全局可用(项目连接由会话持有,重连由
mcp-client自己管); - 编辑 / 移除:移除只影响当前作用域;
- 屏蔽(项目页里对全局 MCP):写
exclude,该项目的新会话不再看到它——全局实例仍在跑,所以不影响其他项目。
添加 MCP
三条路,都从面板顶部工具栏进:
- 添加 MCP:表单填
command/args/env/cwd(stdio)或url/headers(HTTP),可设调用超时、启动失败策略与重连策略;常用服务器有预设模板可一键套用。 - 导入 JSON:粘贴其他客户端的配置,先预览再写入。支持「合并(同名更新)」与「替换」,字段映射与限制见 JSON 导入。
- 内置 MCP:勾选未配置的项一次装好(Exa、Tavily、Firecrawl、Chrome DevTools、Playwright)。前三项有免密额度、不需要本地依赖;后两项是本地工具,需要 Node.js 与浏览器。已配置的项只识别并跳过,不会覆盖。
看工具与敏感值
详情页列出该 MCP 当前注册的工具;展开可看完整输入 Schema。凭据类字段默认掩码,点眼睛图标会向 Host 读取有效运行值(已解析过的环境变量)并临时显示,再点一次恢复;已显示的值可一键复制。编辑时若没实际改动输入,保存仍保留原来的引用写法,不会把密钥写回配置文件。
配置生效时机(重要)
| 作用域 | 修改后何时生效 |
|---|---|
| 全局 | DSH 热加载,通常立即生效(含运行中的会话) |
| 项目 | 下一次新建的连接生效;正在运行的会话不受影响 |
项目 MCP 在会话创建/恢复时按当时的 .dsh/mcp.json 装配,会话进行中不重读配置——会话里改配置不生效是预期行为(Claude Code、Codex 等客户端的项目级 MCP 同样要求新开会话);「屏蔽」同理,只对之后的会话生效。改完不需要点「重连」,也不需要重启 Host。
共享连接下的边界:项目 MCP 是「该项目所有会话共用一份连接」的模型,连接由最先打开该项目会话时的配置建立。所以「新开一个会话」并不总等于「用上新配置」:该项目已经没有会话在跑 → 新会话立刻用新配置;该项目还有会话在跑 → 新会话复用现有连接、沿用旧配置,此时面板会在该项目行标出
配置待生效,等所有会话结束后下一个会话才用新配置建连。面板只是如实告知,不会在运行中把连接从正在对话的会话脚下换掉。