Skip to main content
Glama

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

  1. npm install

  2. npx wrangler kv namespace create OAUTH_KV — füge die ID in wrangler.jsonc ein

  3. npx wrangler deploy

Related MCP server: Garmin Open MCP

Client verbinden

claude mcp add garmin --transport http https://garmin-mcp.<your-subdomain>.workers.dev/mcp

Claude 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_file gibt 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_dir ist ein dokumentierter No-op.

  • upload_course nimmt gpx_content (GPX-XML-Text) anstelle eines lokalen Dateipfads.

  • get_activity_fit_data deckt 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_trend auf 45 Tage begrenzt (vorher 90), get_power_duration_curve auf 15 Aktivitäten (vorher 20), get_hrv_trend nutzt 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 auf http://localhost:8787/mcp aus.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Personal MCP server for interacting with your Garmin Connect data. Exposes 62 tools across 11 domains including activities, health, training, and workouts.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Unofficial MCP server bridging Garmin Connect to MCP clients and ChatGPT, providing tools to access health data, activities, and trends via a self-hosted API.
    11
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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

View all related MCP servers

Related MCP Connectors

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

  • Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth

  • 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/rohankmr414/garmin-mcp'

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