Skip to main content
Glama

🏃 WHOOP MCP-Server

Verbinden Sie Ihre WHOOP-Fitnessdaten über das Model Context Protocol (MCP) mit Claude Desktop

License: MIT Python 3.8+ MCP

Verwandeln Sie Ihre WHOOP-Fitnessdaten durch Abfragen in natürlicher Sprache in Claude Desktop in umsetzbare Erkenntnisse. Stellen Sie Fragen zu Ihren Workouts, Ihrer Erholung, Ihren Schlafmustern und mehr – und bewahren Sie dabei die Sicherheit und Privatsphäre Ihrer Daten.

🚀 NEU: Probieren Sie die Smithery-gehostete Version für eine Einrichtung ohne Konfigurationsaufwand aus!

✨ Funktionen

🔐 Sichere OAuth-Integration - Sichere WHOOP-Kontoverbindung mit verschlüsselter lokaler Speicherung 🏃 Vollständiger Datenzugriff - Workouts, Erholung, Schlaf, Zyklen und Profilinformationen 🤖 Abfragen in natürlicher Sprache - Fragen Sie Claude in einfachem Englisch nach Ihren Fitnessdaten ⚡ Intelligentes Caching - Optimierte Leistung durch intelligentes Daten-Caching 🛡️ Datenschutz zuerst - Alle Daten verbleiben auf Ihrem Rechner und werden niemals an Dritte weitergegeben 🔄 Automatische Token-Aktualisierung - Nahtlose Erfahrung durch automatische Erneuerung der Authentifizierung

Related MCP server: Whoop MCP Server

🚀 Schnellstart

🎯 Wählen Sie Ihre Bereitstellungsmethode

Option A: Smithery-gehostet (Empfohlen für Anfänger)

  • ✅ Keine Installationskomplexität

  • ✅ Automatische Updates und Wartung

  • ✅ Hosting auf Unternehmensniveau

  • ➡️ Erste Schritte mit Smithery

Option B: Lokale Installation (Für fortgeschrittene Benutzer)

  • ✅ Volle Kontrolle und Privatsphäre

  • ✅ Keine externen Abhängigkeiten

  • ✅ Anpassen und Erweitern

  • ➡️ Fahren Sie unten mit der lokalen Einrichtung fort


📦 Lokale Installation

1. Voraussetzungen

  • Python 3.8+

  • Claude Desktop

  • Aktives WHOOP-Konto

2. Installation

git clone https://github.com/romanevstigneev/whoop-mcp-server.git
cd whoop-mcp-server
pip install -r requirements.txt

3. Einrichtung

Option A: Interaktive Einrichtung (Empfohlen)

Führen Sie die interaktive Einrichtung aus:

python setup.py

Dies wird:

  • Ihren Browser für die WHOOP-OAuth-Autorisierung öffnen

  • Ihre Token sicher lokal speichern

  • Die Konfiguration für Claude Desktop bereitstellen

Option B: Manuelle WHOOP-OAuth-Einrichtung

Falls die interaktive Einrichtung nicht funktioniert, können Sie Ihre WHOOP-Token manuell abrufen:

  1. WHOOP-OAuth-Seite öffnen: 👉 Klicken Sie hier, um den WHOOP-Zugriff zu autorisieren

  2. Konto autorisieren:

    • Melden Sie sich mit Ihren WHOOP-Anmeldedaten an

    • Erteilen Sie Berechtigungen für die angeforderten Scopes:

      • read:profile - Zugriff auf Ihre Profilinformationen

      • read:workout - Zugriff auf Workout-Daten

      • read:recovery - Zugriff auf Erholungsdaten

      • read:sleep - Zugriff auf Schlafdaten

      • offline - Refresh-Token für fortgesetzten Zugriff

  3. Autorisierungscode kopieren:

    • Nach der Autorisierung sehen Sie eine Erfolgsseite

    • Kopieren Sie den gesamten Autorisierungscode (lange Zeichenfolge, die mit Buchstaben/Zahlen beginnt)

    • Er sieht so aus: ABC123...XYZ789 (viel länger)

  4. Code gegen Token austauschen:

    python -c "
    import sys
    sys.path.insert(0, './src')
    from auth_manager import TokenManager
    import requests
    
    # Paste your authorization code here
    auth_code = 'YOUR_AUTHORIZATION_CODE_HERE'
    
    # Exchange for tokens
    url = f'https://personal-integrations-462307.uc.r.appspot.com/api/get-tokens/{auth_code}'
    response = requests.get(url, timeout=30)
    
    if response.status_code == 200:
        token_data = response.json()
        if token_data.get('success'):
            # Save tokens
            token_manager = TokenManager()
            token_manager.save_tokens(token_data)
            print('✅ Tokens saved successfully!')
        else:
            print('❌ Token exchange failed')
    else:
        print(f'❌ HTTP Error: {response.status_code}')
    "
  5. Einrichtung überprüfen:

    python -c "
    import sys
    sys.path.insert(0, './src')
    from whoop_client import WhoopClient
    client = WhoopClient()
    print(f'✅ Auth status: {client.get_auth_status()}')
    "

