mcpField
P
pp-whoop

pp-whoop

github.com/mvanhorn其他2.1k83 次安装今天更新
代码仓库

关于 pp-whoop

pp-whoop 是通过 `whoop-pp-cli` 操作 WHOOP API 的 Agent 技能,涵盖用户、活动、恢复、周期和合作伙伴操作,并支持结构化输出与可重复执行。

主要功能

  1. 01读取睡眠、训练、周期、恢复和用户数据
  2. 02执行受信任合作伙伴操作
  3. 03JSON 输出与字段筛选
  4. 04预览请求并路由结果
  5. 05保存和复用命名配置

适用场景

  1. 01获取用户睡眠和训练历史
  2. 02查询个人资料或身体测量数据
  3. 03自动执行定期 WHOOP 命令行查询
  4. 04处理合作伙伴服务请求和测试数据

MCP 相关

文档说明可安装 `whoop-pp-mcp` 二进制文件,并通过 `claude mcp add` 向 Claude 注册。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-whoop

安装后在 Claude Code 中输入/pp-whoop确认已加载。

详细介绍

Whoop — Printing Press CLI

前置条件:安装 CLI

此技能使用 whoop-pp-cli 二进制文件。**调用此技能中的任何命令前,必须确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 使用 Printing Press 安装程序进行安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install whoop --cli-only
    
  2. 验证:whoop-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更新版本):

go install github.com/mvanhorn/printing-press-library/library/devices/whoop/cmd/whoop-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。在验证成功之前,不要执行此技能中的命令。

命令参考

activity — 管理活动

  • whoop-pp-cli activity get-sleep-by-id — 获取指定 ID 的睡眠记录
  • whoop-pp-cli activity get-sleep-collection — 分页获取用户的所有睡眠记录。结果按开始时间降序排列。
  • whoop-pp-cli activity get-workout-by-id — 获取指定 ID 的锻炼记录
  • whoop-pp-cli activity get-workout-collection — 分页获取用户的所有锻炼记录。结果按开始时间降序排列。

activity-mapping — 管理活动映射

  • whoop-pp-cli activity-mapping <activityV1Id> — 查询指定 V1 活动 ID 对应的 V2 UUID

cycle — 管理周期

  • whoop-pp-cli cycle get-by-id — 获取指定 ID 的周期
  • whoop-pp-cli cycle get-collection — 分页获取用户的所有生理周期。结果按开始时间降序排列。

partner — 可信 WHOOP 合作伙伴操作的端点

  • whoop-pp-cli partner add-test-data — 生成测试用户和实验室检查申请数据,用于合作伙伴集成测试。此端点仅在……中可用
  • whoop-pp-cli partner get-lab-requisition-by-id — 根据唯一标识符检索实验室检查申请及其关联的服务请求。发起请求的合作伙伴……
  • whoop-pp-cli partner get-service-request-by-id — 根据唯一标识符检索服务请求。发起请求的合作伙伴必须是该服务请求的所有者。
  • whoop-pp-cli partner request-token — 使用合作伙伴客户端凭据换取访问令牌。
  • whoop-pp-cli partner update-service-request-status — 更新服务请求任务的业务状态。发起请求的合作伙伴必须是该服务请求的所有者。
  • whoop-pp-cli partner upload-diagnostic-report-results — 为服务请求创建包含结果的诊断报告。发起请求的合作伙伴必须是……

recovery — 管理恢复情况

  • whoop-pp-cli recovery — 分页获取用户的所有恢复记录。结果按相关睡眠的开始时间降序排列。

user — 用于获取用户个人资料和测量数据的端点。

  • whoop-pp-cli user get-body-measurement — 获取已验证用户的身体测量数据(身高、体重、最大心率)。
  • whoop-pp-cli user get-profile-basic — 获取已验证用户的基本个人资料信息(姓名、电子邮件)。
  • whoop-pp-cli user revoke-oauth-access — 撤销用户授予的访问令牌。如果关联的 OAuth 客户端配置为接收 Webhook,它……
查找合适的命令

知道要做什么,但不知道该用哪个命令时,可以直接询问 CLI:

whoop-pp-cli which "<capability in your own words>"

which 会根据自然语言功能查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可信的匹配项,此时请改用 --help 或使用范围更窄的查询。

身份验证设置

存储访问令牌:

whoop-pp-cli auth set-token YOUR_TOKEN_HERE

或者将 WHOOP_OAUTH 设置为环境变量。

运行 whoop-pp-cli doctor 验证设置。

Agent 模式

在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可管道传输 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留部分字段。点分隔路径可深入嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这对缩小上下文至关重要:

    whoop-pp-cli activity-mapping mock-value --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求,但不发送

  • 支持离线 — 如果本地 SQLite 存储可用,同步/搜索命令可使用该存储

  • 非交互式 — 绝不提示输入,每项输入都通过标志传入

  • 明确重试语义 — 仅当已存在的创建操作应视为成功时才使用 --idempotent;仅当缺少删除目标应视为成功时才使用 --ignore-missing

响应封装

从本地存储或 API 读取数据的命令会将输出包装在来源信息封装中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 判断数据来自实时 API 还是本地存储。仅当 stdout 是终端时,才会将便于阅读的 N results (live) 摘要打印到 stderr;通过管道传输的使用者/Agent 会在 stdout 上获得纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有任何不妥之处时,请记录下来:

whoop-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
whoop-pp-cli feedback --stdin < notes.txt
whoop-pp-cli feedback list --json --limit 10

条目会保存在本地 ~/.whoop-pp-cli/feedback.jsonl 中。只有设置了 WHOOP_FEEDBACK_ENDPOINT,且传入了 --send 或设置了 WHOOP_FEEDBACK_AUTO_SEND=true 时,条目才会通过 POST 发送。默认行为仅保存在本地。

记录让你感到意外的地方,而不是提交错误报告。简短、具体、一行即可:这才是会不断累积的部分。

输出交付

每个命令都接受 --deliver <sink>。除 stdout 外,或改为将输出发送到指定目标,以便 Agent 无需手动通过管道传输即可路由命令结果。支持三种目标:

目标效果
stdout默认;仅写入 stdout
file:<path>将输出以原子方式写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(使用 --compact 时为 application/json 或 application/x-ndjson)

不支持的协议会被拒绝,并返回注明受支持协议的结构化错误。Webhook 请求失败时会返回非零退出码,并在 stderr 上记录 URL 和 HTTP 状态码。

命名配置

配置是保存的一组标志值,可在多次调用中重复使用。当计划任务中的 Agent 每次运行都以相同配置调用同一命令时,可使用配置——即 HeyGen 的 “Beacon” 模式。

whoop-pp-cli profile save briefing --json
whoop-pp-cli --profile briefing activity-mapping mock-value
whoop-pp-cli profile list --json
whoop-pp-cli profile show briefing
whoop-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,以便可进行自省的 Agent 在运行时发现这些配置。

退出码

代码含义
0成功
2用法错误(参数错误)
3找不到资源
4需要身份验证
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 whoop-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并添加 --agent)

安装 MCP 服务

从此 CLI 已发布的公共库条目或预构建版本安装 MCP 二进制文件,然后注册:

claude mcp add whoop-pp-mcp -- whoop-pp-mcp

验证:claude mcp list

直接使用

  1. 检查是否已安装:which whoop-pp-cli 如果未找到,请提供安装选项(参见此技能开头的先决条件)。
  2. 根据上文的独特功能和命令参考,选择与用户查询最匹配的命令。
  3. 使用 --agent 标志执行:
    whoop-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,请查看子命令帮助:whoop-pp-cli <command> --help。

评论

支持 Markdown