前言¶
在 DeepSeek Harness(DSH)里让智能体读睡眠、HRV、静息心率、恢复与训练负荷,或拉取活动与 FIT、管理训练计划,通常要面对两类麻烦:一是 COROS(高驰)云端 MCP 走 HTTPS 且要带会过期的 OAuth Bearer;二是 DSH 侧 MCP 客户端习惯 stdio 和相对静态的握手方式。自己手写 cordis.patch.yml、挂本地回调端口、维护 token 刷新,工作量大,DSH 升级后还可能出现插件被静默跳过的问题。
dsh-coros-mcp(社区目录条目 xsnnnnnn/dsh-coros)由维护者 xsnnnnnn 发布,归类为联网工具。它把官方 COROS MCP 端点桥进 DSH:包内自带 stdio↔HTTP 桥、设备端 OAuth 登录与刷新,当前端点约暴露 34 个 mcp__coros__* 工具(随服务端变更可能增减)。下文按「是什么 → 能做什么 → 怎么装 → 怎么登录与配置 → 注意点」说明。
这是什么¶
一句话:在 DSH 里安装一个插件,即可通过自包含桥接访问高驰官方 MCP,无需额外 npm 依赖、无需在 profile 里写绝对路径、登录流程不监听本地端口。
数据路径大致如下:
DeepSeek Harness
└─ dsh-coros-mcp(宿主插件)
└─ 注册 DSH MCP 客户端(serverName=coros)
│ JSON-RPC / stdio
▼
lib/proxy.mjs(token 缓存、带文件锁的刷新、tools/list 的 $ref 内联)
│ HTTPS POST + Authorization: Bearer
▼
官方 COROS MCP(README 示例为中国区 https://mcpcn.coros.com/mcp)
桥的存在,是因为 DSH MCP 客户端走 stdio,而 COROS 端点需要 OAuth 2.0 访问令牌。
核心功能¶
资料中可核对的能力包括:
- 工具面:睡眠、HRV、静息心率、恢复、训练负荷;活动与 FIT;锻炼与训练计划的增删改查与排程等(当前约 34 个工具,以服务端为准)。
- 零运行时 npm 依赖:仅使用 Node.js 内置模块(
fetch、crypto、fs、http等)。 - 自包含 OAuth:动态客户端注册 + PKCE(S256) + COROS 网关 CLI 登录会话;
login-start/login-finish分进程完成,不打开本地监听端口。 - 令牌本地存放:默认
~/.dsh/coros-mcp/<region>/token.json(权限 0600),不在 profile 配置里,README 写明不打印日志、无遥测、数据路径不经第三方中转服务器。 - 桥接层修正 schema:对 COROS
tools/list里顶层$defs/$ref做内联,避免部分提供方拒绝类似createScheduledWorkout的指针错误。 - 刷新令牌轮换:每次刷新都会轮换 refresh token;桥与 login CLI 用跨进程文件锁串行化刷新。
- DSH 升级兼容:
engines.dsh为无底下限>=0.2.1-rc.1;若未来 DSH 变更 MCP 客户端 JS API,插件可回退通过 Cordis Loader 挂载同一条 MCP 行。 - 可脱离 DSH:
lib/proxy.mjs为标准 MCP stdio 服务,任意 MCP 客户端可配置调用。
包版本(package.json):1.0.2。许可证:MIT。Node ≥ 20;DSH ≥ 0.2.1-rc.1。README 徽章注明测试 42 passing。
安装与启用¶
环境要求:DeepSeek Harness ≥ 0.2.1-rc.1,Node.js ≥ 20(由 DSH 运行时提供)。
README 给出的安装方式如下(将 <DSH> 换成本机 DSH 安装路径;profile 名按你实际使用修改,示例为 desktop):
# 自 GitHub 仓库安装(README 亦推荐 tarball 分享场景)
& '<DSH>\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add 'github:xsnnnnnn/dsh-coros'
# 本地目录链接(开发)
& '<DSH>\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add 'D:\path\to\dsh-coros-mcp'
亦可用 Release 中的 dsh-coros-mcp-<version>.tgz,或简写:
dsh plugin --profile desktop add 'github:xsnnnnnn/dsh-coros'
安装后,在 Settings → Plugins 中启用 dsh-coros-mcp,必要时重启 DSH。
若你曾手动在 profile 的 cordis.patch.yml 里配置 id: mcp-coros 的 @deepseek-ai/dsh-mcp-client 行,迁移时应先备份再删除手动行;否则与插件重复注册相同 mcp__coros__* 工具名会导致注册失败。
说明:通过 GitHub/tarball 安装不会自动升级插件本身;有新版本时需重新执行 dsh plugin add <new tgz> 等安装步骤。已有登录令牌与登录状态不受 DSH 小版本升级影响(除非出现两种注册路径均失效的破坏性 API 变更,则需安装对应新构建的插件)。
登录与典型用法¶
登录在包目录下用 Node 调用 lib/login.mjs(将 <package> 换成插件解包路径):
node '<package>\lib\login.mjs' login-start # 输出或打开授权 URL
node '<package>\lib\login.mjs' login-finish # 完成会话并缓存 token
node '<package>\lib\login.mjs' login-status # 离线查看状态
node '<package>\lib\login.mjs' refresh # 立即刷新
node '<package>\lib\login.mjs' logout # 删除本地 token 与 pending 文件
要点:
- 访问令牌有效期约 30 天;每次刷新都会轮换 refresh token,旧值立即失效,故刷新需通过
token.json.lock串行。 - 区域默认从缓存推断,可用
--region cn|eu|us或配置覆盖。 - 若本机已有官方 COROS CLI 缓存
~/.coros-mcp-skill-gateway-ts/<region>/token.json,可作为回退读取;新登录写入插件自有路径后优先生效。
在 DSH 会话中,启用插件并登录成功后,智能体侧可见前缀为 mcp__coros__* 的工具,按 COROS MCP 文档调用即可(具体工具名与参数以 tools/list 为准)。
独立 MCP 客户端(非 DSH)可配置:
{
"mcpServers": {
"coros": { "command": "node", "args": ["D:\\path\\to\\dsh-coros-mcp\\lib\\proxy.mjs"] }
}
}
诊断示例:
node lib\proxy.mjs --status
可选配置¶
在 bundle 行的 config: 上可覆盖下表字段(未列出的以 README 为准):
| 字段 | 默认值 | 含义 |
|---|---|---|
serverName |
coros |
工具前缀 mcp__coros__* |
cacheRoot |
$DSH_HOME/coros-mcp |
令牌缓存根目录 |
region |
推断 | cn / eu / us |
issuer |
按区域 | 覆盖 OAuth issuer |
mcpUrl |
<issuer>/mcp |
覆盖 MCP 端点 |
nodePath |
自动检测 | 启动桥用的 Node 可执行文件 |
requestTimeoutMs |
30000 |
请求 COROS 超时 |
toolCallTimeoutMs |
120000 |
DSH 侧单次 tool call 超时 |
failOnStartupError |
false |
桥启动失败时是否阻断 profile 启动 |
enabled |
true |
false 时保持已安装但不连接 |
环境变量(优先级更低):COROS_MCP_CACHE_ROOT、COROS_MCP_REGION、COROS_MCP_ISSUER、COROS_MCP_URL、COROS_MCP_TIMEOUT_MS。
适用场景与注意¶
适合谁:已在用或计划用 DSH 做训练/恢复相关智能体工作流,需要稳定访问高驰官方 MCP、且希望 OAuth 与桥接逻辑集中在一个插件包内的开发者。
权限与安全:插件随当前 DSH 进程权限运行,会向 COROS 官方端点发起 HTTPS 请求;安装前宜自行查看仓库源码与 MIT 许可证,确认是否符合你的合规要求。令牌仅存本机上述路径,profile 配置备份不会包含 token 文件。
生态说明:DSH 强调「一切皆插件」;社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无 README 所述的官方从属关系,不宜理解为官方应用商店。
经过上面的步骤,你可以在 DSH 内用统一前缀调用高驰训练与健康数据接口,而无需自建 HTTP 桥或本地 OAuth 回调服务。