关于 Whoop Mcp
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
http://localhost:3000/mcpclaude mcp add --transport http whoop http://localhost:3000/mcp{"mcpServers":{"whoop":{"type":"http","url":"http://localhost:3000/mcp"}}}在 Cursor 中打开{"servers":{"whoop":{"type":"http","url":"http://localhost:3000/mcp"}}}在 VS Code 中打开{"mcpServers":{"whoop":{"type":"http","url":"http://localhost:3000/mcp"}}}{"mcpServers":{"whoop":{"serverUrl":"http://localhost:3000/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Whoop MCP 服务
用于访问 Whoop 健身数据的模型上下文协议(MCP)服务。将你的 WHOOP 生物特征数据集成到 Claude、大模型及其他兼容 MCP 的应用中。
功能
- 全面概览 - 一次调用即可获取所有每日指标
- 睡眠分析 - 深入了解睡眠表现和质量
- 恢复指标 - HRV、RHR 和恢复影响因素
- 负荷追踪 - 每日负荷、心率区间和活动
- 健康寿命 - 生理年龄和衰老速度指标
快速开始
- 克隆仓库:
git clone https://github.com/yourusername/whoop-mcp.git
cd whoop-mcp
- 创建包含 WHOOP 凭据的
.env文件:
echo "[email protected]" > .env
echo "WHOOP_PASSWORD=your-password" >> .env
echo "PORT=3000" >> .env
或者将其设为环境变量:
export WHOOP_EMAIL='[email protected]'
export WHOOP_PASSWORD='your-password'
- 安装依赖项:
bun install
- 启动服务:
bun run start
或者在开发时启用热重载:
bun run dev
服务默认运行在 http://localhost:3000/mcp。
Docker 部署
- 创建包含凭据的
.env文件:
cp .env.example .env
# Edit .env with your actual credentials
- 构建 Docker 镜像:
docker build -t whoop-mcp .
- 运行容器:
docker run -d \
--name whoop-mcp \
whoop-mcp
--env-file .env 标志会自动从 .env 文件加载所有环境变量。
- 查看日志:
docker logs -f whoop-mcp
- 停止容器:
docker stop whoop-mcp
Docker 镜像基于官方 Bun Alpine 镜像。容器包含健康检查,用于监控服务状态。
Smithery 部署
此服务已配置为可与 Smithery 配合使用。Smithery 是一个用于部署 MCP 服务的平台。在 Smithery 上部署时:
-
通过查询参数配置:Smithery 会将你的凭据作为查询参数传递给
/mcp端点(在smithery.yaml中定义):whoopEmail- 你的 Whoop 账户邮箱whoopPassword- 你的 Whoop 账户密码mcpAuthToken- 可选的身份验证令牌
-
自动配置:在 Smithery 上运行时,服务会自动从查询参数中提取这些信息,因此你无需手动设置环境变量。
-
部署按钮:使用上方的 Railway 部署按钮快速部署,或参阅 Smithery 文档了解其他部署选项。
仓库根目录中的 smithery.yaml 文件定义了 Smithery 用于安全收集凭据的配置架构。
配置
凭据配置
服务支持两种提供凭据的方式:
-
查询参数(Smithery 使用):将凭据作为查询参数传递给
/mcp端点whoopEmail- 你的 Whoop 账户邮箱whoopPassword- 你的 Whoop 账户密码mcpAuthToken- 可选的身份验证令牌
-
环境变量(用于本地/Docker 部署):
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
WHOOP_EMAIL | 是 | - | 你的 Whoop 账户邮箱 |
WHOOP_PASSWORD | 是 | - | 你的 Whoop 账户密码 |
MCP_AUTH_TOKEN | 否 | - | MCP 请求的可选身份验证令牌 |
PORT | 否 | 3000 | 服务端口 |
服务会优先检查查询参数;如果未提供,则回退到环境变量。
可选身份验证
为防止未经授权的访问者访问你的 MCP 服务,可以设置 MCP_AUTH_TOKEN 环境变量。设置后,所有发往 /mcp 端点的请求都必须包含匹配的 Bearer 令牌:
export MCP_AUTH_TOKEN='your-secret-token-here'
或者将其添加到 .env 文件中:
echo "MCP_AUTH_TOKEN=your-secret-token-here" >> .env
客户端必须在 Authorization 标头中包含令牌:
curl -X POST http://localhost:3000/mcp \
-H "Authorization: Bearer your-secret-token-here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
注意: 如果未设置 MCP_AUTH_TOKEN,服务将接受所有请求(适用于本地开发)。
与 Claude Desktop 配合使用
将此配置添加到 Claude Desktop 配置文件中:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
不进行身份验证(本地开发)
{
"mcpServers": {
"whoop": {
"command": "bun",
"args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
"env": {
"WHOOP_EMAIL": "[email protected]",
"WHOOP_PASSWORD": "your-password"
}
}
}
}
进行身份验证(推荐)
{
"mcpServers": {
"whoop": {
"command": "bun",
"args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
"env": {
"WHOOP_EMAIL": "[email protected]",
"WHOOP_PASSWORD": "your-password",
"MCP_AUTH_TOKEN": "your-secret-token-here"
}
}
}
}
将 /absolute/path/to/whoop-mcp/ 替换为此目录的实际路径。
可用工具
此服务提供五种主要工具,用于访问你的 Whoop 数据:
whoop_get_overview
通过一次 API 调用,获取指定日期的全面 Whoop 概览数据。
参数:
date(可选)- 日期,格式为 YYYY-MM-DD。默认为今天。
返回:
- 周期信息:周期 ID、日数、日期显示、睡眠状态
- 实时指标:恢复评分、当日负荷、睡眠时长、消耗的卡路里
- 仪表盘:主屏幕上的所有评分仪表盘
- 活动:今天的活动及评分和时间
- 关键统计数据:HRV、RHR、VO2 Max、呼吸频率、步数及 30 天趋势
- 日志:日志填写状态
示例用法:
"Can you check my Whoop data for today?"
"What was my recovery score on 2024-01-15?"
"Show me my Whoop stats from yesterday"
"How many steps did I take and what were my activities today?"
whoop_get_sleep
获取详细的睡眠分析和表现指标。
参数:
date(可选)- 日期,格式为 YYYY-MM-DD。默认为今天。
返回:
- 睡眠表现评分
- 实际睡眠时长与所需时长
- 睡眠规律性
- 睡眠效率
- 高睡眠压力百分比
- 个性化洞察和建议
示例用法:
"How did I sleep last night?"
"What's my sleep performance for October 27?"
"Why is my sleep score low today?"
whoop_get_recovery
获取全面的恢复深度分析,包括影响因素和趋势。
参数:
date(可选)- 日期,格式为 YYYY-MM-DD。默认为今天。
返回:
- 恢复评分(0-100%)
- 恢复影响因素:
- 心率变异性(HRV)
- 静息心率(RHR)
- 呼吸频率
- 睡眠表现
- 与 30 天基准相比的趋势指标
- 个性化教练洞察
示例用法:
"What's my recovery score today?"
"Show me my recovery analysis for yesterday"
"How is my HRV trending compared to my baseline?"
whoop_get_strain
获取全面的负荷深度分析,包括影响因素、活动和趋势。
参数:
date(可选)- 日期,格式为 YYYY-MM-DD。默认为今天。
返回:
- 负荷评分及目标和最佳范围
- 负荷影响因素:
- 心率区间 1-3
- 心率区间 4-5
- 力量活动时长
- 步数
- 今天的活动及各自的负荷评分
- 与 30 天基准相比的趋势指标
- 个性化教练洞察
示例用法:
"What's my strain score today?"
"Show me my strain analysis and activities"
"How much time did I spend in heart rate zones 4-5?"
"Did I reach my optimal strain target?"
whoop_get_healthspan
获取全面的健康寿命分析,包括 WHOOP Age(生理年龄)和衰老速度指标。
参数:
date(可选)- 日期,格式为 YYYY-MM-DD。默认为今天。
返回:
- WHOOP Age(生理年龄)
- 年龄状态(与实际年龄相比:更年轻、相同或更年长)
- 与实际年龄的差值(年)
- 衰老速度(例如,0.5x 表示衰老速度低于平均水平)
- 与上一时段的比较
- 健康寿命测量的每周日期范围
示例用法:
"What's my WHOOP Age?"
"Show me my biological age and healthspan data"
"How fast am I aging compared to average?"
"Am I aging slower or faster than my chronological age?"
工作原理
此服务会自动处理身份验证:
- 首次请求时使用你的电子邮件和密码登录
- 保存访问令牌(有效期为 24 小时)
- 在令牌过期前自动重新进行身份验证
- 重新进行身份验证后重试失败的请求
安全
最佳实践
- 切勿提交
.env文件或分享 WHOOP 凭据 - 服务仅在内存中存储 Whoop 身份验证令牌(令牌会在 24 小时后过期)
- 将服务暴露给网络或不受信任的客户端时,请使用
MCP_AUTH_TOKEN - 为
MCP_AUTH_TOKEN生成强随机令牌(例如,使用openssl rand -hex 32) - 在生产环境或网络中运行时,务必设置
MCP_AUTH_TOKEN
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT——详情请参阅 LICENSE 文件
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。