前言¶
在使用 DSH(DeepSeek Harness)开发智能体时,管理多个 MCP(Model Context Protocol)服务往往变得繁琐。手动维护配置文件、处理服务挂载与卸载、以及在不暴露敏感信息的前提下查看工具契约,都是常见痛点。
这是什么¶
@sduwall/dsh-wall-mcp-manager 是一个 DSH 插件,由开发者 sduwall 维护。它的核心作用是:集中管理 MCP 服务配置,并展示每个服务提供的工具、调用参数与返回契约。它不直接实现 MCP 协议,而是通过「对账」机制,将配置清单收敛为运行时的 MCP 实例。
核心功能¶
该插件提供以下能力:
1. 集中管理:所有 MCP 服务配置统一在 dsh-wall-mcp-manager 命名空间下管理。
2. 自动对账:根据配置清单自动进行挂载、更新或卸载操作。修改配置后无需重启 DSH 即可生效,连续保存操作会被串行化处理。
3. 契约展示:通过设置界面展示每个服务的工具列表、参数定义及返回结构。
4. 安全凭据:支持对环境变量和请求头进行凭据脱敏处理。凭据内容与键名永不出网,界面仅显示「已配置 / 未配置」。
安装与依赖¶
本插件基于 Cordis Bundle 构建,属于 DSH 生态的一部分。
- 依赖环境:
- DSH >= 0.1.2-alpha(推荐 >= 0.1.2-alpha.2)
- Node.js >= 20(DSH 内置 Node.js 版本 >= 22)
- 硬依赖服务:loader、tools
- 可选服务:settings(用于热生效配置)、webServer(用于设置界面)
典型用法¶
在配置文件(通常为 settings.yaml)的 dsh-wall-mcp-manager 命名空间下定义服务:
dsh-wall-mcp-manager:
servers:
filesystem:
enabled: true
transport: stdio
description: 本地文件访问
command: npx
args:
- -y
- '@modelcontextprotocol/server-filesystem'
- D:/workspace
env:
LANG: zh_CN
secretEnv: # 凭据类环境变量,永不出网
API_TOKEN: xxx
toolCallTimeoutMs: 60000
weather:
transport: streamable-http
url: https://mcp.example.com/mcp
headers:
X-Trace: 'on'
secretHeaders: # 凭据类请求头
Authorization: Bearer xxx
关键约定:
- 工具命名:DSH 内的工具公开名为 mcp__<serverName>__<原始工具名>。
- 改名即换服务:修改 serverName 会重置该服务的所有工具,因此改名等于换一个服务。
- 凭据字段:secretEnv 和 secretHeaders 必须显式配置(不要写 {}),留空表示不修改。
界面与限制¶
- 本地回环校验:设置界面依赖 DSH 的 Web 服务,仅允许通过
127.0.0.1或::1访问。通过远程地址访问 GUI 时无法读写配置。 - 凭据不回显:界面仅显示凭据是否已配置,不显示具体值。写入操作时留空表示不修改。
- 半成品保护:配置校验失败(如缺命令、名称非法)只会跳过该项,不会导致整个插件卸载。
适用场景与安全¶
- 适用场景:需要频繁增删改 MCP 服务、希望在不重启 DSH 的情况下动态调整服务状态、需要通过界面直观查看工具契约的开发者。
- 权限与安全边界:
- 命令执行:可拉起本地子进程(按 DSH 进程身份执行),请确保来源可信。
- 网络访问:仅通过配置的远程 URL 连接,配置桥仅监听本机回环,避免权限泄露。
- 文件访问:不读写用户文件系统,仅在内存中读写配置。
结语¶
该插件通过集中配置与热生效机制,降低了 MCP 服务的管理成本,并通过严格的凭据脱敏保障了安全。更多细节可查阅官方目录或源码仓库。