WHOOP MCP 服务器

通过Model Context Protocol (MCP)将WHOOP健身数据连接到Poke AI助手,支持自然语言查询健身数据。

  • by kabirrgrover
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 kabirrgrover/whoop-mcp-poke

使用说明

Poke的WHOOP MCP服务器

使用模型上下文协议(MCP)将您的WHOOP健身数据连接到Poke AI助手。


🎯 这有什么作用

此MCP服务器允许您使用自然语言通过Poke AI助手查询您的WHOOP健身数据:

  • “我今天的康复分数是多少?” -获取您的每日恢复指标
  • “我昨晚睡得怎么样?” -分析你的睡眠表现
  • “显示我的应变数据” -查看锻炼压力和心率区域
  • “我的生理年龄是多少?” -检查您的WHOOP年龄和健康范围指标

✨ 特性

  • 🏃 5 WHOOP数据工具:概述,睡眠,恢复,压力,健康跨度
  • 🔄 自动令牌刷新:无缝处理身份验证
  • 🌐 云就绪:只需单击一下即可部署到渲染
  • 🤖 Poke兼容:使用Poke AI开箱即用

🔑 是什么让这与众不同

这是一个 反向工程 直接与WHOOP的私有API接口的实现。没有官方SDK,没有OAuth流,没有等待API批准。非常适合那些不想经历WHOOP官方开发计划的麻烦,但仍然希望通过程序访问其全面健身数据的开发人员。


🚀 快速开始

先决条件

选项1:部署以渲染(推荐)

  1. 单击上面的“部署到渲染”按钮

  2. 配置您的部署:

    • 姓名: whoop-mcp-server (或你的选择)
    • 分行: main
  3. 设置环境变量:

    • WHOOP_EMAIL:您的WHOOP帐户电子邮件
    • WHOOP_PASSWORD:您的WHOOP帐户密码
  4. 等待部署 (约5-10分钟)

  5. 获取您的MCP URL:

    https://your-service-name.onrender.com/mcp
    
  6. 连接到Poke:

    • 首选https://poke.com/settings/connections/integrations/new
    • 添加您的MCP URL
    • 开始提问!

选项2:本地运行

  1. 克隆存储库:

    git clone https://github.com/kabirrgrover/whoop-mcp-poke.git
    cd whoop-mcp-poke
    
  2. 创建虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 配置环境:

    cp .env.example .env
    # Edit .env with your WHOOP credentials
    
  5. 运行服务器:

    python src/server.py
    
  6. 服务器运行时间: http://localhost:8000/mcp


🔧 配置

环境变量

变量 必填 描述
WHOOP_EMAIL ✅ 是 您的WHOOP帐户电子邮件
WHOOP_PASSWORD ✅ 是 您的WHOOP帐户密码
PORT ❌ 无 服务器端口(默认值:8000,由Render自动设置)

WHOOP证书

获取您的WHOOP凭据:

  1. 注册地址:https://www.whoop.com
  2. 确保您拥有有效的WHOOP订阅
  3. 使用您的登录电子邮件和密码

安全说明: 您的凭据安全地存储在环境变量中,从不记录或公开。


📱 使用Poke

连接到Poke

  1. 将服务器部署到Render(或使用ngrok在本地运行)
  2. 首选https://poke.com/settings/connections/integrations/new
  3. 添加您的MCP服务器URL
  4. 测试连接

测试连接

连接到Poke后,使用以下工具进行测试:

"Use the test_connection tool"

您应该看到:✅ MCP服务器正在工作!连接成功。

可用工具

1.概述数据

问Poke: “我今天的WHOOP数据是什么?”

退货:

  • 恢复得分
  • 日间疲劳
  • 睡眠时间
  • 燃烧的卡路里
  • HRV、RHR趋势
  • 今天的活动

2.睡眠分析

问Poke: “我昨晚睡得怎么样?”

退货:

  • 睡眠表现评分
  • 睡眠时间与所需时间
  • 睡眠一致性
  • 睡眠效率
  • 见解和建议

3.恢复指标

问Poke: “我的康复分数是多少?”

退货:

  • 恢复分数(0-100%)
  • HRV与趋势
  • RHR与趋势
  • 呼吸频率
  • 教练见解

4.应变跟踪

问Poke: “显示我的应变数据”

退货:

  • 应变评分
  • 心率区域分布
  • 力量活动时间
  • 步骤
  • 个人训练