4. Claude Desktop konfigurieren

Fügen Sie dies zu Ihren Claude Desktop-Einstellungen hinzu:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/claude/claude_desktop_config.json

{
  "mcpServers": {
    "whoop": {
      "command": "/opt/miniconda3/bin/python",
      "args": ["/path/to/whoop-mcp-server/src/whoop_mcp_server.py"],
      "env": {
        "PYTHONPATH": "/path/to/whoop-mcp-server/src"
      }
    }
  }
}

⚠️ Wichtig: Verwenden Sie den vollständigen Python-Pfad (finden Sie Ihren mit which python3)

5. Claude Desktop neu starten

Starten Sie nach dem Hinzufügen der Konfiguration Claude Desktop neu, um den WHOOP-Server zu laden.

💡 Anwendungsbeispiele

Sobald die Konfiguration abgeschlossen ist, können Sie Claude fragen:

  • "Zeige mein WHOOP-Profil"

  • "Was waren meine Workouts diese Woche?"

  • "Wie entwickelt sich meine Erholung?"

  • "Zeige meine Schlafdaten der letzten 7 Tage"

  • "Wie sieht meine HRV aus?"

  • "Vergleiche meine Erholung mit dem letzten Monat"

🛠️ Verfügbare Tools

get_whoop_profile

Ruft Ihre WHOOP-Benutzerprofilinformationen ab.

get_whoop_workouts

Ruft Workout-Daten mit optionalen Filtern ab:

  • start_date (JJJJ-MM-TT)

  • end_date (JJJJ-MM-TT)

  • limit (Anzahl der Ergebnisse)

get_whoop_recovery

Ruft Erholungsdaten mit optionalen Filtern ab:

  • start_date (JJJJ-MM-TT)

  • end_date (JJJJ-MM-TT)

  • limit (Anzahl der Ergebnisse)

get_whoop_sleep

Ruft Schlafdaten mit optionalen Filtern ab:

  • start_date (JJJJ-MM-TT)

  • end_date (JJJJ-MM-TT)

  • limit (Anzahl der Ergebnisse)

get_whoop_cycles

Ruft physiologische Zyklen (tägliche Daten) mit optionalen Filtern ab:

  • start_date (JJJJ-MM-TT)

  • end_date (JJJJ-MM-TT)

  • limit (Anzahl der Ergebnisse)

get_whoop_auth_status

Überprüft den Authentifizierungsstatus und Token-Informationen.

clear_whoop_cache

Löscht zwischengespeicherte Daten, um neue API-Aufrufe zu erzwingen.

🔐 Sicherheit

  • Token-Verschlüsselung: Alle Token werden im Ruhezustand mittels AES-Verschlüsselung verschlüsselt

  • Lokale Speicherung: Token werden lokal auf Ihrem Rechner gespeichert und niemals an Dritte gesendet

  • Sichere Berechtigungen: Token-Dateien haben eingeschränkte Berechtigungen (600)

  • Automatische Aktualisierung: Token werden bei Ablauf automatisch aktualisiert

📊 Daten-Caching

  • Intelligentes Caching: API-Antworten werden für 5 Minuten zwischengespeichert, um die Leistung zu verbessern

  • Ratenbegrenzung: Integrierte Ratenbegrenzung zur Einhaltung der WHOOP-API-Limits

  • Cache-Steuerung: Manuelle Cache-Löschung verfügbar

🔧 Konfiguration

Umgebungsvariablen (optional):

  • LOG_LEVEL: Protokollierungsebene (DEBUG, INFO, WARNING, ERROR)

  • LOG_FILE: Pfad zur Protokolldatei (Standard: nur Konsole)

🆚 Vergleich der Bereitstellung

Funktion

Smithery-gehostet

Lokale Installation

Einrichtungszeit

⚡ 2 Minuten

⏱️ 10-15 Minuten

Komplexität

🟢 Anfängerfreundlich

🟡 Technische Einrichtung erforderlich

Wartung

✅ Keine (automatische Updates)

🔧 Manuelle Updates erforderlich

Leistung

🚀 Optimiertes Hosting

