前言¶
在 DeepSeek Harness(DSH)里做训练相关的智能体时,常见做法是单独跑 COROS 官方 CLI 或自建 MCP 服务,再在 Harness 里挂 MCP 客户端——OAuth 回调、令牌刷新和工具注册都要自己接。dsh-coros-gui 是社区维护的 DSH 插件,把 COROS 官方 OAuth 与 MCP 工具桥接进 Harness:浏览器里点一次登录,对话里即可按 coros_* 工具名调用活动、健康、负荷与训练计划等能力,并附带设置页与侧栏面板管理连接状态。
这是什么¶
插件全名 dsh-coros-gui,仓库 ppxinashin/dsh-coros-gui,维护者 ppxinashin,在 SkillHub 插件目录 中归类为「联网工具」。当前 package 版本为 0.1.0,许可证 MIT。
一句话定位:在 DSH 对话中通过浏览器 OAuth 登录 COROS 一次,之后 COROS MCP 工具以 coros_<tool> 形式注册到 Harness,模型可直接调用;未登录时仍可用少量引导与兜底工具。
核心功能¶
浏览器登录与区域¶
- 设置页或侧栏点「使用浏览器登录」,插件向 COROS 官方授权服务申请一次性登录会话,在浏览器完成授权后自动回调并保存令牌,无需手抄密码或回调 URL。
- 支持四个账号区域:全球、中国大陆、欧洲、美国;OAuth 发现会对齐区域(默认「全球」并自动发现授权集群)。
- 访问令牌到期前用刷新令牌自动续期;COROS 刷新令牌轮换已由插件处理。
对话内工具¶
登录后,COROS MCP 工具目录会注册为 coros_<name>(README 示例:coros_get_activities)。在 0.2.1-rc.3 上用真实 COROS 账号验证时,登录后成功注册并可用 34 个 COROS 工具。
未登录时固定提供:
| 工具 | 说明 |
|---|---|
coros_status |
连接状态、区域、可用工具数量 |
coros_login |
生成浏览器登录链接并等待授权 |
coros_call_tool |
用原始 MCP 工具名 + JSON 参数调用(兜底) |
设置页「COROS」可检索工具目录,展开可查看各工具参数的 JSON Schema。
原生 UI¶
遵循 DSH 插件规范:
- 设置页「COROS」:连接状态、账号区域、登录/取消/退出、工具目录;
- 会话侧栏快捷入口与浮层面板;
- 会话头部状态 chip 显示当前 COROS 连接状态。
UI 使用 DSH 主题 token(--dsw-*),适配明暗主题。
隐私与本地存储¶
令牌与客户端注册信息保存在 $DSH_HOME/coros-gui/state.json(默认 ~/.dsh/coros-gui/state.json),目录权限 0700、文件 0600、原子写入;不经过第三方服务器,请求直连 COROS 官方 OAuth / MCP 域名。退出登录会清除本地令牌。
授权协议与 COROS 官方 coros-mcp CLI 一致(授权码 + PKCE + 动态客户端注册 + CLI 登录会话轮询)。授权范围:openid offline_access mcp.tools。
安装与启用¶
要求:DeepSeek Harness 0.2.x(package.json 中 engines.dsh 为 >=0.2.0)。Node 需满足 ^22.19.0 || >=24.0.0。
方式一:本地目录(开发/自用)¶
桌面版可使用 app 内的 dsh-desktop-host/lib/cli.js 调用 DSH CLI:
dsh plugin --profile desktop add /path/to/dsh-coros-gui
安装后 DSH 会热加载插件;若无入口,重启一次 DSH 即可。
方式二:从 GitHub 安装¶
dsh plugin --profile <你的 profile> add github:ppxinashin/dsh-coros-gui
方式三:插件市场 / 插件管理器¶
插件包已声明 dsh.bundle.patch 与 dsh.client,可被插件管理器直接识别。
启用步骤:
- 打开侧栏底部 COROS,或「设置 → COROS」。
- 选择账号区域,点 使用浏览器登录。
- 在 COROS 授权页完成登录与授权,回到 DSH 后应显示「已连接」。
典型用法¶
在对话中直接用自然语言即可,README 给出的示例包括:
用 COROS 查一下我最近 7 天的跑步记录,按配速和心率帮我分析一下。
看看我这两周的睡眠和 HRV 变化,和训练量有什么关系?
我 8 周后要跑半马,基于我最近的训练给我排一个训练计划。
需要精确调用时,可在登录后让模型使用已注册的 coros_* 工具,或通过 coros_call_tool 传入原始 MCP 工具名与 JSON 参数。
适用场景与注意¶
适合谁:已在 DSH 0.2.x 上开发或使用智能体、希望把 COROS 运动/健康/训练计划数据放进同一会话、且接受浏览器 OAuth 一次授权的用户。
运行与权限:插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证,确认行为符合预期。
兼容性:
- 登录 RPC 仅在本机 loopback 绑定的 DSH Host 上启用;通过局域网或公网访问 DSH 时会提示不可用。
- 插件不实现 MCP Resources / Prompts,只桥接工具;COROS 侧工具集合由官方 MCP 服务决定,插件负责发现、命名规范化与参数 schema 清洗。
SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件为社区贡献,非官方内置能力。
结尾¶
dsh-coros-gui 把 COROS 训练数据、浏览器 OAuth 与 Harness 对话里的 MCP 工具调用收成一条路径:本地存令牌、对话里查活动与健康、必要时在设置页浏览完整工具目录。