在 Web 设置面板中查看、添加、编辑、删除、启用或停用 MCP 服务器,保存后热重载。
安装
# npm 包(预构建)
dsh plugin --profile web add @opendsh/dsh-plugin-setting-mcp
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Ceelog/dsh-plugins#path:/src/plugins/dsh-plugin-setting-mcp
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
DSH Web 插件:在设置面板中管理 MCP 服务。可以查看、修改、移除、启用/停用 MCP
服务,点击 保存 后立即热更新生效(无需重启进程)——因为每个服务都是
@deepseek-ai/dsh-mcp-client 的一个活跃 loader 条目。
功能
- 查看 — 列出所有已配置的 MCP 服务,展示
serverName、连接方式 (stdio / Streamable HTTP)、启动命令或 URL,以及实时状态(启用/停用,加上 连接阶段:active、failed、loading等)。 - 新增 / 修改 — 完整的服务编辑器:
serverName、连接方式、command+args+cwd+env(stdio),或url+headers(HTTP),以及单次调用 超时和failOnStartupError开关。 - 移除 — 删除该服务的 loader 条目(带二次确认)。
- 启用 / 停用 — 只切换条目的
disabled标记,不触碰配置,停用后完整配置仍 被保留。 - 保存 → 热更新 — 所有修改先在本地暂存,保存 时对 loader 树做
reconcile(
create/update/remove)并写回配置文件。每个操作只重启受 影响的dsh-mcp-client实例,与 harness HMR 的热切换行为一致。
架构
一个安装到 web profile 的双端 npm 包:
| 端 | 入口 | 职责 |
|---|---|---|
| 服务端 | lib/index.js |
Cordis 插件(inject: ["loader"]):挂载 ctx.mcp typert 服务,投影并 reconcile loader 中的 MCP 条目。 |
| 协议 | lib/typert.js |
服务端 TYPERT 接口(mcp/list、mcp/save),由 dsh-typert-loader 自动注册。 |
| 浏览器 | lib/client.js |
挂载到 settings.section 插槽的 React 页面,通过 remote.mcp 命名空间调用服务端。 |
客户端与服务端之间走 DSH typert 协议:严格 zod 编解码在两侧校验所有参数与结果。
安装
dsh plugin --profile web add @opendsh/dsh-plugin-setting-mcp
与 cordis.yml 的对应关系
插件直接管理 dsh-mcp-client 条目。一个 stdio 服务等价于:
- id: mcp-github
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: github
transport: stdio
command: npx
args: ['-y', '@modelcontextprotocol/server-github']
env:
GITHUB_TOKEN: ...
一个 Streamable HTTP 服务等价于:
- id: mcp-web
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: web
transport: streamable-http
url: http://localhost:3000/mcp
headers:
Authorization: ...
模型看到的工具名保持服务命名空间前缀(mcp__<服务名>__<工具名>),与手写
cordis.yml 条目完全一致。
开发
pnpm install
pnpm --filter @opendsh/dsh-plugin-setting-mcp build
pnpm --filter @opendsh/dsh-plugin-setting-mcp test
已知限制
- 编辑器不暴露
reconnect。 启用/停用切换会保留已存储的reconnect配置; 但修改服务会重建传输配置,使reconnect回到dsh-mcp-client的默认值。 - 高级
reconnect字段以及未来的 MCP 能力(resources、prompts)不在本面板 范围内,仍可直接在cordis.yml中配置。 - 保存是 reconcile 而非事务。 操作按顺序应用;若后面的条目失败(例如服务进程 无法启动),前面的操作已生效,失败信息会在面板中提示。
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2078
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 962
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 834
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 147
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 139
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 86
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。