5.健康跨度

问Poke: “我的生理年龄是多少?”

退货:

  • WHOOP年龄(生物年龄)
  • 年龄对比与时间顺序
  • 衰老速度
  • 每周趋势

对话示例

User: What's my recovery score today?

Poke: [Calls whoop_get_recovery tool]

Response: Your recovery is 72% (Green - Ready to perform)

📊 Key Metrics:
  • HRV: 65ms (↑ 8% vs baseline)
  • RHR: 52bpm (↓ 3% vs baseline)
  • Sleep Performance: 85%

💡 Coach Insight: "Your recovery is in the green. Your body 
is ready for a high-intensity workout today."

User: Should I do a hard workout?

Poke: Based on your 72% recovery (green zone), yes! Your HRV 
is trending up 8% and your RHR is down 3%, indicating your 
body has recovered well. Your sleep was also strong at 85%. 
This is a great day for high-intensity training.

🏗️ 建筑

Poke AI ←→ MCP Server (Render) ←→ WHOOP API
         HTTPS/MCP              HTTPS/AWS Cognito

技术栈

  • FastMCP 2.0 -MCP服务器框架
  • Python 3.10+ -运行时间
  • httpx -异步HTTP客户端
  • 渲染 -云主机
  • AWS Cognito -WHOOP身份验证

🛠️ 发展

项目结构

whoop-mcp-poke/
├── src/
│   ├── server.py           # FastMCP server
│   ├── whoop_client.py     # WHOOP API client
│   ├── config.py           # Configuration
│   └── tools/
│       └── whoop.py        # Tool handlers
├── requirements.txt        # Python dependencies
├── render.yaml            # Render configuration
└── README.md              # This file

运行测试

使用MCP检查器测试您的MCP服务器:

# Start your server
python src/server.py

# In another terminal
npx @modelcontextprotocol/inspector

打开http://localhost:3000并连接到 http://localhost:8000/mcp 使用“HTTP”传输。


🔒 安全

  • ✅ 仅存储在环境变量中的凭据
  • ✅ WHOOP代币自动刷新(24小时有效期)
  • ✅ 代码或日志中没有凭据
  • ✅ 用于所有API调用的HTTPS
  • ✅ AWS Cognito身份验证

最佳实践:

  • 永不承诺 .env 文件
  • 使用强WHOOP密码
  • 如果暴露,则轮换凭据
  • 使用Render的环境变量加密

🐛 故障排除

“身份验证失败”错误

解决方案:

  1. 在Render环境变量中验证您的WHOOP电子邮件和密码
  2. 尝试登录https://app.whoop.com具有相同的凭据
  3. 确保您的WHOOP订阅处于活动状态

Poke中的“无效MCP服务器URL”

解决方案:

  1. 验证您的URL是否准确: https://your-service-name.onrender.com/mcp
  2. 检查渲染服务是否正在运行(绿色状态)
  3. 在浏览器中测试端点-您应该看到JSON响应

渲染时的部署超时

解决方案:

  1. 检查渲染日志中的特定错误
  2. 验证是否已设置所有环境变量
  3. 确保 requirements.txt 具有所有依赖项

服务器响应但未返回数据

解决方案:

  1. 验证您的WHOOP订阅是否处于活动状态
  2. 检查您最近的WHOOP数据(戴上安全带!)
  3. 尝试查询特定日期的数据:“我在2025-11-01的恢复情况如何?”

“没有名为'fastmcp'的模块”错误

解决方案:

  1. 验证 requirements.txt 有 fastmcp>=2.0.0
  2. 在渲染时,触发手动部署以重新安装依赖项
  3. 检查渲染日志,查看依赖项安装是否失败

📚 资源

文档

相关项目


🤝 贡献

欢迎投稿!请随时提交拉取请求。


📄 许可证

麻省理工学院许可证-请随意将其用于您自己的项目!


⭐ 致谢


💬 支持

如果您有任何疑问或问题:

  1. 检查 故障排除 以上章节
  2. 打开一个问题 在GitHub上
  3. 审查 FastMCP文档
  4. 检查 Poke的集成指南

🚀 快速链接

  • 使用此模板: 点击上面的“使用此模板”按钮
  • 报告问题: GitHub问题
  • GitHub上的明星: 表示支持! ⭐

由以下材料制成❤️ 面向WHOOP和Poke社区

这是一个开源项目。欢迎投稿、问题和功能请求!