WHOOP MCP server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WHOOP MCP serverhow was my recovery this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WHOOP MCP server
A small remote MCP server that lets Claude read your WHOOP recovery, sleep, strain (cycle), and workout data. It's built for one person (you) — WHOOP itself is the thing that decides which account's data it can see, via a one-time login you do in your browser.
It exposes these tools to Claude:
whoop_connection_statusget_whoop_profileget_whoop_body_measurementsget_whoop_recoveryget_whoop_sleepget_whoop_cyclesget_whoop_workouts
There are three things to do, in order: register an app with WHOOP, deploy this server somewhere reachable over HTTPS, then add it to Claude as a custom connector.
1. Register an app on the WHOOP Developer Platform
Go to https://developer.whoop.com and sign in with your regular WHOOP account.
The first time, you'll be asked to create a Team (any name is fine — it's just a container for your apps).
Create an App. You get up to 5 apps per team.
Under Scopes, select:
read:recovery,read:sleep,read:cycles,read:workout,read:profile,read:body_measurement, andoffline(theofflinescope is what lets WHOOP issue a refresh token, so this server doesn't need you to log in again every hour).Under Redirect URIs, add:
https://<your-deployed-domain>/oauth/callbackYou won't know the exact domain until step 2, but most hosts (Render, Railway, Fly.io, etc.) show you the domain before the first deploy finishes — come back and fill this in once you know it. It must match exactly, includinghttps://.Save, then copy the Client ID and Client Secret it gives you. Keep the secret private — never put it in client-side code or commit it to a public repo.
Related MCP server: Whoop MCP Server
2. Deploy the server
Any Node.js host that lets you set environment variables and gives you a public HTTPS URL works. Render's free tier is the path of least resistance:
Push this folder to a new GitHub repo (or use Render's "public Git URL" option if you don't want a repo).
On render.com, New + → Web Service, point it at the repo. Render will pick up
render.yamlautomatically, or set it manually: build commandnpm install, start commandnpm start.Add these environment variables in the Render dashboard:
WHOOP_CLIENT_ID— from step 1WHOOP_CLIENT_SECRET— from step 1WHOOP_REDIRECT_URI—https://<your-service>.onrender.com/oauth/callbackPUBLIC_HOST—<your-service>.onrender.com(nohttps://, no path)
Deploy. Once it's live, go back to your WHOOP app settings (step 1.5) and make sure the redirect URI there matches
WHOOP_REDIRECT_URIexactly.Add a persistent disk (Render's free tier includes a small one) at the path
/opt/render/project/src/data, or setTOKENS_PATHto a location on that disk. Without this, a redeploy or restart wipes the stored WHOOP connection and you'll need to re-authorize.
Prefer Railway or Fly.io? Same three env vars, same idea — just no
render.yaml (Railway/Fly config isn't included, but both auto-detect a
Node app from package.json).
Testing locally first (optional)
npm install
cp .env.example .env # fill in the values from step 1
npm startLocally you can use WHOOP_REDIRECT_URI=http://localhost:3000/oauth/callback
and leave PUBLIC_HOST unset — but Claude can't reach localhost, so this
is only useful for confirming the WHOOP login flow works before you deploy.
3. Connect it once to your WHOOP account
Visit https://<your-deployed-domain>/connect in a browser and log in with
WHOOP when prompted. You'll land on a "Connected ✅" page. This is a
one-time step — the server stores a refresh token and renews its own access
token from then on. Visiting / on your deployed URL shows the current
connection status.
4. Add it to Claude as a custom connector
Requires a Claude Pro, Max, Team, or Enterprise plan.
In Claude, go to Settings → Connectors → Add custom connector.
Remote MCP server URL:
https://<your-deployed-domain>/mcpLeave the OAuth Client ID/Secret fields blank — this server doesn't require Claude itself to authenticate (the WHOOP login in step 3 is what gates access to your data). If you want an extra layer so a stolen URL alone isn't enough, ask and I can add a shared-secret header check.
Click Add.
In a conversation, click the + button → Connectors, and enable "whoop" for that chat. Then just ask — e.g. "how was my recovery this week?"
Notes
This server is unauthenticated at the transport level: anyone with the URL and access to your Claude account's connector settings could call it. It only talks to your WHOOP account, and connector URLs aren't publicly discoverable, but don't post the URL anywhere public.
Data ranges:
get_whoop_recovery,get_whoop_sleep,get_whoop_cycles, andget_whoop_workoutsall accept optionalstart,end(ISO 8601),limit(max 25 per page), andnextToken(for pagination) — ask Claude for a specific window (e.g. "last 30 days") and it will pass these through.WHOOP's API and developer terms can change; if something breaks, check https://developer.whoop.com/docs for updates.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Your WHOOP data in the assistant, read-only: recovery, sleep, strain, workouts, cycles and body meas
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Related MCP Servers
- AlicenseAqualityDmaintenanceGives Claude access to your WHOOP health data including recovery, sleep, workouts, cycles, body measurements, and profile via the WHOOP Developer API.714MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to read your Whoop recovery, sleep, cycle, and workout data through natural language queries.248MIT
- FlicenseAqualityBmaintenanceProvides Claude Desktop with access to WHOOP fitness data including recovery, sleep, strain, and workouts.41-
- FlicenseAqualityCmaintenanceEnables Claude to read your WHOOP health data including recovery, sleep, strain, and workouts through the official WHOOP API, so you can ask natural language questions about your fitness metrics.7-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/holosii11/whoop-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server