将您的WHOOP健身数据通过模型上下文协议(MCP)连接到Claude Desktop
通过在Claude Desktop中使用自然语言查询,将您的WHOOP健身数据转化为可操作的见解。询问关于您的锻炼、恢复、睡眠模式等方面的问题——同时确保您的数据安全和私密。
🚀 新功能:尝试Smithery托管版本以实现零设置部署!
🔐 安全OAuth集成 - 使用加密本地存储安全连接WHOOP账户
🏃 完整数据访问 - 锻炼、恢复、睡眠、周期和用户资料信息
🤖 自然语言查询 - 用普通英语询问Claude关于您的健身数据
⚡ 智能缓存 - 通过智能数据缓存优化性能
🛡️ 隐私优先 - 所有数据都保留在您的机器上,从不发送给第三方
🔄 自动令牌刷新 - 自动认证更新的无缝体验
选项A:Smithery托管(推荐初学者)
选项B:本地安装(高级用户)
git clone https://github.com/romanevstigneev/whoop-mcp-server.git
cd whoop-mcp-server
pip install -r requirements.txt
运行交互式设置:
python setup.py
这将:
如果交互式设置不起作用,您可以手动获取WHOOP令牌:
打开WHOOP OAuth页面: 👉 点击此处授权WHOOP访问
授权您的账户:
read:profile - 访问您的用户资料信息read:workout - 访问锻炼数据read:recovery - 访问恢复数据read:sleep - 访问睡眠数据offline - 刷新令牌以持续访问复制授权码:
ABC123...XYZ789(更长)交换代码以获取令牌:
python -c "
import sys
sys.path.insert(0, './src')
from auth_manager import TokenManager
import requests
# 在这里粘贴您的授权码
auth_code = 'YOUR_AUTHORIZATION_CODE_HERE'
# 交换令牌
url = f'https://personal-integrations-462307.uc.r.appspot.com/api/get-tokens/{auth_code}'
response = requests.get(url, timeout= 30)
if response.status_code == 200:
token_data = response.json()
if token_data.get('success'):
# 保存令牌
token_manager = TokenManager()
token_manager.save_tokens(token_data)
print('✅ 令牌保存成功!')
else:
print('❌ 令牌交换失败')
else:
print(f'❌ HTTP错误:{response.status_code}')
"
验证设置:
python -c "
import sys
sys.path.insert(0, './src')
from whoop_client import WhoopClient
client = WhoopClient()
print(f'✅ 认证状态:{client.get_auth_status()}')
"
添加到您的Claude Desktop设置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\\Claude\\claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"whoop": {
"command": "/opt/miniconda3/bin/python",
"args": ["/path/to/whoop-mcp-server/src/whoop_mcp_server.py"],
"env": {
"PYTHONPATH": "/path/to/whoop-mcp-server/src"
}
}
}
}
⚠️ 重要提示:使用完整的Python路径(通过which python3找到)
添加配置后,重启Claude Desktop以加载WHOOP服务器。
配置完成后,您可以向Claude提问:
get_whoop_profile获取您的WHOOP用户资料信息。
get_whoop_workouts获取锻炼数据,可选过滤器:
start_date (YYYY-MM-DD)end_date (YYYY-MM-DD)limit (结果数量)get_whoop_recovery获取恢复数据,可选过滤器:
start_date (YYYY-MM-DD)end_date (YYYY-MM-DD)limit (结果数量)get_whoop_sleep获取睡眠数据,可选过滤器:
start_date (YYYY-MM-DD)end_date (YYYY-MM-DD)limit (结果数量)get_whoop_cycles获取生理周期(每日数据),可选过滤器:
start_date (YYYY-MM-DD)end_date (YYYY-MM-DD)limit (结果数量)get_whoop_auth_status检查认证状态和令牌信息。
clear_whoop_cache清除缓存数据以强制重新调用API。
环境变量(可选):
LOG_LEVEL:日志级别(DEBUG, INFO, WARNING, ERROR)LOG_FILE:日志文件路径(默认:仅控制台)| 功能 | Smithery托管 | 本地安装 |
|---|---|---|
| 设置时间 | ⚡ 2分钟 | ⏱️ 10-15分钟 |
| 复杂度 | 🟢 初学者友好 | 🟡 技术设置所需 |
| 维护 | ✅ 零(自动更新) | 🔧 手动更新需要 |
| 性能 | 🚀 优化托管 | 💻 取决于本地设置 |
| 隐私 | 🌐 托管平台 | 🔒 完全本地 |
| 依赖项 | ❌ 无 | 🐍 Python, 包, OAuth |
| 故障排除 | 📞 平台支持 | 🛠️ 自助服务 |
whoop-mcp-server/
├── src/ # Python本地安装
│ ├── whoop_mcp_server.py # 主MCP服务器
│ ├── whoop_client.py # WHOOP API客户端
│ ├── auth_manager.py # 令牌管理
│ └── config.py # 配置
├── smithery/ # TypeScript源文件
│ └── src/
│ ├── index.ts # Smithery MCP服务器
│ ├── whoop-client.ts # TypeScript WHOOP客户端
│ └── types.ts # 类型定义
├── storage/ # 本地安装仅
│ ├── tokens.json # 加密令牌(自动生成)
│ └── .encryption_key # 加密密钥(自动生成)
├── package.json # Node.js依赖项(Smithery)
├── smithery.yaml # Smithery配置(根目录需要)
├── tsconfig.json # TypeScript配置
├── setup.py # 交互式设置脚本
└── requirements.txt # Python依赖项
python setup.py重新授权python setup.py获取新令牌"command": "python"为"command": "/opt/miniconda3/bin/python"(使用which python3找到)~/Library/Application Support/Claude/claude_desktop_config.json(不是.claude.json)/Users/username/whoop-mcp-server/src/whoop_mcp_server.pytail -f ~/Library/Logs/Claude/mcp-server-whoop.log服务器自动使用刷新令牌刷新过期令牌。如果失败,您需要重新授权:
python setup.py
日志默认写入控制台。要记录到文件:
export LOG_FILE="/path/to/whoop-mcp.log"
export LOG_LEVEL="INFO"
此项目根据MIT许可发布 - 查看LICENSE文件了解详情。
这是一个非官方的WHOOP集成。它使用官方WHOOP API,但未得到WHOOP的认可。