使用说明
Whoop MCP服务器
用于访问Whoop健身数据的模型上下文协议(MCP)服务器。将您的WHOOP生物特征数据集成到Claude、LLM和其他MCP兼容应用程序中。
特征
- 综合概述 -您的所有日常指标都在一次通话中
- 睡眠分析 -深入了解睡眠表现和质量
- 恢复指标 -HRV、RHR和恢复贡献者
- 应变追踪 -心率区域和活动导致的日间疲劳
- 健康寿命 -生物年龄和衰老速度指标
快速开始
- 克隆存储库:
git clone https://github.com/yourusername/whoop-mcp.git
cd whoop-mcp
- 创建一个
.env使用您的WHOOP凭据进行归档:
echo "WHOOP_EMAIL=your-email@example.com" > .env
echo "WHOOP_PASSWORD=your-password" >> .env
echo "WHOOP_CLIENT_ID=your-whoop-client-id" >> .env
echo "PORT=3000" >> .env
或者设置为环境变量:
export WHOOP_EMAIL='your-email@example.com'
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 flag会自动从您的 .env 文件。
- 查看日志:
docker logs -f whoop-mcp
- 停止容器:
docker stop whoop-mcp
Docker镜像基于Bun Alpine官方镜像。容器包括用于监视服务器状态的健康检查。
Smithery部署
此服务器配置为与 史密瑟里,一个用于部署MCP服务器的平台。在Smithery部署时:
-
通过查询参数进行配置:Smithery将您的凭据作为查询参数传递给
/mcp端点(定义于smithery.yaml):whoopEmail-您的Whoop帐户电子邮件whoopPassword-您的Whoop帐户密码mcpAuthToken-可选身份验证令牌
-
自动配置:在Smithery上运行时,服务器会自动从查询参数中提取这些参数,因此您不需要手动设置环境变量。
-
部署按钮:使用上面的铁路部署按钮进行快速部署,或按照以下步骤操作 Smithery的文件 其他部署选项。
这 smithery.yaml 存储库根目录中的文件定义了Smithery用于安全收集凭据的配置模式。
配置
凭据配置
服务器支持两种提供凭据的方法:
-
查询参数 (Smithery使用):将凭据作为查询参数传递给
/mcp端点whoopEmail-您的Whoop帐户电子邮件whoopPassword-您的Whoop帐户密码mcpAuthToken-可选身份验证令牌
-
环境变量 (用于本地/Docker部署):
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
WHOOP_EMAIL |
是 | - | 您的Whoop帐户电子邮件 |
WHOOP_PASSWORD |
是 | - | 您的Whoop帐户密码 |
WHOOP_CLIENT_ID |
是 | - | 您的Whoop API客户端ID |
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
视窗: %APPDATA%/Claude/claude_desktop_config.json
无身份验证(本地开发)
{
"mcpServers": {
"whoop": {
"command": "bun",
"args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
"env": {
"WHOOP_EMAIL": "your-email@example.com",
"WHOOP_PASSWORD": "your-password"
}
}
}
}
带身份验证(推荐)
{
"mcpServers": {
"whoop": {
"command": "bun",
"args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
"env": {
"WHOOP_EMAIL": "your-email@example.com",
"WHOOP_PASSWORD": "your-password",
"MCP_AUTH_TOKEN": "your-secret-token-here"
}
}
}
}
替换 /absolute/path/to/whoop-mcp/ 此目录的实际路径。
可用工具
服务器提供五个主要工具来访问您的Whoop数据:
hub_get_概述
在单个API调用中检索特定日期的全面Whoop概览数据。
参数:
date(可选)-YYYY-MM-DD格式的日期。默认为今天。
退货:
- 循环信息:周期ID、日期、日期显示、睡眠状态
- 实时指标:恢复评分、日间疲劳、睡眠时间、消耗的卡路里
- 仪表:主屏幕上的所有得分仪
- 活动:今天的活动有分数和次数
- 关键统计数据:心率变异性、相对心率、最大摄氧量、呼吸频率、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?"
呼_睡眠
检索详细的睡眠分析和性能指标。
参数:
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?"
呼_ get恢复
检索全面的恢复深度分析,包括贡献者和趋势。
参数:
date(可选)-YYYY-MM-DD格式的日期。默认为今天。
退货:
- 恢复分数(0-100%)
- 恢复贡献者:
- 心率变异性
- 静息心率(RHR)
- 呼吸频率
- 睡眠性能
- 趋势指标与30天基线
- 个性化教练见解
示例用法:
"What's my recovery score today?"
"Show me my recovery analysis for yesterday"
"How is my HRV trending compared to my baseline?"
百日咳杆菌
检索全面的应变深度分析,包括贡献者、活动和趋势。
参数:
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?"
hub_get-healthspan
检索全面的健康范围分析,包括WHOOP年龄(生物年龄)和衰老速度指标。
参数:
date(可选)-YYYY-MM-DD格式的日期。默认为今天。
退货:
- WHOOP年龄(生物年龄)
- 年龄状态(年轻、相同、年长与实际年龄)
- 与实际年龄相差的年份
- 衰老速度(例如,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
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT-有关详细信息,请参阅LICENSE文件