DeepSeek Harness MCP 配置:接入 Sequential Thinking

基于 DeepSeek Harness 0.1.1-rc.2 与官方 Sequential Thinking MCP Server 2026.7.4,讲清 DSH MCP 的配置、工具命名、验证、隐私和清理方法。

社区整理已复核原始来源
DSH
0.1.1-rc.2
系统
Windows / macOS / Linux
风险
medium

先看结论

DeepSeek Harness(DSH)通过随发行版提供的 @deepseek-ai/dsh-mcp-client 连接外部 MCP Server,并把发现的 MCP Tools 注册为模型可调用的原生工具。DSH 默认没有启用任何 MCP Server;一个 MCP Client 配置实例只连接一个 Server。本文使用官方 Sequential Thinking Server 作为低权限示例,演示 stdio 配置、工具命名、验证、停用和清理。

本文锁定 DSH 0.1.1-rc.2@modelcontextprotocol/server-sequential-thinking@2026.7.4。编辑部审阅了两边的固定提交源码,但没有安装、启动或调用该第三方 Server,因此证据等级是“源码已审阅”,不是“编辑实测”。MCP 官方仓库也把这些 Server 定位为教学和参考实现,而不是无需评估即可投入生产的成品。

这套连接由三部分组成

不要把 MCP Server 当成 DSH 社区插件。本文实际组合的是三种不同对象:

对象作用本文版本
DeepSeek Harness运行 Agent、Profile 和工具系统0.1.1-rc.2
DSH MCP Client启动或连接 Server,把 Tools 桥接到 ctx.tools随 DSH 发行版提供
Sequential Thinking MCP Server通过一个工具记录、修正和分支分析步骤2026.7.4

MCP Client 是 DSH 官方桥接插件,Sequential Thinking 是独立的外部进程。关于 DSH 插件、Agent Skill 和 MCP 的职责区别,先看插件、Skills 与 MCP 的能力边界;本文只解决“怎样让 DSH 连接一个 MCP Server”。

为什么选择 Sequential Thinking

固定版本只注册一个顺序思考工具。它用于把复杂问题拆成多步,允许修正前面的判断、建立分支并动态调整预计步骤数。源码给该工具声明了只读、非破坏、幂等和不访问开放世界的提示;处理状态保存在 Server 进程内存中,没有在固定版本源码里发现文件写入、外部网络请求或账号凭据要求。

它仍不是“零风险”:每一步 thought 默认会写到 Server 的标准错误输出,工具参数和结果也可能保留在 DSH Session 历史中。本文配置 DISABLE_THOUGHT_LOGGING: 'true',只关闭 Server 自己的终端思考日志;它不会清除 DSH 已记录的工具事件,也不会改变模型服务商的数据处理边界。

数据怎样流动

用户任务
→ DSH Agent 判断是否调用工具
→ mcp__sequential-thinking__sequentialthinking
→ DSH MCP Client 通过 stdio 发送 tools/call
→ Sequential Thinking 在进程内存记录步骤或分支
→ 返回步骤编号、总步数、是否继续、分支和历史长度
→ DSH 把结果交回 Agent 并写入当前 Session 事件
→ Agent 继续分析或输出最终答案

这条路径不等于模型的所有推理都会交给 MCP,也不保证每个任务都会调用工具。工具是否被模型选择,取决于任务、模型、当前工具集和上下文。Sequential Thinking 返回的是结构化进度信息,最后的用户答案仍由 DSH 中的模型产生。

第一步:检查环境和 Profile

先确认 Node.js 与 npx 可用:

node --version
npx --version

DSH 的配置根目录优先使用 $DSH_HOME,未设置时默认是 ~/.dsh。本文以 web Profile 为例,用户配置层位于:

$DSH_HOME/profiles/web/cordis.patch.yml

未设置 DSH_HOME 时,对应 ~/.dsh/profiles/web/cordis.patch.yml。修改前先复制备份,不要覆盖文件里已有的模型、端口或其他插件配置。Profile 的 patch 是 YAML 数组;新增 MCP 行应与已有顶层条目并列。

还没有可用 Profile 时,先按DeepSeek Harness 安装与 Web UI 指南初始化 Web 模式。第一次测试应使用独立 Profile 和不含生产资料的工作区。

第二步:写入 macOS 或 Linux 配置

把下面一行追加到测试 Profile 的 cordis.patch.yml。包版本必须留在 args 中,不要改成没有版本的 latest

- id: mcp-sequential-thinking
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    transport: stdio
    serverName: sequential-thinking
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-sequential-thinking@2026.7.4'
    env:
      DISABLE_THOUGHT_LOGGING: 'true'
    failOnStartupError: true

