garmin-mcp
garmin-mcp
Remote-MCP-Server für Garmin Connect auf Cloudflare Workers (kostenloser Tarif). Vollständiger TypeScript-Port von
taxuspt/garmin_mcp: alle 138 Tools plus ein garmin_get
Passthrough (insgesamt 139) und die 5 MCP-Ressourcen für Workout-Vorlagen/Referenzen.
Module: Aktivitätsverwaltung (21), Gesundheit & Wohlbefinden (29), Training & Leistung (15), Workouts + Builder (19), Ernährung (14), Challenges/Geräte/Ausrüstung (18), Gewicht/Körper/Frauengesundheit/Kurse (14), FIT-Datei-Analyse (4), Benutzerprofil (4), Passthrough (1).
Authentifizierung: Der Server ist ein OAuth-2.1-Autorisierungsserver (über @cloudflare/workers-oauth-provider).
Das Hinzufügen zu einem MCP-Client öffnet eine Browserseite, auf der du deine Garmin-E-Mail-Adresse und dein Passwort eingibst
(und einen MFA-Code, falls dein Konto 2FA verwendet). Der Worker führt Garmins SSO-Web-Widget-Login-Flow serverseitig aus —
den einzigen Login-Pfad, der von Rechenzentrums-IPs aus nicht bot-blockiert wird — erhält ein langlebiges (~1 Jahr) OAuth1-Token,
verwirft deine Anmeldedaten und speichert nur dieses Token verschlüsselt im Grant. Er stellt dann bei Bedarf kurzlebige OAuth2-Bearer-Tokens
für connectapi.garmin.com aus. Ein „Token einfügen“-Fallback (über das lokale Skript unten) ist hinter einem Details-Toggle versteckt,
falls Garmin jemals beginnt, die serverseitige Anmeldung zu blockieren.
Bereitstellung
npm installnpx wrangler kv namespace create OAUTH_KV— füge die ID inwrangler.jsonceinnpx wrangler deploy
Related MCP server: Garmin Open MCP
Client verbinden
claude mcp add garmin --transport http https://garmin-mcp.<your-subdomain>.workers.dev/mcpClaude Code öffnet die Autorisierungsseite in deinem Browser; folge den zwei Schritten. claude.ai web: Einstellungen → Konnektoren → Benutzerdefinierten Konnektor mit derselben URL hinzufügen. Claude Desktop und andere Nur-stdio-Clients: mcp-remote übernimmt den OAuth-Flow ebenfalls.
Der Zugriff ist ausschließlich über OAuth möglich — es gibt keinen Pfad über rohe Header. Jede /mcp-Anfrage wird durch ein vom Anbieter ausgestelltes Zugriffstoken abgesichert, und ein Zugriffstoken wird nur durch den Abschluss des Login-Flows erstellt.
Auf dein eigenes Konto beschränken
Setze OWNER_GARMIN_IDS in wrangler.jsonc auf deinen Garmin-displayName (den Wert, den get_user_profile zurückgibt) — eine durch Kommas getrennte Zulassungsliste. Jede Anmeldung für ein Garmin-Konto, das nicht auf der Liste steht, wird im Autorisierungsschritt abgelehnt, sodass Fremde deine Bereitstellung nicht nutzen können, selbst mit ihren eigenen gültigen Garmin-Anmeldedaten. Lass es leer, um jedes Garmin-Konto zuzulassen.
Abweichungen vom Original (Remote-/Serverless-Anpassungen)
download_activity_filegibt den Dateiinhalt inline zurück (fit als base64, gpx/tcx/csv als Text, größenbegrenzt), anstatt auf die lokale Festplatte zu schreiben;set_fit_download_dirist ein dokumentierter No-op.upload_coursenimmtgpx_content(GPX-XML-Text) anstelle eines lokalen Dateipfads.get_activity_fit_datadeckt Sitzung/Runden/Aufzeichnungen + Leistungsanalyse ab (NP, VI, Leistungskurve, W/kg); die Di2-Schaltvorgänge, die Anstiegserkennung und die HRV-Analysen des Originals wurden nicht portiert.Subrequest-Budget des kostenlosen Tarifs (~50/Aufruf):
get_training_load_trendauf 45 Tage begrenzt (vorher 90),get_power_duration_curveauf 15 Aktivitäten (vorher 20),get_hrv_trendnutzt in einem Aufruf den Range-Endpunkt, Ziel-/Schritt-/Menstruations-Paginierungsschleifen begrenzt.Tools geben JSON-Objekte zurück anstatt vorab serialisierter Zeichenketten; Fehler erscheinen als MCP-Tool-Fehler.
Hinweise
Das Garmin-Token wird verschlüsselt im Grant in Workers KV gespeichert; wenn es abläuft (~1 Jahr), schlagen Tool-Aufrufe fehl — authentifiziere den Server in deinem Client erneut, um den Flow erneut durchzuführen.
Zugriffstokens sind Bearer-Credentials: Wer ein gültiges besitzt, hat bis zu dessen Ablauf Zugriff auf deine Daten. Die Sicherheit hängt also davon ab, dass dein MCP-Client das gespeicherte Token geheim hält.
Lokale Entwicklung:
npm run dev, richte dann einen Client aufhttp://localhost:8787/mcpaus.
This server cannot be deployed
Maintenance
Related MCP Connectors
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.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePersonal MCP server for interacting with your Garmin Connect data. Exposes 62 tools across 11 domains including activities, health, training, and workouts.1MIT
- AlicenseAqualityDmaintenanceUnofficial MCP server bridging Garmin Connect to MCP clients and ChatGPT, providing tools to access health data, activities, and trends via a self-hosted API.11MIT
- AlicenseAqualityBmaintenanceMCP server for reading and querying Garmin Connect data, including activities, strength history, recovery, trends, and optionally creating workouts.12MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Garmin Connect that enables users to access and manage their personal health and fitness data, including daily summaries, heart rate, sleep, HRV, stress, body composition, activities, and training readiness, with secure per-user authentication.Apache 2.0