dsh-mcp-glue:在 DSH 里按工作区加载项目级 MCP 声明

前言

在 DeepSeek Harness(DSH)里做智能体开发时,MCP 服务器往往已经写在仓库里:根目录的 .mcp.json、Cursor 的 .cursor/mcp.json、Codex 的 .codex/config.toml 等。各客户端各自读自己的文件,换到 DSH 会话里若仍靠全局 profile 手工对齐,容易和项目声明脱节,也不利于「一个工作区、一个会话」的隔离。

下面介绍社区插件 dsh-mcp-glue(维护者 AkotaP):它在 DSH 中读取当前工作区已有的 MCP 声明,在各自 Agent 作用域内连接服务器,不把配置写入 DSH 全局 profile,也不修改仓库里的原声明文件。目录分类为「工作流」,可在 SkillHub 插件页 查看条目;源码与文档在 GitHub。

这是什么

dsh-mcp-glue 面向 DeepSeek Harness >=0.2.0-rc.2(README 写明离线测试基线为 0.2.0-rc.2,主要验证版本为 0.2.1-rc.2)。一句话定位:为 DSH 加载会话隔离的工作区级 MCP 声明,并附带预设解析、管理界面、信任策略、工具调用闸门与自动重连等能力。

插件运行时代码刻意不 import @deepseek-ai/dsh-* 模块,通过宿主 Cordis loader 与原生 MCP 桥接协作;peerDependencies 声明 @deepseek-ai/dsh: >=0.2.0-rc.2(optional),用于安装与启动时的版本兼容判定。

内置预设:对齐常见客户端配置

插件用「预设」描述「文件在哪、用什么格式、服务器列表在哪个键下」。内置预设如下(路径均相对工作区根目录):

ID 相对位置 服务器表键 格式
root .mcp.json mcpServers 或 servers(不能同时存在) JSONC
vscode .vscode/mcp.json servers JSONC
codex .codex/config.toml mcp_servers TOML
cursor .cursor/mcp.json mcpServers JSONC
gemini .gemini/settings.json mcpServers JSONC

新的 VS Code portable 配置也通过 root 预设加载。除内置项外,可在插件详情页的「预设管理」里增删自定义预设(文件位置、格式、服务器表路径、方言、插值、字段映射等);保存时前后端共用同一解析器校验。预设只是 Host 配置中的数据,不执行项目脚本。

管理界面与连接行为

两个入口:

  1. 输入框工具行左侧的 MCP 控件:展示当前会话工作区的声明与连接状态(如 ● MCP 已连接/声明)。点开可对每台服务器「连接 / 断开」、「重新读取」声明、「连接全部 / 全部断开」。手动连接表示对该会话与声明指纹的显式授权;「断开」为粘性,声明变化后也不会自动重连。
  2. 插件详情页预设管理(设置 → 插件 → dsh-mcp-glue):勾选内置预设、维护自定义预设。配置落在 plugins.bundle.config(按包名 keyed),保存后立即生效的配置字段为 volatile 项,无需重启 Harness。

客户端半为构建产物 lib/client.js(由 pnpm run build 生成);缺失时宿主会拒绝激活。修改宿主侧代码后需重启 Harness 才会重新 import 模块。

信任、自动连接与工具闸门

是否自动连接按三层判定(任一层命中即允许自动加载):

  1. trustMode: all — 信任一切仓库(高风险,勿用于不可信代码)。
  2. trustedWorkspaces — 列表中的目录(精确匹配,不含子目录)内声明全部允许自动加载。
  3. workspaceAllowances[].allowMcp — 指定工作区里仅列出的服务器可自动加载。

三层都未命中时,插件不会主动弹批准框;需在面板点「连接」,或打开「始终信任此工作区」。允许某目录自动加载等于允许其中声明启动本地程序;DSH 原生 MCP stdio 由 SDK 直接启动,不受文件工具沙箱限制。