这里没有把 Server 安装成 DSH 社区插件。DSH 启动该 MCP Client 行时,会把 npx 作为本地子进程命令,并通过 stdio 与包提供的可执行入口通信。第一次解析尚未缓存的包时,npx 仍会访问 npm Registry;离线环境、代理或 Registry 策略可能让启动失败。

failOnStartupError: true 是本文有意设置的诊断选项。DSH 默认值是 false,初始连接失败时可能继续激活这一行但不注册工具;新手会误以为配置已经生效。设置为 true 后,初始连接或工具同步失败会直接拒绝插件激活并显示错误。

Windows 配置为什么不同

DSH 的 stdio transport 直接启动 command,不会进行 shell 插值。官方 Sequential Thinking 文档在 Windows 示例中通过 cmd /c 调用 npx,因此 Windows 建议使用:

- id: mcp-sequential-thinking
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    transport: stdio
    serverName: sequential-thinking
    command: cmd
    args:
      - /c
      - npx
      - -y
      - '@modelcontextprotocol/server-sequential-thinking@2026.7.4'
    env:
      DISABLE_THOUGHT_LOGGING: 'true'
    failOnStartupError: true

不要把整条命令写成一个字符串,也不要把 API Key、Cookie 或 Token 拼进 args。这个示例本身不需要凭据。

第三步:先检查配置树

在真正启动 Server 前,可以让 DSH 打印合成后的 Profile 配置:

npx @deepseek-ai/dsh@0.1.1-rc.2 --profile web --dump-config

确认输出中只有一个 id: mcp-sequential-thinkingserverName 没有与其他 MCP Client 重复,并且包名仍锁定 2026.7.4--dump-config 用于查看最终配置层,不会启动应用中的 MCP Server;它适合先发现 YAML 缩进、模块解析和覆盖层问题。

检查无误后再按原来的方式启动该 Profile。编辑正在运行的 cordis.patch.yml 会触发配置热重载;第一次配置时更推荐先停止测试实例,审核 Diff 后再启动,避免保存文件的一瞬间就运行尚未核对的命令。

第四步:确认真正的 DSH 工具名

固定版本 Server 源码注册的原始工具名是:

sequentialthinking

DSH 会在前面加上 mcp__<serverName>__,因此本文配置对应的公开名称是:

mcp__sequential-thinking__sequentialthinking

官方 README 的标题仍写成 sequential_thinking,但 2026.7.4 实际源码注册的是不带下划线的 sequentialthinking。排查时应以固定版本的工具列表和源码为准,不要因为没有看到 mcp__sequential-thinking__sequential_thinking 就判断连接失败。

如果 Server 发布的名称包含 DSH 不允许的字符或总长度超过 64,MCP Client 会规范化名称并追加确定性 hash;本文这个名称不需要该回退处理。

第五步:使用可观察的最小任务验证

连接后,用一个需要比较、修正和约束检查的任务,而不是简单问候:

请比较“直接升级数据库”和“先建立只读副本再升级”两种方案。
先列出假设,再检查停机时间不得超过 5 分钟这一约束;如果原方案不满足,请修正方案。
最后只输出推荐方案、主要风险和回退条件。

判断是否成功时看工具活动,而不是只看最终文字:

  1. DSH 工具列表或调用记录出现 mcp__sequential-thinking__sequentialthinking
  2. 任务过程中出现一次或多次该工具调用;
  3. 参数包含 thoughtNumbertotalThoughtsnextThoughtNeeded
  4. Server 返回历史长度和是否继续等结构化结果;
  5. 最终回答与任务约束一致。

模型也可能在不调用该工具的情况下直接回答。自然语言答案看起来合理,不能单独证明 MCP 连接成功;反过来,工具出现一次也不等于复杂规划质量已经得到保证。

配置字段怎样理解

字段本文值作用与边界
transportstdio启动本地子进程;不是远程 HTTP 服务
serverNamesequential-thinking决定公开工具命名空间;1~32 个允许字符且必须唯一
commandnpxcmd在 Agent 沙箱外运行的受信任命令
args固定版本包名直接传给命令,不经过 shell 插值
env关闭思考日志合并到 DSH 清理后的子进程环境;不要放无关密钥
toolCallTimeoutMs省略使用 DSH 默认单次调用超时 60000 ms
failOnStartupErrortrue初始连接失败时明确停止该行激活
reconnect省略使用 DSH 默认自动重连和指数退避策略

