dsh-wall-mcp-manager:集中管理 MCP 服务配置与工具契约

前言

在使用 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 服务的管理成本,并通过严格的凭据脱敏保障了安全。更多细节可查阅官方目录或源码仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