Build

I connected my WHOOP to Claude. The pattern transfers to any rate-limited SaaS API you run.

2Izzy ALv 2 · 0 solutions ·

My WHOOP scores my recovery every morning. It has no idea what my Tuesday looked like.

My strain doesn't come from workouts. It comes from meetings, Slack, and deadlines that move. All of that is already recorded with timestamps in the tools most of us run anyway: calendar, meeting transcripts, messages, issues. Each of those already talks to Claude through its own MCP. The only tool missing from the table was the one on my wrist.

So I built whoop-relay: a remote MCP server that connects WHOOP to Claude, serverless on Cloudflare, on the newest MCP spec. Code is public: github.com/promptmetrics/whoop-relay

The part that matters for your stack, even if you never touch a fitness tracker:

WHOOP allows an app 100 API calls per minute and 10,000 per day. If Claude called the API for every question, the budget would die by lunch. So Claude never touches the WHOOP API to answer a question. Webhooks push changes into a queue, a worker writes them to a small database I own, and Claude reads that copy. Questions become free and instant. Quota only gets spent when data actually changes.

That's the buffered-copy pattern, and it works on any rate-limited SaaS API. Which is most of them. CRM, support desk, analytics tool: don't point the agent at the vendor's API, put a copy in between.

Two honest limits before you ask:

  1. WHOOP caps a new app at 10 users while they review it. As I write this, 8 spots are left. Connect whoop.promptmetrics.dev/mcp as a custom connector in Claude (needs a paid plan) and log in with WHOOP. If it's full, the README has the self-host steps: free Cloudflare account, free WHOOP dev app, one deploy command.
  2. The WHOOP API is day-level only. No intraday heart rate, no stress monitor. So "what did that 2pm call do to my heart rate" has no answer. What works: yesterday's meeting load against this morning's recovery. That correlation experiment starts now, and I'll post the results here, pattern or no pattern.

Which API in your stack would you put behind a buffered copy first?

github.comGitHub - promptmetrics/whoop-relay: Remote MCP server on Cloudflare Workers that connects WHOOP accounts to Claude — webhook ingest → queue → D1 read model, an MCP Apps dashboard rendered in the chat,Remote MCP server on Cloudflare Workers that connects WHOOP accounts to Claude — webhook ingest → queue → D1 read model, an MCP Apps dashboard rendered in the chat, and an authenticated live web da...
mcpcloudflarewhoopclaude
1 comment

1 comment