使用说明
🏃 WHOOP MCP服务器
通过模型上下文协议(MCP)将您的WHOOP健身数据连接到Claude Desktop
通过Claude Desktop中的自然语言查询,将您的WHOOP健身数据转化为可操作的见解。询问有关你的锻炼、恢复、睡眠模式等问题,同时确保你的数据安全和私密。
🚀 新:试试 Smithery托管版本 用于零设置部署!
✨ 特性
🔐 安全OAuth集成 -与加密本地存储的安全WHOOP帐户连接
🏃 完成数据访问 -锻炼、恢复、睡眠、周期和个人资料信息
🤖 自然语言查询 -用简单的英语向克劳德询问你的健身数据
⚡ 智能缓存 -通过智能数据缓存优化性能
🛡️ 隐私第一 -所有数据都保留在您的计算机上,从不发送给第三方
🔄 自动令牌刷新 -自动身份验证续订的无缝体验
🚀 快速开始
🎯 选择部署方法
选项A:Smithery托管(推荐给初学者)
- ✅ 零安装复杂性
- ✅ 自动更新和维护
- ✅ 企业级主机
- ➡️ 开始使用Smithery
选项B:本地安装(高级用户)
- ✅ 完全控制和隐私
- ✅ 无外部依赖关系
- ✅ 自定义和扩展
- ➡️ 继续下面的本地设置
📦 本地安装
1.先决条件
- Python 3.8+
- 克劳德桌面
- 活跃的WHOOP帐户
2.安装
git clone https://github.com/romanevstigneev/whoop-mcp-server.git
cd whoop-mcp-server
pip install -r requirements.txt
3.设置
选项A:交互式设置(推荐)
运行交互式安装程序:
python setup.py
这将:
- 打开浏览器进行WHOOP OAuth授权
- 在本地安全地保存您的代币
- 提供Claude桌面配置
选项B:手动WHOOP OAuth设置
如果交互式设置不起作用,您可以手动获取WHOOP令牌:
-
打开WHOOP OAuth页面: 👉 点击此处授权WHOOP访问
-
授权您的帐户:
- 使用您的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 # Paste your authorization code here auth_code = 'YOUR_AUTHORIZATION_CODE_HERE' # Exchange for tokens 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'): # Save tokens token_manager = TokenManager() token_manager.save_tokens(token_data) print('✅ Tokens saved successfully!') else: print('❌ Token exchange failed') else: print(f'❌ HTTP Error: {response.status_code}') " -
验证设置:
python -c " import sys sys.path.insert(0, './src') from whoop_client import WhoopClient client = WhoopClient() print(f'✅ Auth status: {client.get_auth_status()}') "
4.配置克劳德桌面
添加到您的Claude桌面设置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %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)
5.重新启动克劳德桌面
添加配置后,重新启动Claude Desktop以加载WHOOP服务器。
💡 使用示例
配置后,您可以询问Claude:
- “显示我的WHOOP个人资料”
- “我这周锻炼了什么?”
- “我的康复趋势如何?”
- “显示我过去7天的睡眠数据”
- “我的HRV是什么样子的?”
- “将我的恢复情况与上个月进行比较”
🛠️ 可用工具
get_whoop_profile
获取您的WHOOP用户资料信息。
get_whoop_workouts
使用可选过滤器获取锻炼数据:
start_date(年-月-日)end_date(年-月-日)limit(结果数量)
get_whoop_recovery
使用可选筛选器获取恢复数据:
start_date(年-月-日)end_date(年-月-日)limit(结果数量)
get_whoop_sleep
使用可选过滤器获取睡眠数据:
start_date(年-月-日)end_date(年-月-日)limit(结果数量)
get_whoop_cycles
使用可选过滤器获取生理周期(每日数据):
start_date(年-月-日)end_date(年-月-日)limit(结果数量)
get_whoop_auth_status
检查身份验证状态和令牌信息。
clear_whoop_cache
清除缓存的数据以强制执行新的API调用。
🔐 安全
- 令牌加密:所有令牌在静止时都使用AES加密进行加密
- 本地存储:代币存储在您的机器上,从不发送给第三方
- 安全权限:令牌文件具有受限权限(600)
- 自动刷新:令牌过期时会自动刷新
📊 数据缓存
- 智能缓存:API响应缓存5分钟以提高性能
- 速率限制:遵守WHOOP API限制的内置速率限制
- 高速缓存控制:可手动清除缓存
🔧 配置
环境变量(可选):
LOG_LEVEL:日志记录级别(调试、信息、警告、错误)LOG_FILE:日志文件路径(默认:仅控制台)
🆚 部署比较
| 特点 | Smithery主办 | 本地安装 |
|---|---|---|
| 设置时间 | ⚡ 2分钟 | ⏱️ 10-15分钟 |
| 复杂性 | 🟢 初学者友好 | 🟡 需要技术设置 |
| 维护 | ✅ 零(自动更新) | 🔧 需要手动更新 |
| 演出 | 🚀 优化托管 | 💻 取决于本地设置 |
| 隐私 | 🌐 托管平台 | 🔒 完全本地化 |
| 依赖项 | ❌ 无 | 🐍 Python、包、OAuth |
| 故障排除 | 📞 平台支持 | 🛠️ 自助服务 |
📁 文件结构
whoop-mcp-server/
├── src/ # Python local installation
│ ├── whoop_mcp_server.py # Main MCP server
│ ├── whoop_client.py # WHOOP API client
│ ├── auth_manager.py # Token management
│ └── config.py # Configuration
├── smithery/ # TypeScript source files
│ └── src/
│ ├── index.ts # Smithery MCP server
│ ├── whoop-client.ts # TypeScript WHOOP client
│ └── types.ts # Type definitions
├── storage/ # Local installation only
│ ├── tokens.json # Encrypted tokens (auto-generated)
│ └── .encryption_key # Encryption key (auto-generated)
├── package.json # Node.js dependencies (Smithery)
├── smithery.yaml # Smithery configuration (root required)
├── tsconfig.json # TypeScript configuration
├── setup.py # Interactive setup script
└── requirements.txt # Python dependencies
🐛 故障排除
“没有可用的有效访问令牌”
- 跑
python setup.py重新授权 - 检查您的WHOOP帐户是否处于活动状态
“身份验证失败”
- 您的令牌可能已过期,无法刷新
- 跑
python setup.py获取新代币
“超出费率限制”
- 请稍等片刻,然后再提出更多请求
- 考虑使用缓存数据或降低请求频率
Claude Desktop看不到服务器
- 使用完整的Python路径:更改
"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.py - 检查日志:
tail -f ~/Library/Logs/Claude/mcp-server-whoop.log - 配置更改后重新启动Claude Desktop
🔄 令牌刷新
服务器使用刷新令牌自动刷新过期的令牌。如果失败,您需要重新授权:
python setup.py
📝 日志记录
默认情况下,日志会写入控制台。要登录到文件,请执行以下操作:
export LOG_FILE="/path/to/whoop-mcp.log"
export LOG_LEVEL="INFO"
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
⚠️ 免责声明
这是与WHOOP的非官方集成。它使用官方的WHOOP API,但未得到WHOOP的认可。
📞 支持
- 检查上面的故障排除部分
- 在GitHub上打开一个问题
- 查阅WHOOP API文件,网址:https://developer.whoop.com/
🎯 路线图
- []历史数据分析
- []自定义日期范围查询
- []数据导出功能
- []Webhook支持实时更新
- []高级分析和见解