whoop-mcp
Click on "Deploy 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 what's my recovery score today?"
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
Lokaler MCP-Server für die WHOOP API v2. Läuft vollständig auf dem eigenen Rechner: Recovery, Schlaf, Strain und Workouts stehen in Claude als Tools zur Verfügung, ein täglicher Sync legt eine lokale Historie an und schreibt einen JSON-Export fürs eigene Dashboard.
Was es kann
Tool | Zweck |
| Kombinierter Tagesüberblick aus Recovery, Schlaf und Strain |
| Recovery Score, HRV, Ruhepuls, SpO2, Hauttemperatur |
| Dauer, Schlafphasen, Performance, Konsistenz, Atemfrequenz |
| Tages-Strain, Kalorien, Ø- und Maximalpuls |
| Trainings mit Strain, HF-Zonen, Distanz, Kalorien |
| Größe, Gewicht, maximale Herzfrequenz |
| Langzeitauswertung aus der lokalen Datenbank, mit Trendvergleich |
| Daten abrufen, lokal speichern, Export schreiben |
Einheiten werden alltagstauglich umgerechnet: Millisekunden zu Stunden, Kilojoule zu Kilokalorien, Meter zu Kilometern. Die Rohantworten bleiben in der Datenbank erhalten.
Related MCP server: whoop-mcp
Voraussetzungen
Eine App im WHOOP Developer Dashboard mit dieser Redirect URL:
http://localhost:8765/callbackund diesen Scopes:
offline read:recovery read:cycles read:sleep read:workout
read:body_measurement read:profileoffline ist zwingend erforderlich — ohne diesen Scope gibt WHOOP keinen
Refresh Token heraus und die Verbindung müsste stündlich erneuert werden.
Installation
git clone https://github.com/d00ennis/whoop-mcp.git
cd whoop-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Einrichtung
whoop-mcp setup # Client ID und Secret hinterlegen (landen im Schlüsselbund)
whoop-mcp auth # Browser öffnet sich, Zugriff einmal bestätigen
whoop-mcp sync # erster Abruf, standardmäßig 90 Tage rückwirkend
whoop-mcp status # Konfiguration und Datenbestand prüfenIn Claude einbinden
In ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"whoop": {
"command": "/PFAD/ZU/whoop-mcp/.venv/bin/whoop-mcp",
"args": ["serve"]
}
}
}Danach Claude neu starten.
Täglicher Sync
Per launchd oder Cron, zum Beispiel jeden Morgen um 6:30 Uhr:
30 6 * * * /PFAD/ZU/whoop-mcp/.venv/bin/whoop-mcp sync >> ~/.whoop-mcp/sync.log 2>&1Wo die Daten liegen
Was | Wo |
Client ID, Secret, Tokens | macOS-Schlüsselbund (Dienst |
Historie |
|
Export fürs Dashboard |
|
Über WHOOP_MCP_DATA_DIR und WHOOP_MCP_EXPORT_PATH lassen sich Verzeichnis
und Exportpfad verlegen.
Aufbau
config.py Pfade, Scopes, Secret-Speicher (Schlüsselbund mit Datei-Fallback)
auth.py OAuth-Flow, lokaler Callback-Server, Token-Rotation
client.py HTTP-Client: Pagination, 401-Refresh, 429-Backoff
normalize.py Rohantworten zu flachen Datensätzen mit sinnvollen Einheiten
aggregate.py Tageszusammenführung, Durchschnitte, Trends
store.py SQLite-Historie, idempotente Upserts
sync.py Abgleich und JSON-Export
server.py MCP-ToolsTests
pip install -e ".[dev]"
pytestLizenz und Datenschutz
Private Nutzung. Es werden keine Daten an Dritte übertragen — siehe PRIVACY.md.
Available Tools
9 toolswhoop_bodyA
Koerpermasse aus WHOOP: Groesse, Gewicht und maximale Herzfrequenz.
Inputs: no named parameters. Returns: object
whoop_cyclesC
Tages-Strain, Kalorienverbrauch sowie durchschnittliche und maximale Herzfrequenz.
Inputs: days. Returns: object
whoop_historyB
Langfristige Auswertung aus der lokalen Datenbank statt aus der API.
Schnell und ohne Rate-Limit, benoetigt aber einen vorherigen Sync. Mit
metric (etwa "hrv_ms", "recovery_score", "strain", "asleep_hours")
kommt zusaetzlich ein Trendvergleich zurueck.
Inputs: days, metric. Returns: object
whoop_lifeos_updateA
Recovery, Schlaf und Strain ins Life-OS-Dashboard schreiben.
Aktualisiert nur die Whoop-Felder; Strava-Aktivitaeten, Gewicht und
Ernaehrung bleiben unberuehrt. Vor dem Schreiben wird eine Sicherung
angelegt. Mit dry_run werden die Aenderungen nur angezeigt.
Inputs: dry_run. Returns: object
whoop_recoveryC
Recovery Score, HRV, Ruhepuls, SpO2 und Hauttemperatur der letzten Tage.
Inputs: days. Returns: object
whoop_sleepC
Schlafdauer, Schlafphasen, Performance, Konsistenz und Atemfrequenz.
Inputs: days. Returns: object
whoop_summaryA
Kombinierter Tagesueberblick: Recovery, Schlaf und Strain je Tag.
Das Standard-Tool fuer Fragen wie "Wie war meine Woche?". Liefert pro Tag einen Datensatz plus Durchschnitte und Trends.
Inputs: days. Returns: object
whoop_syncB
Daten von WHOOP in die lokale Datenbank holen und den Life-OS-Export schreiben.
Ohne days wird ab dem letzten Sync nachgeholt.
Inputs: days. Returns: object
whoop_workoutsA
Trainingseinheiten mit Strain, Herzfrequenzzonen, Distanz und Kalorien.
Mit sport laesst sich auf eine Sportart filtern, etwa "running".
Inputs: days, sport. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct data category (recovery, sleep, cycles, workouts, body, history) or operation (sync, Life-OS update), with clear descriptions that eliminate ambiguity. The summary tool provides an overarching view but does not overlap with specific metric tools.
All tools follow the consistent pattern 'whoop_<descriptive_noun>', with only 'whoop_lifeos_update' using a compound noun, which is still uniform and predictable.
With 9 tools, the set is well-scoped for a health/fitness MCP server, covering essential data retrieval, history, and synchronization without unnecessary bloat.
The domain of WHOOP data is well-covered: recovery, sleep, strain, workouts, body metrics, and historical trends are all present. Minor gaps like account info or raw intraday data might be missing, but core user needs are met.
Maintenance
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Multi-tenant hosted MCP server for Oura Ring — 21 read-only tools, OAuth per user.
Remote MCP server for training, nutrition, wellness, and performance data with OAuth 2.0.
Read WHOOP recovery, sleep, cycles, workouts and body measurements.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA local MCP server providing read-only access to WHOOP fitness data via direct OAuth, with a local SQLite cache for offline queries.MIT
- AlicenseAqualityDmaintenanceMCP server providing read access to WHOOP biometric data including recovery, sleep, strain, and workouts.161MIT
- AlicenseAqualityCmaintenanceA local-first, read-only MCP server that provides compact recovery, sleep, strain, HRV, heart-rate, workout, and body-measurement data from WHOOP without sending credentials to a third party.569 npm1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes Whoop API v2 data as tools, enabling natural language queries for cycles, recovery, sleep, workouts, and profile.MIT