WHOOP MCP 服务器是一个模型上下文协议(MCP)服务器,它可让你访问所有 WHOOP API 端点。借助该服务器,你能够通过 MCP 标准将 WHOOP 的健身和健康数据集成到自己的应用程序中。
npm install
客户端 ID 和 客户端密钥。http://localhost:3000/callback)。复制示例环境文件并配置你的 WHOOP 凭证:
cp env.example .env
使用你的 WHOOP API 凭证编辑 .env 文件:
# WHOOP API 配置
WHOOP_CLIENT_ID=your_client_id_here
WHOOP_CLIENT_SECRET=your_client_secret_here
WHOOP_REDIRECT_URI=http://localhost:3000/callback
# MCP 服务器配置
MCP_SERVER_PORT=3001
# 构建项目
npm run build
# 运行 MCP 服务器
npm start
# 或者以开发模式运行
npm run dev
MCP 服务器支持与 WHOOP 的 OAuth 2.0 认证。认证步骤如下:
whoop-get-authorization-url 工具获取 OAuth URL。whoop-exchange-code-for-token 工具和授权码进行交换。whoop-set-access-token 工具设置用于 API 调用的访问令牌。当你在浏览器中完成 WHOOP 授权后,会被重定向到一个包含授权码的 URL。你必须将此代码复制并直接粘贴到与 Claude 的聊天中。URL 中的代码类似如下形式:
http://localhost:3000/callback?code=ABC123XYZ789&scope=read:recovery%20read:cycles...
复制 code 参数的值(例如:ABC123XYZ789),并将其粘贴到与 Claude 的聊天中。Claude 将使用此代码交换访问令牌并建立与你 WHOOP 数据的连接。
whoop-get-user-profile - 获取基本的用户个人资料信息。whoop-get-user-body-measurements - 获取身体测量数据(身高、体重、最大心率)。whoop-revoke-user-access - 撤销用户访问令牌。whoop-get-cycle-by-id - 根据 ID 获取特定的生理周期数据。whoop-get-cycle-collection - 获取分页的生理周期列表。whoop-get-sleep-for-cycle - 获取特定生理周期的睡眠数据。whoop-get-recovery-collection - 获取分页的恢复数据。whoop-get-recovery-for-cycle - 获取特定生理周期的恢复数据。whoop-get-sleep-by-id - 根据 ID 获取特定的睡眠记录。whoop-get-sleep-collection - 获取分页的睡眠记录。whoop-get-workout-by-id - 根据 ID 获取特定的锻炼记录。whoop-get-workout-collection - 获取分页的锻炼记录。whoop-get-authorization-url - 获取 OAuth 授权 URL。whoop-exchange-code-for-token - 用授权码交换访问令牌。whoop-refresh-token - 刷新访问令牌。whoop-set-access-token - 设置用于 API 调用的访问令牌。服务器为所有 WHOOP API 响应提供了全面的 TypeScript 类型:
大多数集合端点支持使用以下参数进行分页:
limit:返回的记录数量(最多 25 条)。start:开始时间过滤器(ISO 8601 格式)。end:结束时间过滤器(ISO 8601 格式)。nextToken:下一页的令牌。MCP 服务器包含全面的错误处理机制,可处理以下错误:
src/
├── index.ts # 主入口点
├── mcp-server.ts # MCP 服务器实现
├── whoop-api.ts # WHOOP API 客户端
└── types.ts # TypeScript 类型定义
npm run build - 构建 TypeScript 项目。npm start - 运行已构建的服务器。npm run dev - 以热重载的开发模式运行。npm run watch - 监视更改并重新构建。要添加新的 WHOOP API 端点,请按以下步骤操作:
whoop-api.ts 中的 WhoopApiClient 中添加端点方法。types.ts 中添加相应的类型。mcp-server.ts 中添加工具定义和处理程序。如需了解 WHOOP API 的详细信息,请访问:
// 首先设置你的访问令牌
await callTool('whoop-set-access-token', { accessToken: 'your_access_token' });
// 然后获取用户个人资料
const profile = await callTool('whoop-get-user-profile', {});
const cycles = await callTool('whoop-get-cycle-collection', {
limit: 10,
start: '2024-01-01T00:00:00Z'
});
const sleepData = await callTool('whoop-get-sleep-collection', {
limit: 5,
end: '2024-01-31T23:59:59Z'
});
const workouts = await callTool('whoop-get-workout-collection', {
limit: 10,
start: '2024-01-01T00:00:00Z'
});
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
如遇到问题或有疑问,请按以下步骤操作:
重要:WHOOP v2 API 现已可用,需要在 2025 年 10 月 1 日前完成迁移。当前的 v1 API 和 Webhook 将在此日期后停用。此 MCP 服务器使用的是 v2 API。