工具调用与「服务器已启动」分开:当服务器已允许但某工具不在 allowTools 时,插件在 tools/pre-execute 闸门里通过上下文问答提供「仅此次允许 / 总是允许这个工具 / 拒绝」。项目自带的 includeTools / excludeTools 优先于面板开关,被项目禁用的工具不会被询问。闸门只作用于本插件挂载的服务器。

自动重连与 HTTP 断线感知

对符合策略且仍被选中的服务器,插件提供带退避的自动重连(1、2、4、8、16、30、60 秒并带抖动,之后按 60 秒档重试;稳定连接 30 秒后重置退避)。required 服务器不可用时会拒绝模型请求直至恢复。对已连接的 HTTP 服务器可做只读 HEAD 探测(无凭据);stdio 依赖子进程退出事件。手动断开保持粘性;声明变化等边界见仓库内 docs/management-ui.md。

安装与启用

任选一种方式安装;安装后由 dsh.bundle.patch 插入 workspace-mcp-glue 条目,在插件页确认 dsh-mcp-glue 已启用。

从 Git 仓库安装(发布后常规方式):

pnpm dsh plugin --profile <profile> add 'github:<owner>/dsh-mcp-glue'
# 建议锁到具体 commit:'github:<owner>/dsh-mcp-glue#<sha>'

此路径不需要本地构建:lib/client.js 已随仓库提交。安装前可用 dsh plugin --help 核对当前 CLI 参数。

link 安装(适合改插件本身):在 profile 目录执行 pnpm add link:<本工程绝对路径>。改客户端源码后需 pnpm run build;改宿主源码后须重启 Harness。

tgz 安装:在本工程 pnpm pack 后,在插件界面安装生成的 tgz。

package.json 当前版本为 0.3.0,许可证 MIT。SkillHub 条目显示星标为 0,仅作目录信息,不代表质量评判。

典型配置示例

六个可热改字段可通过插件设置页保存,也可直接写入 profile patch(与表单写的是同一份 config):

- id: workspace-mcp-glue
  config:
    enabledBuiltins: [root, vscode, codex, cursor, gemini]
    trustMode: manual          # manual | all
    trustedWorkspaces:
      - 'D:\Data\Project\trusted-project'
    workspaceAllowances:
      - workspace: 'D:\Data\Project\other-repo'
        allowMcp: [team-tools]
        allowTools: ['mcp__team-tools__identity']
    conflictPolicy: error
    webControl: true           # false 时管理界面只读不到状态

典型用法流程:

  1. 在目标仓库保留你已在 Cursor / VS Code / Codex 等使用的 MCP 声明文件(或新建 .mcp.json 等)。
  2. 安装并启用插件,在预设管理中勾选对应内置预设。
  3. 将工作区设为 trustedWorkspaces 或在 MCP 面板手动「连接」,按需配置 allowTools。
  4. 在会话工具行查看 MCP 状态,必要时用面板「+新建 / 管理」编辑声明(定点修改 JSONC / YAML / TOML,保留注释与其它键)。

面板支持按连接方式(stdio / http)编辑字段;不支持 sse,写入前即拦截。

适用场景与注意

适合谁:已在项目里维护 MCP 配置、希望在 DSH 中复用同一套声明、且需要按工作区隔离连接与细粒度工具许可的团队或个人。

务必注意:

  • 插件与 DSH 以当前进程权限运行;trustMode: all 或信任不可信仓库可能启动任意本地程序。安装前应阅读源码与 MIT 许可证,自行评估风险。
  • 不要把项目里的 MCP 列表直接导入 profile 替代本插件的设计;本插件读的是工作区文件,不写全局 profile。
  • 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本介绍仅基于公开 README 与 package.json。

结尾

dsh-mcp-glue 把各客户端常见的项目级 MCP 配置文件「接」进 DSH 会话:预设解析、GUI 管理、信任分层与工具闸门,减少在 Harness 里重复维护一份全局 MCP 列表。需要细节契约、闸门与安全边界时,以仓库 README 及 docs/ 下文档为准。

  • 目录页:https://www.skillhub.cn/plugins/AkotaP/dsh-mcp-glue
  • GitHub:https://github.com/AkotaP/dsh-mcp-glue
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye