mcpField
W
Whoop Mcp

Whoop Mcp

远程服务
github.com/JedPattersonn健康医疗1352 周前更新
代码仓库

关于 Whoop Mcp

Whoop Mcp 是一个 MCP 服务,可将 WHOOP 健身和生物特征数据提供给 Claude、大模型及兼容应用。它分别提供每日概览、睡眠、恢复、负荷和健康寿命分析工具。

主要功能

  1. 01每日指标概览
  2. 02睡眠表现与质量
  3. 03恢复评分及影响因素
  4. 04负荷、活动与心率区间
  5. 05WHOOP Age 与衰老速度

适用场景

  1. 01查看每日 WHOOP 指标
  2. 02分析睡眠表现
  3. 03将恢复情况与 30 天基线比较
  4. 04查看健康寿命与生物年龄

MCP 相关

该服务向 MCP 客户端提供五种 WHOOP 数据工具,涵盖概览、睡眠、恢复、负荷和健康寿命分析。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址http://localhost:3000/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Whoop MCP 服务

用于访问 Whoop 健身数据的模型上下文协议(MCP)服务。将你的 WHOOP 生物特征数据集成到 Claude、大模型及其他兼容 MCP 的应用中。

部署到 Railway

功能

  • 全面概览 - 一次调用即可获取所有每日指标
  • 睡眠分析 - 深入了解睡眠表现和质量
  • 恢复指标 - HRV、RHR 和恢复影响因素
  • 负荷追踪 - 每日负荷、心率区间和活动
  • 健康寿命 - 生理年龄和衰老速度指标

快速开始

  1. 克隆仓库:
git clone https://github.com/yourusername/whoop-mcp.git
cd whoop-mcp
  1. 创建包含 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'
  1. 安装依赖项:
bun install
  1. 启动服务:
bun run start

或者在开发时启用热重载:

bun run dev

服务默认运行在 http://localhost:3000/mcp。

Docker 部署

  1. 创建包含凭据的 .env 文件:
cp .env.example .env
# Edit .env with your actual credentials
  1. 构建 Docker 镜像:
docker build -t whoop-mcp .
  1. 运行容器:
docker run -d \
  --name whoop-mcp \
  whoop-mcp

--env-file .env 标志会自动从 .env 文件加载所有环境变量。

  1. 查看日志:
docker logs -f whoop-mcp
  1. 停止容器:
docker stop whoop-mcp

Docker 镜像基于官方 Bun Alpine 镜像。容器包含健康检查,用于监控服务状态。

Smithery 部署

此服务已配置为可与 Smithery 配合使用。Smithery 是一个用于部署 MCP 服务的平台。在 Smithery 上部署时:

  1. 通过查询参数配置:Smithery 会将你的凭据作为查询参数传递给 /mcp 端点(在 smithery.yaml 中定义):

    • whoopEmail - 你的 Whoop 账户邮箱
    • whoopPassword - 你的 Whoop 账户密码
    • mcpAuthToken - 可选的身份验证令牌
  2. 自动配置:在 Smithery 上运行时,服务会自动从查询参数中提取这些信息,因此你无需手动设置环境变量。

  3. 部署按钮:使用上方的 Railway 部署按钮快速部署,或参阅 Smithery 文档了解其他部署选项。

仓库根目录中的 smithery.yaml 文件定义了 Smithery 用于安全收集凭据的配置架构。

配置

凭据配置

服务支持两种提供凭据的方式:

  1. 查询参数(Smithery 使用):将凭据作为查询参数传递给 /mcp 端点

    • whoopEmail - 你的 Whoop 账户邮箱
    • whoopPassword - 你的 Whoop 账户密码
    • mcpAuthToken - 可选的身份验证令牌
  2. 环境变量(用于本地/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?"

工作原理

此服务会自动处理身份验证:

  1. 首次请求时使用你的电子邮件和密码登录
  2. 保存访问令牌(有效期为 24 小时)
  3. 在令牌过期前自动重新进行身份验证
  4. 重新进行身份验证后重试失败的请求

安全

最佳实践
  • 切勿提交 .env 文件或分享 WHOOP 凭据
  • 服务仅在内存中存储 Whoop 身份验证令牌(令牌会在 24 小时后过期)
  • 将服务暴露给网络或不受信任的客户端时,请使用 MCP_AUTH_TOKEN
  • 为 MCP_AUTH_TOKEN 生成强随机令牌(例如,使用 openssl rand -hex 32)
  • 在生产环境或网络中运行时,务必设置 MCP_AUTH_TOKEN

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT——详情请参阅 LICENSE 文件

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。