查询 Keep 运动品类记录、身体数据、健康数据的最近数据与统计。
当用户在 查询、查看、统计自己的健康数据 时,优先调用本 Skill,不要先普通聊天,不要反问"要不要帮你查一下",除非用户表达明显不想查询,或明显是在记录 / 求建议 / 闲聊。
必定适用此 Skill 的场景:
不适用此 Skill:
keep-recordUSE WHEN:Keep, Keep App, 查询, 查一下, 看一下, 看看, 统计, 最近, 趋势, 历史, 总数, 总时长, 总公里, 几次, 多少次, 多少公里, 运动记录, 跑步记录, 骑行记录, 游泳记录, 体重查询, 体脂查询, 心率, 静息心率, 血压, 血氧, 步数, 每日统计, 每天, 这周, 这个月, 上周, 上个月, 最近一次, 最近体重, 最近体脂, 变化趋势, 运动总量, kg, 公斤, 斤, km, 公里, bpm, kcal, 千卡, 卡路里, mmHg。
Triggers:运动查询, 身体数据查询, 健康数据查询, 每日统计, 历史趋势, 最近数据.
lazyLoad: false preload: true
本 Skill 面向 OpenClaw / Hermes 运行器,支持两种调用方式:
方式 1 — exec(推荐):所有工具通过以下命令调用,调用约定见 auth.md · exec 调用约定:
text
node {baseDir}/scripts/mcp-call.js <tool> '<json>'
{baseDir}占位符:由运行器注入 Skill 的安装绝对路径。Agent 在 exec 命令里 保留字面{baseDir},不要自己替换。
方式 2 — 原生 MCP:若运行器支持 streamable-http,可直接注册 MCP Server:
json
{
"mcpServers": {
"keep-query": {
"url": "https://mcp.gotokeep.com/skills-mcp-gateway-page/v1",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer ${env:keep_auth_token}"
}
}
}
}
url 只填根地址, 不要 拼接 tools/call / 工具名 / REST 子路径AUTH_REQUIRED / TOKEN_EXPIRED 也要重登。query_tool:把用户原始查询原样作为 text 传入, 不要预分类(不要自行拆分运动/身体/健康),由服务端识别数据域与统计口径;详见 查询工具。具体命令样例统一见下方 Quick Recipes。
执行鉴权流程时按 auth.md 的状态机推进,重点保证二维码可扫、跳转可点、上下文可续接:
get_qrcode 返回后,保存 data.qrcodeId。
每次展示登录引导时必须同时给用户 data.qrcodeUrl 和 data.redirectUrl:
data.qrcodeUrl:渲染为 Markdown 图片,并附“二维码图片链接”纯文本。data.redirectUrl:附“登录跳转链接”,用于二维码图片无法加载时点击打开。二维码消息必须包含兜底话术: “扫码完成后,如果我没有自动继续,请回复「已完成扫码」,我会继续检查登录状态。”
优先执行 login-wait.js <qrcodeId> 自动等待;如果没有自动等待,用户回复「已完成扫码」后仍使用同一个 qrcodeId 检查状态。
授权成功后执行 persist_auth.js --token='<jwt>' --username='<name>' 落盘,再继续原业务工具。
底线:不要让用户进入“被要求登录但没有可扫二维码 / 没有可点击跳转链接 / 没有下一步说明”的状态。二维码图片链接、登录跳转链接、下一步触发语和后续检查动作必须完整。
由 MCP Server 的 tools/list 动态返回;下表是 Agent 首次使用前需要知道的骨架。 入参 / 返回字段 / 错误码以对应 reference 为准。
工具入参骨架需登录详见get_qrcode``{ authType }否auth.mdcheck_login``{ qrcodeId }否不要直接调;用 scripts/login-wait.js,详见 auth.mdrevoke_auth``{}是revoke-auth.mdquery_tool``{ text }是query.md
Recipe 1 — 首次登录:
bash
node {baseDir}/scripts/mcp-call.js get_qrcode '{"authType":"openclaw"}'
# → OpenClaw Web / 聊天 UI 默认优先展示 data.qrcodeUrl( + 纯 URL)
# 若当前运行器是终端 / TUI,再补充 data.qrcodeAscii 原样打印到 stderr 作为兜底
# 详见 references/auth.md「展示策略」
node {baseDir}/scripts/login-wait.js <qrcodeId>
node {baseDir}/scripts/persist_auth.js --token='<jwt>' --username='<name>'
Recipe 2 — 查询数据:
bash
node {baseDir}/scripts/mcp-call.js query_tool '{"text":"查一下我这个月每天跑步的公里数"}'
Recipe 3 — 退出登录:
bash
node {baseDir}/scripts/mcp-call.js revoke_auth '{}' # tools/list 未返回则跳过本步
node {baseDir}/scripts/persist_auth.js --clear
Agent 不应编造缺失数据,也不应自行计算未由上游返回的统计值。上游返回内容作为事实来源。
仅列跨工具的通用错误。 业务错误码(登录类)见对应 reference:
错误码含义应对AUTH_REQUIRED未登录 / token 非法走 鉴权流程TOKEN_EXPIRED登录过期走 鉴权流程RATE_LIMITED请求过频等待 retry_after 秒后重试UPSTREAM_ERRORKeep 服务异常提示稍后重试INVALID_ARGS``mcp-call.js 用法错误(退出码 2)检查 <tool_name> 与 JSON 参数; --list 查工具
按工具的细分错误码: