使用说明
哎呀,mcp
将LLM连接到您的MCP服务器 呐喊 数据——恢复、睡眠、锻炼、压力等等。
建于 FastMCP 和那个 世界卫生组织API v2.
备注:WHOOP开发者应用程序仅限于10名授权用户。
先决条件
- 拥有您账户数据的WHOOP会员资格
- WHOOP开发人员应用程序——在 developer-dashboard.whoop.com
- Python 3.10+和 紫外线
安装
git clone https://github.com/anaselmhamdi/whoop-mcp.git
cd whoop-mcp
uv sync
用法
远程(推荐)
部署时,服务器使用FastMCP的OAuthProxy。只需将URL添加到MCP客户端即可——身份验证通过WHOOP的OAuth流自动进行。
克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"whoop": {
"type": "http",
"url": "https://your-app.fly.dev/mcp/"
}
}
}
首次连接时,您的浏览器将打开WHOOP登录。授权后,工具立即可用。
本地
对于本地使用(stdio模式),请在 .env 文件:
cp .env.example .env
# Fill in WHOOP_CLIENT_ID, WHOOP_CLIENT_SECRET, WHOOP_ACCESS_TOKEN, WHOOP_REFRESH_TOKEN
uv run whoop-mcp
令牌自动刷新——当访问令牌过期时,客户端使用刷新令牌获取新的令牌,并将这两个令牌持久化回 .env.
克劳德桌面 (本地):
{
"mcpServers": {
"whoop": {
"command": "uv",
"args": ["run", "--directory", "/path/to/whoop-mcp", "whoop-mcp"]
}
}
}
使用MCP检查员进行测试
uv run fastmcp dev src/whoop_mcp/server.py
可用工具
| 工具 | 说明 |
|---|---|
get_profile |
获取用户资料(姓名、电子邮件) |
get_body_measurement |
获取身体测量值(身高、体重、最大心率) |
get_cycles |
列出有压力和心率的生理周期 |
get_cycle_by_id |
按ID获取单个周期 |
get_recovery_collection |
列出恢复分数(恢复百分比、HRV、RHR、SpO2) |
get_recovery_by_id |
获取单个恢复记录 |
get_sleep_collection |
列出睡眠记录(阶段、表现、呼吸频率) |
get_sleep_by_id |
获取一个睡眠记录 |
get_workout_collection |
列出训练(压力、心率区、距离) |
get_workout_by_id |
进行一次锻炼 |
列表工具接受可选参数:
start--要从中筛选的ISO-8601日期时间(例如。2024-01-01T00:00:00.000Z)end--ISO-8601日期时间要过滤到limit--要返回的最大记录数
部署
Fly.io
- 安装 flyctl
- 创建应用程序:
fly launch --no-deploy - 设置秘密:
cat .env | fly secrets import - 将您的Fly.io应用程序URL作为重定向URI添加到 WHOOP开发人员仪表板:
https://your-app.fly.dev/auth/callback - 部署:
fly deploy
CI/CD
GitHub操作工作流(.github/workflows/deploy.yml)推送时自动部署 main。要设置它,请执行以下操作:
- 获取Fly.io部署令牌:
fly tokens create deploy -x 999999h - 添加为
FLY_API_TOKEN在GitHub仓库的机密中(设置>机密>操作)
发展
uv sync # Install dependencies
uv run pytest # Run tests
uv run pytest -v # Run tests with output
许可证
麻省理工学院