DSH 同时支持 streamable-http,但本文选定的 Server 官方常规入口是 stdio,因此不提供未经核验的远程 URL。以后接入 HTTP Server 时,应额外审核 TLS、域名、Header 凭据、日志、数据保存位置和服务端主体。

隐私和权限边界

Sequential Thinking 的固定版本源码把输入保存在当前 Server 进程的内存数组中,并可维护按 branchId 分组的分支;进程退出后没有发现它主动写入专属数据文件。默认情况下,它会把每一步思考格式化后写到 stderr。本文关闭这项日志,是为了减少终端、服务日志和截图中的内容暴露。

仍需注意:

  • MCP Server 进程运行在 DSH Agent 文件沙箱之外,不能用 Agent 的 workspace-write 边界替代 Server 审核;
  • 工具名称、描述和输入 Schema 会增加模型上下文成本;
  • 工具参数和结果可能进入 DSH Session,任务中不要放密码、Token、客户资料或未脱敏日志;
  • Server 的只读 annotation 是能力提示,不是操作系统强制沙箱;
  • 模型请求仍会经过你选择的 Provider,MCP 本地处理不代表整条任务链完全离线。

处理真实项目之前,先按安全工作区准备指南缩小工作区和凭据范围,并阅读DSH 权限与沙箱指南

常见错误与真实版本差异

启动时提示找不到 npx

先确认 Node.js 和 npx 在启动 DSH 的同一个环境中可见。Windows 使用 cmd /c npx 配置;macOS 和 Linux 不要把 command 与全部参数拼成一个字符串。

DSH 启动了,但看不到 MCP 工具

检查 failOnStartupError 是否仍为默认 false、YAML 行是否被后面的覆盖层替换、serverName 是否重复,以及 npx 是否能访问 Registry。运行 --dump-config 只能证明配置树存在,不能证明 Server 已经完成初始化和 listTools()

为什么 Server 显示版本 0.2.0

2026.7.4 发布包的 package.json 版本是 2026.7.4,但固定源码中的 MCP serverInfo.version 仍硬编码为 0.2.0。这是上游版本报告差异,不代表 npx 自动安装了 0.2.0。判断安装目标时以锁定的包 spec、npm 包元数据和 release commit 为准。

为什么文档工具名和 DSH 中的不一样

README 使用 sequential_thinking,固定源码实际注册 sequentialthinking。DSH 再添加 Server 命名空间后,本文预期的是 mcp__sequential-thinking__sequentialthinking

为什么只调用一次,没有形成多步分析

Server 不会强迫模型调用固定次数。换用真正需要约束检查、修正或分支比较的任务,并查看工具记录。不要用“你好”或单一事实问答验证顺序思考工具。

Sequential Thinking 会让答案一定正确吗

不会。它提供一个记录和修正步骤的工具,不验证外部事实,也不替代测试、数据来源、代码审查或人工决策。输出仍可能遗漏假设或得出错误结论。

停用、回退与清理

需要停用时,先从同一个 Profile 的 cordis.patch.yml 删除完整的 mcp-sequential-thinking 条目,或恢复修改前的备份。热重载或重启 Profile 后,MCP Client 会 dispose 当前连接并注销该 Server 的工具命名空间。

固定版本没有声明专属磁盘数据目录,也不需要撤销账号或 API Key。npx 可能在共用 npm 缓存中保留下载内容;不要为了清理一个示例而递归删除整个 npm 缓存或 $DSH_HOME。如果测试任务包含敏感内容,还要单独检查当前 Session、终端日志、服务日志和截图;删除 MCP 配置不会自动删除已经产生的 DSH Session 记录。

回退后再次运行:

npx @deepseek-ai/dsh@0.1.1-rc.2 --profile web --dump-config

确认配置树中已没有该条目,再启动 Profile 检查 mcp__sequential-thinking__ 命名空间已经消失。

本文验证了什么,没有验证什么

本文完成了 DSH MCP Client、配置 Schema、连接重试、工具命名,以及 Sequential Thinking 2026.7.4 的 release、包元数据、README、工具注册、内存状态和日志行为审阅。没有实际下载 npm 包,没有启动 MCP Server,没有发送模型请求,也没有在 Windows、macOS 或 Linux 上完成端到端连接。

因此本文可以作为固定版本的配置候选和审阅清单,但不能替代你自己的隔离环境验证。DSH 或 Server 升级后,先重新检查包版本、工具名、日志开关、MCP 协议兼容性和已知问题,不要只改版本号后继续沿用旧结论。

来源与维护信息

本文根据以下原始资料整理。版本变化后,请以官方资料和页面标注的验证日期为准。