Whoop健身数据服务器

Whoop MCP Server 是一个将Whoop健身数据(恢复、睡眠、训练负荷、锻炼)暴露给Claude,作为每日训练教练使用的服务。

  • by cbellbell-spin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 cbellbell-spin/whoop-mcp

使用说明

Whoop MCP服务器

MCP服务器,将您的Whoop健身数据(恢复、睡眠、压力、锻炼)暴露给Claude,供其作为日常训练教练使用。

先决条件

  • Python 3.10+
  • A. Whoop开发者 已注册应用程序的帐户
  • Whoop应用程序的客户端ID和客户端密码

Whoop开发人员仪表板设置

  1. 首选 developer.hop.com 并登录
  2. 创建新应用程序
  3. 设置 重定向URI 致: http://localhost:8080/callback
  4. 启用这些作用域: read:recovery, read:cycles, read:sleep, read:profile, read:body_measurement
    • 注: read:workout 和 offline 可能无法在所有开发人员应用程序上使用。服务器优雅地处理缺失的作用域。
  5. 注意你的 客户端ID 和 客户端密钥

安装

cd whoop-mcp
pip install -r requirements.txt

授权(一次性设置)

导出您的应用凭据并运行安装脚本:

export WHOOP_CLIENT_ID="your-client-id"
export WHOOP_CLIENT_SECRET="your-client-secret"
python scripts/setup_auth.py

这将打开一个浏览器,进入Whoop的授权页面。在您批准后,令牌将被加密并存储在 ~/.whoop_mcp/.如果 offline 范围已授予,令牌自动刷新。否则,请在令牌过期时重新运行此脚本。

Claude桌面/协作MCP配置

将此添加到您的Claude MCP配置中:

{
  "mcpServers": {
    "whoop": {
      "command": "python",
      "args": ["/absolute/path/to/whoop-mcp/src/whoop_server.py"],
      "env": {
        "WHOOP_CLIENT_ID": "your-client-id",
        "WHOOP_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

替换 /absolute/path/to/whoop-mcp 使用机器上的实际路径。

可用工具

工具 说明
whoop_check_auth 验证令牌是否有效且未过期
whoop_get_latest_recovery 最近恢复评分、心率变异性、静息心率、血氧饱和度
whoop_get_recovery_range 日期范围的恢复数据
whoop_get_latest_sleep 最后一次睡眠时出现阶段性崩溃
whoop_get_sleep_range 日期范围内的睡眠数据
whoop_get_latest_strain 当前循环应变,平均/最大HR,千焦
whoop_get_strain_range 过去N天的平均应变
whoop_get_workouts 带有运动ID、压力、HR区域的锻炼
whoop_get_profile 用户资料和身体测量
whoop_get_training_summary 汇总辅导快照(从这里开始)

示例提示

连接后,您可以问Claude以下问题:

  • “我昨天恢复得怎么样了?”
  • “我上周累了多少?”
  • “我有过度训练的趋势吗?”
  • “在过去的两周里,我的HRV发生了什么变化?”
  • “我昨晚的睡眠阶段是什么?”
  • “将我的压力与过去7天的恢复情况进行比较。”
  • “我今天应该做剧烈运动吗?”

培训教练工作流程

通过调用启动每个会话 whoop_get_training_summary 了解恢复状态、最近的压力负荷、睡眠质量和训练准备评估的概述。

令牌存储

令牌以加密方式存储在 ~/.whoop_mcp/:

  • .encryption_key --Fernet加密密钥(chmod 600)
  • tokens.enc --加密的OAuth令牌(chmod 600)
  • 目录权限:chmod 700

如果令牌刷新失败,请重新运行 python scripts/setup_auth.py.