DeepSeek Harness 插件

dsh-mcp-manager-ui

Persistent MCP server management UI for DeepSeek Harness Web — FAB overlay + Settings tab, backed by a host Remote (list/status/enable/disable/reconnect/tools/add/update/removeServer).(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Imzl-zl/dsh-mcp-manager-ui
最近更新
2026年8月20日
分类
工具与能力
GitHub stars
3
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Imzl-zl/dsh-mcp-manager-ui
插件名:dsh-mcp-manager-ui
作者:Imzl-zl

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-mcp-manager-ui

<p align="center"> <a href="https://linux.do/" title="LINUX DO"><img src="https://cdn.jsdelivr.net/gh/Imzl-zl/dsh-mcp-manager-ui@v1.1.5/docs/images/linux-do-logo.svg" alt="LINUX DO" width="40" height="40"></a> </p>

DeepSeek Harness Web 的 MCP 管理面板。它在 Web Host 中运行一份,通过右下角悬浮按钮管理当前 Web profile 的 MCP 配置。

界面预览

管理面板

!MCP 管理面板

连接详情与操作

!MCP 连接详情

新增 MCP

!新增 MCP

功能

  • 查看 MCP 状态、传输方式、连接参数和工具列表
  • 展开每个工具查看完整输入 JSON Schema:必填/可选参数、类型、枚举、默认值与原始 JSON
  • 按传输方式(HTTP/stdio)和连接状态筛选,支持按名称/命令/URL 搜索
  • 添加时一键套用常用预设模板(Filesystem、Memory、Sequential Thinking 等)
  • 从“内置 MCP”目录查看 Exa、Tavily、Firecrawl、Chrome DevTools 和 Playwright,勾选后按需追加;已有配置只识别并跳过,不会覆盖
  • 显示并复制已解密的 URL 凭据、args、env、headers 值(会话内临时可见)
  • 启用、禁用、重连、添加、编辑和移除 MCP
  • 跟随 DSH 深色/浅色主题,并适配窄屏和移动宽度
  • 支持 DSH rc.7+ 的完整 MCP 连接字段:commandargsenvcwdurlheaders、调用超时、启动失败策略和重连策略
  • 导入 Claude、Cursor、Cline、Roo 等使用的 mcpServers JSON,以及 VS Code 的 servers JSON
  • JSON 导入支持“合并(同名更新)”和“替换当前 Web profile 管理的 MCP”,写入前提供预览
  • 结构化修改 Web profile 的 cordis.patch.yml,保留其他插件条目、注释和 !!js 环境变量表达式
  • Host Remote 与 Web 客户端均随插件生命周期加载和卸载

兼容性

项目已验证版本
DeepSeek Harness0.1.0-rc.7 及以上(已验证至 0.1.0-rc.8
Node.jsDSH 自带/支持的运行时
平台Windows;Linux/macOS 使用同一 DSH Web 契约

内置 MCP

插件安装和 Web Host 启动都不会自动写入任何 MCP。打开管理面板后,点击顶部工具栏中位于“导入 JSON”和“添加 MCP”之间的“内置 MCP”,可以查看目录、勾选未配置项并一次安装。

MCP默认配置无密钥使用范围本地要求
Exahttps://mcp.exa.ai/mcp匿名限额;可另配 API Key 提升额度
Tavilyhttps://mcp.tavily.com/mcp/ + X-Tavily-Access-Mode: keyless限额 Search / Extract;免费账号可提供更高额度
Firecrawlhttps://mcp.firecrawl.dev/v2/mcp限额 Search / Scrape / Parse;完整工具需要登录或 API Key
Chrome DevToolsnpx -y chrome-devtools-mcp@latest本地工具,无 API 额度Node.js、Chrome
Playwrightnpx -y @playwright/mcp@latest本地工具,无 API 额度Node.js 20+、可用浏览器

目录会按 serverName、官方 HTTP 主机名和官方 npm 包识别当前有效配置,包括来自其他 bundle、Agent preset 或 mcp-remote 桥接的同类项。已存在项会显示其配置名称并禁用勾选;Host 在真正写入前还会在文件锁内再次判重,只追加当时仍缺失的所选项,不更新、不替换用户配置。用户主动移除某项后,只有再次勾选安装才会恢复。

DSH 宿主 API 通过 peerDependencies^0.1.0-rc.7 声明,自动兼容 0.1.0-rc.70.2.0 之前的所有版本(含后续 RC 与 0.1.x 正式版)。开发与测试环境跟随同一范围,升级 DSH 后用 pnpm update && npm test 验证即可,无需改版本号。0.2.0 属于新的兼容边界,需要重新验证后再放宽。

安装

使用 DSH 插件命令安装。不要把 mcp-manager-ui 再手工插入 Web profile 的 cordis.patch.yml

# 正式使用固定 release tag。
dsh plugin --profile web add github:Imzl-zl/dsh-mcp-manager-ui#v1.1.5

安装、升级、卸载和本地开发流程见 [安装与升级](docs/installation.md)。

安装后重启 dsh web。插件命令会同时完成两件事:

1. 把包加入 Web profile 的 dependencies。 2. 把 dsh-mcp-manager-ui 加入 dsh.profile.bundles

仓库自己的 cordis.patch.yml 已经声明唯一的 Host 条目:

- insert:
    - id: mcp-manager-ui
      name: dsh-mcp-manager-ui

不要在以下位置重复这段条目:

  • ~/.dsh/profiles/web/cordis.patch.yml
  • 任意 Agent preset 的 agent.cordis.yml
  • 额外的 --patch 文件

本插件也不需要全局安装 @deepseek-ai/dsh-tool-cordis。需要临时开发 Cordis 插件时,直接新建“创造模式”会话。

卸载:

dsh plugin --profile web remove dsh-mcp-manager-ui

JSON 兼容范围

DSH rc.7 原生支持两种 MCP transport:

  • stdiocommandargsenvcwd
  • streamable-httpurlheaders

导入器会识别 httpstreamable-httpstreamableHttp 等常见别名,并把 ${TOKEN}${env:TOKEN} 转成 DSH 的 !!js process.env.TOKEN 表达式。DSH 当前不支持的 SSE、WebSocket、OAuth、headersHelperenvFile 等字段会明确报错或提示,不会静默生成不可用配置。

其他 Agent 的 directTools 可以是 truefalse 或缺失。DSH 没有间接工具模式并始终把 MCP 工具注册为 mcp__<server>__<tool>,因此导入器采用保守映射:true 转成 disabled: falsefalse 转成 disabled: true,缺失时不干预现有启停状态;同时存在显式 disabled 时以后者为准。预览会逐项提示这些转换。

“替换”只替换当前 Web profile 的 cordis.patch.yml 中由 @deepseek-ai/dsh-mcp-client 声明的条目,不会删除其他 bundle 或 Agent preset 自带的 MCP。

完整格式、两种导入模式、启停映射和密钥处理见 [JSON 导入](docs/json-import.md)。

文档

开发流程

1. 在“创造模式”中用 cordis_inspectcordis_definecordis_run 做临时验证。 2. 将确认后的实现写入本仓库。临时动态插件不会自动生成源码文件,也不会在 DSH 重启后恢复。 3. 停止临时动态版本,避免它与仓库版本同时注册 UI 或 Remote。 4. 使用本地路径执行 dsh plugin --profile web add ...,验证正式 bundle。 5. 运行测试并启动 Web 做真实操作验证。

npm test
dsh --profile web --dump-config
dsh web

包结构

  • package.json:声明 dsh.bundle 和 Web dsh.client
  • cordis.patch.yml:插入唯一的 Host 插件实例
  • lib/index.jsmcpManager Host Remote
  • lib/mcp-config.js:JSON 规范化与 YAML patch 结构化读写
  • lib/mcp-observability.js:连接状态判定与 mcp-client 日志格式化
  • lib/client.js:响应式 Web UI、Remote 客户端和生命周期清理
  • lib/typert.js:Remote 契约描述

lib/ 是预构建产物,GitHub、tarball 和 npm 安装均不需要执行构建脚本。

连接状态语义

@deepseek-ai/dsh-mcp-client 不对外暴露连接成功/失败事件,连接状态只出现在它的日志里。因此面板采用两条独立事实拼出状态:

  • 已连接(connected):只有该 server 的工具已注册(mcp__<server>__* 数量 > 0)才判定为已连接。插件 fiber 处于 ACTIVE 只说明 mcp-client 在跑,不能证明握手成功——failOnStartupError: false(默认)时连接失败也会让 fiber 保持 ACTIVE。
  • 连接失败(failed):fiber 活着但没有工具注册,且 mcp-client 最近日志(通过 ctx.logger.exporter 订阅并按 mcp-client(<serverName>) 过滤)中出现 error/warn。失败原因会展示在详情页,例如 connection attempt failed: ECONNREFUSEDadb forward missing
  • 工具数为 0 且没有任何失败日志时如实显示连接中/等待,不猜测成功。

面板在详情页和编辑表单中默认掩码敏感值(URL 凭据、args、env、headers),点击眼睛图标后经 Host 的 reveal 接口读取有效运行值并在会话内临时显示;编辑时若未实际修改输入,保存仍保留原配置引用,不会把环境变量密钥写回 profile。该读取只对当前 Web profile 管理的 server 开放。

设计约束

dsh-mcp-manager-ui 是 Web Host 单实例插件。固定的 Remote namespace 和 UI slot id 是有意设计;重复加载属于配置错误,插件会明确失败,而不是静默忽略。多个 MCP server 则由 @deepseek-ai/dsh-mcp-client 的不同 serverName 实例管理。

相关链接

License

MIT