快速结论
在目标配置中为每个 MCP 服务器添加一个 dsh-mcp-client 条目。先确认连接与工具发现,再验证真实调用;资源读取还要指定服务器名,连接成功不等于每项能力都可用。
- 官方文档要求每个 MCP 服务器使用独立的 dsh-mcp-client 配置条目与唯一 serverName。
- stdio 启动本地进程;Streamable HTTP 连接已运行的服务。
- 工具以 mcp__<serverName>__<tool> 命名,共享资源工具按配置的服务器作用域提供。
- 本文是配置与验收模板,未安装服务器或执行本机连接测试。
本次更新:10 月 9 日新增并核验来源;标清公告日期、可用范围与未实测部分。
MCP 可以把已有工具服务接到 Harness。本文依据官方 MCP 客户端文档整理最小配置与检查顺序,适用于已准备好服务的测试环境。以下是模板,不是本站已运行的接入结果。
1. 先选择传输方式
| 服务形态 | 传输方式 | 接入前确认 |
|---|---|---|
| 本机可执行程序 | stdio | 可执行路径、启动参数和工作目录 |
| 已运行的 MCP 服务 | streamable-http | 完整端点、认证方式和服务健康状态 |
Harness 负责连接、发现与调用;第三方服务的安装、数据库初始化和运行环境由该服务负责。先在服务自身的说明中完成准备,再写 Harness 配置。
2. 本地连接配置模板
在官方源码工作区建立测试 overlay,例如 scratch-mcp/cordis.yml。所有路径都要替换成实际值:
- insert:
- id: mcp-ops-demo
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: ops-demo
transport: stdio
command: '/absolute/path/to/approved-mcp-server'
args: []
env: {}
cwd: '/absolute/path/to/test-workspace'
在已完成源码安装与构建的仓库中,使用 pnpm dsh web --patch ./scratch-mcp/cordis.yml 启动。这个模板不会下载 MCP 服务器;command 必须指向已经准备好的程序。
远程连接改用 transport: streamable-http,提供实际 url 和需要的 headers,并移除 stdio 的进程字段。密钥通过受控配置或环境引用提供,不填入公开示例文件。
3. 分层检查成功与失败
第一层确认服务器连接与工具发现,查看是否出现 mcp__ops-demo__...。第二层用一个只读请求验证输入参数与实际结果,确认不是模型自行编造答案。第三层若服务支持资源,再列出并读取一个资源,核对来源和内容。
共享资源文档要求资源操作显式指定服务器名;没有资源能力的服务仍可提供工具,因此资源列表为空不一定意味着连接失败。当前文档也说明不支持资源订阅与更新通知,需要重新读取来获取新内容。
4. 排障从服务自身开始
工具没有出现时,检查程序能否启动、端点是否正确、凭据和作用域是否匹配。工具可见但调用失败时,再查参数、超时和服务日志。重连中的可见工具也可能暂时无法执行,不能把列表里仍有名称视为调用成功。
一次只接一个服务,并保留配置和一个可重复验证的任务。需要持久记忆的场景,可继续阅读官方第三方记忆示例,分别验证写入、新会话召回与结果使用。
参考资料
本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。