内容
<!-- mcp-name: io.github.rajdeepmondaldotcom/whoop-mcp-server -->
# Whoop-MCP服务器
你的WHOOP显示给你图表。它无法回答“今天我应该努力训练吗”或“什么实际上影响了我的恢复”。这个服务器可以。
它连接你的WHOOP数据到Claude、ChatGPT和任何MCP客户端。你可以用简单的中文提问。它根据你自己的记录计算答案,并让AI解释。
[](https://github.com/rajdeepmondaldotcom/whoop-mcp-server/actions/workflows/ci.yml)
[](https://github.com/rajdeepmondaldotcom/whoop-mcp-server)
[](LICENSE)
[](https://modelcontextprotocol.io)
[](https://glama.ai/mcp/servers/rajdeepmondaldotcom/whoop-mcp-server)
```text
你:今天我应该努力训练吗?
AI:恢复率81%(绿色)。心率变异性正在上升。睡眠债务已清除。
你的7天负荷是28天基准的0.94倍。
你有条件进行更多的训练。
```
在你的机器上运行。只读。唯一的网络对等方是api.prod.whoop.com。无遥测。MIT。
## 你需要
- 一个WHOOP账户。任何会员资格都有效。
- [uv](https://docs.astral.sh/uv/) 或 pipx,用于安装一个命令行工具。
- 一个MCP客户端:Claude Desktop、Claude Code、Cursor、Windsurf、VS Code 或 ChatGPT。
开始前请注意一个限制。WHOOP没有共享的开发者应用程序,因此在设置过程中,您需要创建自己的免费应用程序。这需要大约两分钟的点击,这也是它默认私有的原因:您的令牌属于您的应用程序,在您的机器上,您的健康数据永远不会通过其他人的服务器路由。包括我的。
## 设置
安装工具:
```bash
uv tool install whoop-mcp-server
```
(`pipx install whoop-mcp-server` 也可以。)
然后运行一次性命令:
```bash
whoop-mcp-server setup
```
以下是按顺序发生的事情,以便您不会感到惊讶:
1. **你的WHOOP应用程序。** 向导打开WHOOP的开发者仪表板,并告诉您需要点击的内容:创建团队、创建应用程序、启用所有范围(包括`offline`)、将重定向URL设置为确切的`http://localhost:8765/callback`。表单需要一个隐私政策URL。使用此仓库的:`https://github.com/rajdeepmondaldotcom/whoop-mcp-server/blob/main/PRIVACY.md`。复制客户端ID和密钥,粘贴到终端中。它们存储在本地,权限为0600。
2. **授权。** 您的浏览器打开WHOOP的同意屏幕。批准它。令牌存储在`~/.whoop-mcp`中,然后自动刷新。您再也不需要这样做。
3. **证明。** 向导进行实时API调用,并打印您的实际最新恢复情况。如果配置不正确,您会在终端中发现,而不是在聊天窗口中。
4. **您的客户端。** 它检测Claude Desktop、Cursor、Windsurf、VS Code和Claude Code,并为您编写配置文件。在进行任何编辑之前,现有配置都会备份。如果Claude Desktop正在运行,向导会要求您先退出,因为Desktop会无声地覆盖配置编辑。 然后它启动配置的命令一次,并确认服务器回答。 “完成”意味着已验证,而不是充满希望。
重启您的客户端。问它:“昨晚我睡得怎么样?”然后问一个更好的问题:“给我这个季度的健康状况全貌。”
两个有用的附带事项。如果您想在连接任何内容之前查看工具的工作情况,`whoop-mcp-server serve --demo` 通过相同的管道提供150天的现实生成数据。如果以后出现问题,`whoop-mcp-server doctor` 会指出问题所在和解决方法。
## 你可以问
24种工具涵盖WHOOP API的每个公开用户可读端点,以及将记录转换为答案的分析层。
| 提问 | 工具 |
| --- | --- |
| “给我我的健康状况全貌” | `get_health_overview`:状态、趋势、训练负荷、记录和相关性,一次调用 |
| “我今天怎么样?” | `get_daily_summary`:恢复、睡眠、负荷、任意日期的锻炼 |
| “什么实际上影响了我的恢复?” | `get_correlations`:负荷与次日恢复、睡眠与恢复,带有普通读数 |
| “我是否过度训练?” | `get_strain_trends`:急性和慢性负荷,按运动分类 |
| “我的心率变异性是否正在改善?” | `get_recovery_trends`:方向、置信度、异常日 |
| “显示我的夜间心率曲线” | `get_sleep_stream`:每分钟心率和皮肤温度、最低点和时间;`include_raw=true` 保留WHOOP的原始流 |
| “这个月和上个月比怎么样?” | `compare_periods`:每个指标、改善或下降 |
| “我今年的记录?” | `get_personal_records`:最佳、最差、绿色连胜 |
| “导出所有内容” | `export_data`:完整收集历史记录到本地JSON和CSV,默认情况下带有原始记录 |
| 周网格、原始记录、个人资料 | `get_weekly_report`、`get_sleeps/workouts/cycles/recoveries`,按ID工具,带有`include_raw`、`get_profile(include_raw=true)` |
| “我有一个旧的WHOOP活动ID” | `get_activity_mapping`:将旧的v1活动ID映射到其v2 UUID |
| 连接问题 | `get_connection_status`、`connect_whoop_account` |
日期在任何地方都是纯中文:昨天、过去30天、本周、2年前、2026-05。
ChatGPT所需的`search`和`fetch`工具也已实现,以及4个资源和4个预制提示(`morning_readiness`、`weekly_review`、`sleep_coach`、`training_planner`)。
更多值得问的问题:[docs/PROMPTS.md](docs/PROMPTS.md)。
## 兼容
| 客户端 | 设置 |
| --- | --- |
| Claude Desktop | `whoop-mcp-server setup` 为您配置。无需终端:下载 `whoop-mcp-server.mcpb`,从 [最新版本](https://github.com/rajdeepmondaldotcom/whoop-mcp-server/releases/latest) 获取并打开它(需要安装 [uv](https://docs.astral.sh/uv/);演示模式在设置中可切换) |
| Claude Code | `claude mcp add whoop -- whoop-mcp-server serve`(设置也提供此选项) |
| Cursor | 通过设置自动配置,或 [](https://cursor.com/install-mcp?name=whoop&config=eyJjb21tYW5kIjoid2hvb3AtbWNwLXNlcnZlciIsImFyZ3MiOlsic2VydmUiXX0%3D) |
| Windsurf | 通过设置自动配置 |
| VS Code | 通过设置自动配置,或 [](https://insiders.vscode.dev/redirect/mcp/install?name=whoop&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22whoop-mcp-server%22%2C%22args%22%3A%5B%22serve%22%5D%7D) |
| ChatGPT | 远程连接器,请参见下文 |
| Docker | `docker build -t whoop-mcp-server . && docker run -i --rm -e WHOOP_MCP_DEMO=1 whoop-mcp-server`(挂载 `~/.whoop-mcp` 以获取真实数据) |
| 任意MCP客户端 | `command: whoop-mcp-server`,参数为 `["serve"]`。检查器:`npx @modelcontextprotocol/inspector whoop-mcp-server serve` |
<details>
<summary><b>ChatGPT设置</b></summary>
ChatGPT连接到远程MCP服务器,因此请公开HTTP传输并建立隧道:
```bash
whoop-mcp-server serve --transport http --port 8000 # 端点:/mcp
ngrok http 8000
```
然后在ChatGPT中:设置、应用程序和连接器、高级设置、启用开发者模式、创建一个连接器,网址为 `https://<your-tunnel>/mcp`,无需身份验证。
请注意:无身份验证的隧道意味着任何拥有该网址的人都可以读取您的健康数据。请保持网址私密并保持隧道短暂。Claude的标准输入/输出设置永远不会公开任何内容。
</details>
## 答案为何成立
模型可能占该产品的20%。其他80%是使数字正确。模型不擅长对90天的记录进行算术运算,因此该服务器先进行计算,然后让模型解释。
- 趋势线拟合到按日期排序的系列。WHOOP返回最新记录。拟合到达顺序会使每个趋势都读反了。
- 方向取决于指标的含义。心率变异性上升是改善。静息心率上升则不是。
- 记录根据其时区偏移落在日历日上。睡眠属于您醒来的早晨,即使您在旅行。
- WHOOP在每次刷新时都会旋转两个OAuth令牌。这里的刷新是序列化、保存然后使用,并在并发请求之间共享。重新运行身份验证可以在无需重启服务器的情况下恢复活动服务器。
它不能做的事情:WHOOP的公共API尚未提供Peak功能的端点,如压力监测器和健康跨度。当WHOOP发布它们时,它们会出现在此处。夜间传感器流并非针对每个帐户启用,该工具会报告这一点而不是失败。批量导出故意获取集合端点;原始睡眠流可通过`get_sleep_stream(include_raw=true)`获取。
105个测试,全部离线对抗伪造的WHOOP API。CI支持Python 3.10至3.13。
## 命令行界面
```text
whoop-mcp-server setup 引导式设置:应用程序、授权、自动配置客户端
whoop-mcp-server serve 运行服务器(--demo、--transport stdio|http|sse、--host、--port)
whoop-mcp-server status 配置和令牌状态
whoop-mcp-server doctor 诊断设置和连接性
whoop-mcp-server auth 可脚本化的OAuth流程
whoop-mcp-server logout 删除令牌(--revoke 也会撤销WHOOP上的令牌)
```
## 配置
`whoop-mcp-server setup`后无需任何配置。覆盖,按优先级顺序:进程环境变量、`./.env`、`~/.whoop-mcp/.env`、`~/.whoop-mcp/config.json`。
| 变量 | 默认值 | 目的 |
| --- | --- | --- |
| `WHOOP_CLIENT_ID` / `WHOOP_CLIENT_SECRET` | 无 | WHOOP应用程序凭证 |
| `WHOOP_REDIRECT_URI` | `http://localhost:8765/callback` | 必须与仪表板完全匹配 |
| `WHOOP_MCP_DEMO` | 关闭 | `1` 提供演示数据(与 `--demo` 相同) |
| `WHOOP_MCP_DIR` | `~/.whoop-mcp` | 令牌、配置、导出 |
| `WHOOP_MCP_TZ` | 系统时区 | IANA时区,用于“今天”和周边界 |
| `WHOOP_MCP_CACHE_TTL` / `WHOOP_MCP_TIMEOUT` | `60` / `30` | 秒 |
| `WHOOP_MCP_LOG_LEVEL` | `INFO` | 日志输出到stderr。stdout属于MCP |
| `WHOOP_ACCESS_TOKEN` | 无 | 用于测试的静态令牌,无需刷新 |
## 隐私
只读访问WHOOP。令牌存储在本地,权限为0600。唯一写入的是您请求的本地文件(`export_data`)和您触发的OAuth流程。有一点值得注意:聚合数据(如趋势和相关性)可能比单个记录更能揭示您的信息。请仅与您信任的AI客户端连接健康数据。完整政策:[PRIVACY.md](PRIVACY.md)。漏洞:[SECURITY.md](SECURITY.md)。
## 贡献
```bash
uv venv && uv pip install -e ".[dev]" && pytest && ruff check .
```
整个测试套件离线运行。[CONTRIBUTING.md](CONTRIBUTING.md) 列出了保持数据诚实的 invariants。架构的简要介绍:`client.py` 与WHOOP通信,`transform.py` 清洁记录,`summaries.py` 和 `analytics.py` 进行数学运算,`server.py` 暴露工具。`oauth.py` 和 `tokens.py` 拥有身份验证。`demo.py` 是生成的帐户。
## 故障排除
| 症状 | 修复 |
| --- | --- |
| “需要WHOOP授权” | `whoop-mcp-server setup`,或要求您的AI连接您的WHOOP账户 |
| 同意后重定向失败 | 仪表板重定向URI必须确切地为 `http://localhost:8765/callback` |
| `403 缺少范围` | 在应用程序上启用所有读取范围和 `offline`,然后重新运行 `whoop-mcp-server auth` |
| 客户端中缺少工具 | 重新运行 `whoop-mcp-server setup`,然后完全重启客户端 |
| 今日未显示恢复情况 | WHOOP在您醒来并同步后评分。摘要中已说明 |
| 睡眠流“不可用” | WHOOP并未为每个帐户提供此功能。夜间摘要仍然有效 |
| 其他问题 | `whoop-mcp-server doctor`,或在聊天中使用 `get_connection_status`,或 [打开问题](https://github.com/rajdeepmondaldotcom/whoop-mcp-server/issues) |
## 许可证
MIT。参见 [LICENSE](LICENSE)。不隶属于或得到WHOOP的认可。WHOOP是WHOOP, Inc.的商标。