dsh-mcp-doctor: Static Validation of Local MCP JSON Configuration

前言

在 DeepSeek Harness(DSH)里接 MCP,常见做法是维护一份 JSON,列出各 MCP 服务器的 command、url、args、env 等字段。配置写错时,问题往往要到真正启动客户端、握手或连网之后才会暴露,排查成本高。

dsh-mcp-doctor 针对的是「配置文件本身」:在不启动 MCP 服务、不做握手、不发起网络请求的前提下,对本地 JSON 做静态检查。下面介绍它的定位、检查项、用法与边界。

这是什么

  • 插件名称:lengrufeng2008/dsh-mcp-doctor(npm 包名 dsh-mcp-doctor)
  • 维护者:lengrufeng2008
  • 分类:工作流(社区目录 SkillHub 标注;该站点为社区插件目录,与 DeepSeek / 幻方无官方从属关系)
  • 版本(资料记载):0.1.0
  • 许可证:MIT
  • 运行环境:Node.js >= 20

一句话:对本地 MCP JSON 做静态校验,核对结构、命令/URL、类型与命名等,避免把明显错误留到运行阶段。

核心功能

校验逻辑覆盖 README 中列出的项(均为静态分析,非运行时探测):

  1. 根结构:是否存在 mcpServers、mcp.servers 或 servers 等约定块。
  2. 必填字段:各服务器条目是否具备 command 或 url。
  3. 命令可执行性:command 是否在 PATH 中可找到,或为绝对路径且指向可执行文件(使用当前 shell 环境查找,而非 MCP 客户端进程环境)。
  4. URL:语法与协议是否符合预期。
  5. 类型:args、env 等字段类型是否合理。
  6. 命名:空名称、重复名称。

明确不做的事(Limits):

  • 仅支持 JSON 配置文件。
  • 不进行真实 MCP 握手、工具枚举或鉴权验证。
  • 不是安全审计工具。

安装与启用

已抓取资料中未给出形如 dsh plugin add … 的完整安装命令;请勿凭仓库名自行拼接。插件在 SkillHub 标注为可安装、版本 v0.1.0,可从目录页与 GitHub 仓库获取源码与说明:目录页、GitHub。

作为 DSH 插件启用后,通过 Harness 调用校验能力;独立使用时可在克隆或安装包后,用 Node 直接跑 CLI(见下一节)。

安装或启用前,建议自行查看仓库源码与 MIT 许可证;插件以当前 DSH / Node 进程权限运行,校验命令是否存在时也会读取你本机 PATH,与 MCP 客户端实际运行环境可能不一致,需心里有数。

典型用法

命令行

在仓库或已安装包目录下,对指定配置文件执行校验。人类可读输出:

node bin/dsh-mcp-doctor.mjs ./mcp.json

需要机器可读结果时加 --json:

node bin/dsh-mcp-doctor.mjs ./mcp.json --json

在 DSH 内

README 给出的 Harness 用法示例:

Use mcp_doctor on ./mcp.json.

将 ./mcp.json 换成你实际的 MCP 配置文件路径即可。

开发与自测

维护者提供的测试入口:

npm test

(对应 node --test test/*.test.mjs。)

适用场景与注意

适合:

  • 改完 MCP JSON 后、提交或部署前,快速扫一遍结构与明显错误。
  • 在 CI 或本地脚本里对固定路径的配置做静态 gate(可配合 --json 解析结果)。

注意:

  • 通过校验不代表 MCP 服务一定能握手成功;端口、鉴权、网络策略等仍需在真实客户端里验证。
  • command 是否存在取决于执行 doctor 时的环境,若 MCP 只在容器或另一用户下安装,可能出现「doctor 报找不到命令、客户端却能跑」的情况。
  • 仅 JSON;若你用的是其他格式,需先转换或换工具。

结尾

dsh-mcp-doctor 把 MCP 配置里常见笔误和结构问题前移到编辑阶段,适合作为 DSH 工作流里的一小步静态检查。需要细节与更新时,以仓库 README 为准。

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

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

Xiaoye