Token导航 LogoToken导航TokenDH.com
Poke Whoop MCP logo
安全风控未说明官方级别未说明来源级核验

Poke Whoop MCP

MCP Server

WHOOP MCP服务通过Model Context Protocol(MCP)暴露WHOOP睡眠和周期应变数据,支持Poke通过流式HTTP连接。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
TypeScript安全开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

abhishek-sankar

提供方

abhishek-sankar

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

cloudflared--配置~/.cloudflale/config.yml隧道运行

Poke的WHOOP MCP服务器

该项目通过模型上下文协议(MCP)公开WHOOP睡眠和循环压力数据,以便Poke可以通过可流式传输的HTTP进行连接,而传统的HTTP+SSE仍然可用于旧客户端。

先决条件

  1. 启用了授权码流的WHOOP开发人员应用程序。
  2. 重定向URL https://whoop.abhisheksankar.com/oauth/whoop/callback 在WHOOP门户网站上注册。
  3. 来自WHOOP开发人员仪表板的客户端ID和客户端密码。
  4. 一个公共HTTPS端点(例如,whob.abhisheksankar.com),将为Poke托管此服务器。

设置

npm install
cp .env.example .env

更新 .env 在项目根目录中(不要提交此文件):

PUBLIC_BASE_URL=
WHOOP_CLIENT_ID=
WHOOP_CLIENT_SECRET=
TOKEN_STORE_PATH=./data/whoop-tokens.json
PORT=3000
HOST=0.0.0.0
# Optional: require an API key for MCP requests
# MCP_API_KEY=generate-a-strong-key
# Optional: override default scopes (comma-separated)
# WHOOP_SCOPES=offline,read:sleep,read:cycles,read:profile
# Optional: move token storage to Supabase (recommended for Vercel)
# SUPABASE_URL=https://your-project.supabase.co
# SUPABASE_SERVICE_ROLE_KEY=
# SUPABASE_TOKENS_TABLE=whoop_tokens
# SUPABASE_TOKENS_PREFIX=prod

使用Supabase持久化代币

Vercel的无服务器文件系统是短暂的,因此当您依赖时,刷新令牌会在部署之间消失 TOKEN_STORE_PATH. 如果你两者都提供 SUPABASE_URLSUPABASE_SERVICE_ROLE_KEY,服务器将令牌存储在Supabase中,而不是磁盘上。创建一个 在Supabase项目中使用简单表(下面的SQL),并确保禁用行级安全性或服务角色键具有插入/更新/删除权限:

create table if not exists whoop_tokens (
  key text primary key,
  token jsonb not null,
  updated_at timestamptz not null default now()
);

您可以选择通过以下方式覆盖表名 SUPABASE_TOKENS_TABLE 每个环境的命名空间键使用 SUPABASE_TOKENS_PREFIX. 设置环境变量后,重新部署并完成OAuth流一次,以种子刷新令牌;后续刷新将自动持续。

本地运行

npm run dev

打开 http://localhost:3000/oauth/whoop/login 在浏览器中启动WHOOP OAuth流、登录和批准范围。

服务器公开:

  • POST /mcp --无状态流式HTTP MCP端点。这是Poke和Vercel部署的推荐端点。
  • GET/DELETE /mcp --退货 405 因为服务器是有意无状态的。
  • GET /ssePOST /messages?sessionId=... --旧客户端的传统HTTP+SSE MCP端点。这些依赖于内存中的会话状态,不适合无服务器部署。
  • POST /sse --已指向的现有可流式传输HTTP客户端的兼容性路径 /sse.
  • GET /oauth/whoop/login --启动OAuth流(支持 ?key=?next=).
  • GET /oauth/whoop/callback --OAuth重定向处理程序(自动)。
  • GET /healthz --基本准备状态检查。

部署

在HTTPS后面部署服务器 https://whoop.abhisheksankar.com.更新 .env 使用真实的基本URL并重新启动服务。确保端口3000(或您选择的端口)可访问。

Poke配置

如果你设置 MCP_API_KEY,在中发送相同的值 Authorization: Bearer header(Poke的UI接受关键字段,并将其转发为 Authorization).

在Poke的“新整合”形式中:

  • 名字:WHOOP(或任何有意义的东西)
  • 服务器URL: https://whoop.abhisheksankar.com/mcp
  • API密钥:输入以下值 MCP_API_KEY (如果您没有设置,请留空)

可用工具

  1. whoop_sleep_recent --返回最近的睡眠会话,包括持续时间和WHOOP睡眠表现。可选输入: limit, start, end, nextToken, key (用于多用户令牌存储)。
  2. whoop_cycle_strain --返回周期摘要,包括应变(压力)和心率指标。与上述可选过滤器相同。

这两个工具都返回与WHOOP分页有效负载匹配的结构化内容,以及用于快速检查的纯文本摘要。

REST端点

  • GET /metrics/today --返回所存储令牌的当前WHOOP指标的概览JSON快照(可选提供 ?key= 用于多用户设置)。有效载荷包括总睡眠时间、阶段分解、睡眠评分、压力和卡路里燃烧(千焦转换为千卡)。WHOOP的公共API不公开每日步骤总数,因此该字段返回为 null 目前。

备注

  • 服务器为每个用户存储一个令牌集 key (默认值为 default).添加 ?key=user123/oauth/whoop/login 以授权其他帐户。
  • WHOOP v2中不存在明确的“步骤”度量;循环应变被暴露为应力代理。
  • WHOOP刷新需要 offline 范围。服务器现在确保 offline 默认情况下是请求的,但如果您的现有令牌在更改之前已被授权,则需要重新运行 /oauth/whoop/login 一次。
  • 当请求检测到过期时,令牌会自动刷新,每个帐户有5分钟的安全缓冲区和一次正在进行的刷新,以避免并发刷新竞争。
  • OAuth state 是有签名和无状态的,因此回调不再依赖于重启或无服务器调用时内存中的状态。
  • 文件支持的令牌写入是原子性的,以避免在中断写入后留下零字节的令牌文件。
  • Vercel适用于OAuth回调和无状态 POST /mcp 运输。它不适合有状态的SSE/会话传输,因为这些传输依赖于内存中的进程状态。

目录标签

目录标签

TypeScript安全开发工具健康数据本地部署睡眠分析HTTP流式传输OAuth认证多用户支持

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP