dsh-mcp-settings

by aka-danielZhang

2 开发与运行时github 检测到 manifest package.json#dsh收录于 08-17

DSH 管理 MCP 服务器、查看清单状态并提供 Web 设置的套件。

DSH bundle for MCP server management, inventory status, and Web settings

安装

dsh plugin --profile web add github:aka-danielZhang/dsh-mcp-settings

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 中文

这是一个可安装的 DeepSeek Harness bundle,包含通过 Web 设置管理 MCP 服务器的三个插件。

Cordis 行 入口 职责
dsh-mcp-settings-manager dsh-mcp-settings/manager 拥有 mcp.servers,为每个已启用服务器启动或停止内置 MCP client fiber,并发布合并后的连接状态。
dsh-mcp-settings-inventory dsh-mcp-settings/inventory 提供只读 mcpInventory/list Remote。
dsh-mcp-settings-ui dsh-mcp-settings + ./client 提供 MCP 设置页、表单/JSON 编辑、启停开关、状态轮询和工具数量。

bundle 会把这三个插件行插入兼容的 Web profile。该 profile 不能同时挂载另一套由设置驱动的 MCP manager 或 MCP 设置 UI。已有 mcp.servers 用户设置不会被删除。

环境要求

  • 匹配的 DeepSeek Harness 开发版本;它的 web profile 必须已经提供 package.json 中列出的 DSH peer 包。
  • 该 Harness 版本必须发出 mcp-client/status 事件;此事件尚未进入公开 Harness 默认分支。
  • Node.js ^22.19.0 || >=24。
  • 从 GitHub 直接安装时使用 pnpm 10 或更高版本。

从 GitHub 安装

DSH 插件通过 bundle 分发。dsh plugin add 会把包安装进 profile,并把它的 dsh.bundle 层加入 profile manifest;不需要额外的启用脚本。

dsh plugin --profile web add github:aka-danielZhang/dsh-mcp-settings

该命令只安装 bundle,不会安装或升级 Harness 拥有的 peer 包;因此必须按上述要求使用匹配的 Web profile。

Git 安装会运行仓库的 prepare 脚本生成 lib/。pnpm 默认阻止依赖构建脚本;如果第一次安装提示 build 被忽略,请把提示中的准确包名加入 ~/.dsh/profiles/web/pnpm-workspace.yaml,然后重试:

allowBuilds:
  "dsh-mcp-settings@https://codeload.github.com/aka-danielZhang/dsh-mcp-settings/tar.gz/<commit-sha>": true

这项授权允许安装期间执行包代码。安装不受你控制的源码时应锁定 commit:

dsh plugin --profile web add github:aka-danielZhang/dsh-mcp-settings#<commit-sha>

安装后重启 dsh --profile web,打开“设置 > MCP”;原有 mcp.servers 列表会继续使用。

检查组合结果:

dsh --profile web --dump-config

输出应包含 dsh-mcp-settings-manager、dsh-mcp-settings-inventory 和 dsh-mcp-settings-ui。

安装本地 checkout

git clone https://github.com/aka-danielZhang/dsh-mcp-settings.git
cd dsh-mcp-settings
dsh plugin --profile web add file:.

全局安装了 dsh 时,也可以使用这些可选快捷脚本:

pnpm run plugin:add
pnpm run plugin:dump
pnpm run plugin:remove

DSH CLI 是权威安装路径;这些脚本不会直接修改 profile 文件。

配置 MCP 服务器

使用“设置 > MCP”。manager 读取与内置实现相同的 mcp.servers 设置命名空间。凭据保存在 Harness 凭据服务中;HTTP 条目通过 authorizationCredentialRef 生成 Bearer 认证头,stdio 条目通过 envCredentialRefs 把目标环境变量映射到凭据引用,因此密钥无需进入 MCP 设置文档。引用名必须符合可移植环境变量格式 [A-Za-z_][A-Za-z0-9_]*。

配置 authorizationCredentialRef 后,解析得到的 Bearer 值是权威来源,会替换 headers 中任意大小写形式的 Authorization 项。收到 credentials/updated 事件时,仅重启使用该引用的服务器,因此轮换凭据无需修改 MCP 设置即可作用于下一次进程启动或连接。

UI 支持 stdio 与 Streamable HTTP、表单与 JSON 编辑、凭据引用、直接启停以及实时状态/工具数量。保存已启用服务器后立即查询一次,随后每两秒查询,直到连接成功或经过 60 秒。

移除

dsh plugin --profile web remove dsh-mcp-settings

重启 Web profile。bundle 插入的插件行会消失,用户设置保持不变。

开发

类型检查和测试遵循 DSH 仓库外插件约定:在相邻目录 ../deepseek-harness 保留一个 Harness checkout。

git clone https://github.com/deepseek-ai/deepseek-harness.git ../deepseek-harness
cd ../deepseek-harness && pnpm install
cd ../dsh-mcp-settings
pnpm install
pnpm run typecheck
pnpm test
pnpm run bundle
pnpm run smoke

实时开发时,先把本地 checkout 安装到 Web profile,保持 dsh web 运行,再在另一个终端启动本插件的 bundle watcher:

pnpm run plugin:add
pnpm run dev:web

dsh web 始终挂载 Client HMR 接收端。watcher 会重建这个仓库外插件的 Host 和 Client bundle;运行中的 Host 发现 bundle revision 变化后,会让浏览器插件自动热替换,无需刷新页面。Harness 根目录的 pnpm run dev:web 只监视仓库内 packages/*/* 的 Client 插件,不能替代本插件自己的 watcher。

prepare 使用自包含的 tsdown.config.ts 与 tsconfig.prepare.json,因此 GitHub 安装方不需要相邻 Harness checkout;类型检查与测试需要它。

GitHub CI 会在没有 Harness checkout 的情况下验证消费端安装、bundle、JavaScript 语法和打包产物。完整类型检查与测试会针对匹配的相邻 Harness 开发树运行,因为依赖的 mcp-client/status 事件尚未进入公开 Harness 默认分支。

兼容性

当前兼容的 DeepSeek Harness 版本:0.1.0-rc.7(@deepseek-ai/dsh-root 与内置 @deepseek-ai/dsh-mcp-client,均为 0.1.0-rc.7)。自 v0.2.2 起,manager 在本地镜像重连默认值与服务器名 pattern,不再导入 dsh-mcp-client 未发布的导出,因此可以在干净的 rc.7 harness 上加载。Harness 版本必须发出 mcp-client/status 事件。

该 bundle 替换当前 DeepSeek Harness RC 版本线提供的扩展点,并复用内置 @deepseek-ai/dsh-mcp-client。DSH 仍处于预发布阶段;这些扩展点变化时,需要一起更新 peer 范围、Typert descriptor 和 bundle patch。

来源与许可

实现迁移自 DeepSeek Harness 中 MIT 许可的 MCP manager、MCP inventory 和 MCP Settings 包。详见 LICENSE。

原始 README: https://github.com/aka-danielZhang/dsh-mcp-settings/blob/main/README.zh.md ↗