dsh-coros:把高驰官方 MCP 接进 DeepSeek Harness

前言

在 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 访问令牌。

核心功能

资料中可核对的能力包括:

  1. 工具面:睡眠、HRV、静息心率、恢复、训练负荷;活动与 FIT;锻炼与训练计划的增删改查与排程等(当前约 34 个工具,以服务端为准)。
  2. 零运行时 npm 依赖:仅使用 Node.js 内置模块(fetch、crypto、fs、http 等)。
  3. 自包含 OAuth:动态客户端注册 + PKCE(S256) + COROS 网关 CLI 登录会话;login-start / login-finish 分进程完成,不打开本地监听端口。
  4. 令牌本地存放:默认 ~/.dsh/coros-mcp/<region>/token.json(权限 0600),不在 profile 配置里,README 写明不打印日志、无遥测、数据路径不经第三方中转服务器。
  5. 桥接层修正 schema:对 COROS tools/list 里顶层 $defs/$ref 做内联,避免部分提供方拒绝类似 createScheduledWorkout 的指针错误。
  6. 刷新令牌轮换:每次刷新都会轮换 refresh token;桥与 login CLI 用跨进程文件锁串行化刷新。
  7. DSH 升级兼容:engines.dsh 为无底下限 >=0.2.1-rc.1;若未来 DSH 变更 MCP 客户端 JS API,插件可回退通过 Cordis Loader 挂载同一条 MCP 行。
  8. 可脱离 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 回调服务。

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

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

小夜