💻 Abhängig von lokaler Einrichtung

Datenschutz

🌐 Gehostete Plattform

🔒 Vollständig lokal

Abhängigkeiten

❌ Keine

🐍 Python, Pakete, OAuth

Fehlerbehebung

📞 Plattform-Support

🛠️ Selbsthilfe

📁 Dateistruktur

whoop-mcp-server/
├── src/                       # Python local installation
│   ├── whoop_mcp_server.py    # Main MCP server
│   ├── whoop_client.py        # WHOOP API client
│   ├── auth_manager.py        # Token management
│   └── config.py              # Configuration
├── smithery/                  # TypeScript source files
│   └── src/
│       ├── index.ts           # Smithery MCP server
│       ├── whoop-client.ts    # TypeScript WHOOP client
│       └── types.ts           # Type definitions
├── storage/                   # Local installation only
│   ├── tokens.json            # Encrypted tokens (auto-generated)
│   └── .encryption_key        # Encryption key (auto-generated)
├── package.json               # Node.js dependencies (Smithery)
├── smithery.yaml              # Smithery configuration (root required)
├── tsconfig.json              # TypeScript configuration
├── setup.py                   # Interactive setup script
└── requirements.txt           # Python dependencies

🐛 Fehlerbehebung

"No valid access token available"

  • Führen Sie python setup.py aus, um die Autorisierung zu erneuern

  • Überprüfen Sie, ob Ihr WHOOP-Konto aktiv ist

"Authentication failed"

  • Ihre Token sind möglicherweise über die Aktualisierungsfrist hinaus abgelaufen

  • Führen Sie python setup.py aus, um neue Token zu erhalten

"Rate limit exceeded"

  • Warten Sie eine Minute, bevor Sie weitere Anfragen stellen

  • Erwägen Sie die Verwendung zwischengespeicherter Daten oder die Reduzierung der Anfragehäufigkeit

Claude Desktop sieht den Server nicht

  • Vollständigen Python-Pfad verwenden: Ändern Sie "command": "python" in "command": "/opt/miniconda3/bin/python" (verwenden Sie which python3, um Ihren zu finden)

  • Korrekte Konfigurationsdatei prüfen: Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json (nicht .claude.json)

  • Absolute Pfade verwenden: Vollständige Pfade wie /Users/username/whoop-mcp-server/src/whoop_mcp_server.py

  • Protokolle prüfen: tail -f ~/Library/Logs/Claude/mcp-server-whoop.log

  • Starten Sie Claude Desktop nach Konfigurationsänderungen neu

🔄 Token-Aktualisierung

Der Server aktualisiert abgelaufene Token automatisch mithilfe des Refresh-Tokens. Wenn dies fehlschlägt, müssen Sie die Autorisierung erneuern:

python setup.py

📝 Protokollierung

Protokolle werden standardmäßig in die Konsole geschrieben. Um in eine Datei zu protokollieren:

export LOG_FILE="/path/to/whoop-mcp.log"
export LOG_LEVEL="INFO"

🤝 Mitwirken

  1. Forken Sie das Repository

  2. Erstellen Sie einen Feature-Branch

  3. Führen Sie Ihre Änderungen durch

  4. Fügen Sie ggf. Tests hinzu

  5. Senden Sie einen Pull Request

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die LICENSE-Datei für Details.

⚠️ Haftungsausschluss

Dies ist eine inoffizielle Integration mit WHOOP. Sie verwendet die offizielle WHOOP-API, wird jedoch nicht von WHOOP unterstützt.

📞 Support

  • Überprüfen Sie den Abschnitt zur Fehlerbehebung oben

  • Öffnen Sie ein Issue auf GitHub

  • Überprüfen Sie die WHOOP-API-Dokumentation unter https://developer.whoop.com/

🎯 Roadmap

  • [ ] Analyse historischer Daten

  • [ ] Abfragen für benutzerdefinierte Datumsbereiche

  • [ ] Datenexport-Funktionalität

  • [ ] Webhook-Unterstützung für Echtzeit-Updates

  • [ ] Erweiterte Analysen und Erkenntnisse

A
license - permissive license
Not graded
quality - not tested
D
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 Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects WHOOP fitness data to Claude Desktop, enabling natural language queries about workouts, recovery, sleep patterns, and health metrics while keeping data secure and private.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes Whoop fitness data (recovery, sleep, strain, workouts) to Claude for use as a daily training coach, enabling natural language queries about your health metrics and training readiness.
    MIT

View all related MCP servers

Related MCP Connectors

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

View all MCP Connectors

Latest Blog Posts

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/RomanEvstigneev/whoop-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server