garmin-mcp
garmin-mcp
Ein lokaler MCP-Server, der Ihre Garmin-Connect-Aktivitäts-, Gesundheits- und Trainingsdaten (Aktivitäten, HRV, Schlaf, Herzfrequenz, Stress, Body Battery, Trainingsbereitschaft, HF-/Leistungszonen, Laktatschwelle, FTP, VO2max, persönliche Rekorde, Workouts, geplante Workouts und Trainingspläne) als Werkzeuge in Claude Desktop bereitstellt.
Er kommuniziert direkt mit der Live-Garmin-Connect-API über die
garminconnect-Bibliothek.
Die Daten sind schreibgeschützt – es wird nie etwas an Garmin zurückgeschrieben.
So funktioniert die Authentifizierung
Der Garmin-Login erfolgt absichtlich an zwei getrennten Stellen:
scripts/setup_auth.py– ein interaktives Skript, das Sie selbst in einem Terminal ausführen. Es meldet sich mit Ihrer E-Mail/Passwort an, fordert Sie zur Eingabe eines MFA-Codes auf, falls Garmin einen verlangt, und speichert das daraus resultierende Sitzungstoken in~/.garmin_mcp/tokens.Der MCP-Server (
src/garmin_mcp/server.py), der von Claude Desktop headless gestartet wird, lädt dieses zwischengespeicherte Token nur und erneuert es stillschweigend. Er fragt nie nach MFA – Claude Desktop bietet ihm kein Terminal für Eingabeaufforderungen, und ein Blockieren auf stdin würde dort Tool-Aufrufe aufhängen. Wenn die zwischengespeicherte Sitzung fehlt oder abgelaufen ist, schlagen Tool-Aufrufe mit einer Fehlermeldung fehl, die Sie auffordert,setup_auth.pyerneut auszuführen.
Ihr Garmin-Passwort wird im macOS-Schlüsselbund gespeichert (Eintrag/Dienst
garmin-mcp, in Keychain Access einsehbar), nie in eine Datei geschrieben.
Nur Ihre Garmin-Login-E-Mail (nicht geheim) wird in ~/.garmin_mcp/config.json gespeichert.
Einrichtung
Abhängigkeiten installieren:
cd garmin_mcp uv syncFühren Sie den einmaligen interaktiven Login aus:
uv run python scripts/setup_auth.pyGeben Sie Ihre Garmin-Connect-E-Mail und Ihr Passwort ein (das Passwort wird dann für das nächste Mal im Schlüsselbund gespeichert). Geben Sie den MFA-Code ein, wenn Sie dazu aufgefordert werden. Bei Erfolg sehen Sie eine Bestätigung und den Pfad zum Token-Cache.
Registrieren Sie den Server bei Claude Desktop, indem Sie
~/Library/Application Support/Claude/claude_desktop_config.jsonbearbeiten und (neben allen anderenmcpServers-Einträgen) Folgendes hinzufügen:{ "mcpServers": { "garmin": { "command": "uv", "args": ["run", "--project", "/Users/felix.guiony/Code/Perso/garmin_mcp", "garmin-mcp"] } } }Beenden Sie Claude Desktop vollständig (Cmd+Q, nicht nur das Fenster schließen) und öffnen Sie es erneut. Das Werkzeuge/Hammer-Symbol sollte die
garmin-Werkzeuge auflisten.
Werkzeuge
Werkzeug | Beschreibung |
| Aktuelle Aktivitäten, neueste zuerst (paginiert, optionaler Typfilter) |
| Vollständige Details zu einer Aktivität: Zusammenfassung + Zeitreihe pro Metrik |
| Runden-/Split-Daten für eine Aktivität |
| Tägliche Ruheherzfrequenz + Intraday-Herzfrequenz-Verlauf |
| Schritte, Kalorien, Ruheherzfrequenz, Distanz, Stockwerke, Intensitätsminuten |
| Schlafphasen, Dauer, Schlafwert |
| Herzfrequenzvariabilität |
| Body-Battery-Energiereserve über einen Datumsbereich |
| Stresslevel über den ganzen Tag |
| Trainingsbereitschaftswert und beitragende Faktoren |
| Identität, Einheiten-Präferenzen, persönliche Einstellungen (max. HF, Ruhe-HF, Gewicht, Größe, VO2max), HF-Zonen und Leistungszonen pro Sportart |
| Laktatschwelle beim Laufen: Herzfrequenz, Leistung und Geschwindigkeit |
| Aktuelle funktionelle Leistungsschwelle (FTP) beim Radfahren |
| Historischer FTP-Wert für eine Sportart über einen Datumsbereich |
| Max-Metrik-Daten (z. B. VO2max) über einen Datumsbereich |
| Täglicher Ruheherzfrequenz-Trend über einen Datumsbereich |
| Garmin Fitness-Alter für ein bestimmtes Datum |
| Persönliche Rekorde |
| Gespeicherte Workout-Vorlagen, neueste zuerst (paginiert) |
| Vollständige Struktur eines Workouts: Abschnitte, Ziele, Intervalle |
| Kalender der für einen bestimmten Monat geplanten Workouts |
| Details zu einer einzelnen geplanten Workout-Instanz |
| Trainingspläne |
| Details zu einem bestimmten Trainingsplan |
| Details zu einem bestimmten adaptiven Trainingsplan |
Alle Datumsparameter akzeptieren YYYY-MM-DD und sind standardmäßig auf heute gesetzt.
Fehlerbehebung
Ein Tool-Aufruf gibt eine Meldung „Garmin-Sitzungsfehler“ / „run setup_auth.py“ zurück. Ihr zwischengespeichertes Aktualisierungstoken ist abgelaufen oder wurde widerrufen (das passiert gelegentlich, z. B. nach einer Passwortänderung oder längerer Inaktivität). Führen Sie erneut aus:
uv run python scripts/setup_auth.pyRatenlimit erreicht. Garmin Connect begrenzt gelegentlich schnelle Anfragen; die zugrunde liegende Bibliothek wiederholt vorübergehende Fehler automatisch, aber wenn Sie einen Ratenlimit-Fehler sehen, warten Sie einen Moment und versuchen Sie es erneut.
Den Server direkt außerhalb von Claude Desktop überprüfen:
uv run mcp dev src/garmin_mcp/server.pyöffnet den MCP Inspector, sodass Sie jedes Werkzeug manuell aufrufen und dessen Ausgabe/Schema prüfen können.
Projektstruktur
garmin_mcp/
pyproject.toml
src/garmin_mcp/
auth.py # keychain + token-cache helpers
server.py # FastMCP server and tool definitions
scripts/
setup_auth.py # interactive one-time/occasional loginThis 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
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.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
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/sovnheim/garmin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server