Skip to main content
Glama

Garmin MCP

Projektstatus (2026-08-23): Implementierung des persönlichen Tunnels; lokale Smoke-Tests bestanden. Aktivieren Sie keinen Freundeszugriff oder öffentlichen MCP-Eingang. Echte Garmin-Anmeldedaten bleiben blockiert, bis der Betreiber den separaten öffentlichen HTTPS-Link-Web-Tunnel ausdrücklich freigibt und die Live-Test-Checkliste in PERSONAL_TUNNEL_RUNBOOK.md abgeschlossen hat.

Ein mehrbenutzerfähiger, schreibgeschützter MCP-Ressourcenserver, der cyberjunky/python-garminconnect kapselt. Er stellt authentifizierte Garmin-Daten bereit, ohne eine Benutzer-ID als Tool-Argument zu akzeptieren.

Sicherheitsmodell

Die folgenden Aufzählungen beschreiben die ursprüngliche Entwurfsabsicht. Sie sind durch die aktuelle Implementierung noch nicht vollständig belegt; die bekannten Lücken und erforderlichen Abnahmetests werden in DESIGN_DRAFT.md erfasst.

  • MCP-Bearer-Tokens werden getrennt von der Garmin-Authentifizierung geprüft. Produktions-OIDC validiert Signatur, Aussteller, Zielgruppe, Ablaufzeit, erforderliche Scopes und verwendet den verifizierten sub-Anspruch.

  • Garmin-E-Mail-Adresse, -Passwort und -MFA-Codes existieren nur während ihrer Anfrage. Sie werden weder gespeichert noch protokolliert. Die Uvicorn-Zugriffsprotokollierung ist deaktiviert.

  • Es wird nur das serialisierte Sitzungs-JSON von python-garminconnect gespeichert, das mit AES-256-GCM verschlüsselt und gegen den Besitzer-Repincipal authentifiziert wird, damit Chiffrattext nicht zwischen Benutzern verschoben werden kann.

  • MFA-Clients sind prozesslokal, einmalig, besitzergebunden und laufen nach fünf Minuten ab.

  • Verbindungs-URLs platzieren ihren signierten Einmal-Status im Fragment. Externes JavaScript leert das Fragment und übernimmt den Status in den POST-Body, damit er nicht in HTTP- und Proxy-Zugriffsprotokollen auftaucht.

  • Disconnect löscht die lokal verschlüsselten Tokens. Dadurch wird ein bereits von Garmin ausgestelltes Token nicht widerrufen; widerrufen Sie den Zugriff bei vermutetem Erfolg in den Garmin-Sicherheitseinstellungen.

Related MCP server: garmin-mcp

Persönlicher ChatGPT-Tunnelmodus

Die persönliche Einrichtung verwendet absichtlich zwei Listener:

  • SERVER_ROLE=mcp auf Loopback-Port 3000. Nur der OpenAI Secure MCP Tunnel darf diesen Port erreichen.

  • SERVER_ROLE=link-web auf Loopback-Port 3001. Ein separater HTTPS-Tunnel darf nur dieser Listener freigeben, damit ein Telefon Garmin-Anmeldedaten eingeben kann, ohne den MCP-Endpunkt zu veröffentlichen.

Im Modus AUTH_MODE=tunnel wird genau eine TUNNEL_PRINCIPAL_ID konfiguriert; es handelt sich nicht um einen Mehrbenutzermodus. Der OpenAI-Tunnel ist die Authentifizierungsgrenze, und der Server verweigert den kombinierten Modus oder eine Nicht-Loopback-Bindung, wenn die Container-Isolation nicht ausdrücklich aktiviert ist. Die vollständige Einrichtung finden Sie in PERSONAL_TUNNEL_RUNBOOK.md.

Local Akführung

Erfordert Python 3.12+, PostgreSQL 17 und uv.

cp .env.example .env
# Fill secrets, then for local-only bearer authentication set AUTH_MODE=development.
uv sync --all-extras
psql "$DATABASE_URL" -f migrations/001_initial.sql
uv run garmin-mcp

Oder führen Sie docker compose up --build aus, nachdem Sie .env erstellt haben. Compose veröffentlicht beide Anwendungsports nur auf 127.0.0.1 und keinen PostgreSQL. Der MCP-Endpunkt ist /mcp; der Health-Endpunkt ist /healthz. Im Entwicklungsmodus ist der Bearer-Wert selbst die lokale Benutzer-ID. Setzen Sie den Entwicklungsmodus niemals über das Loopback hinaus aus.

MCP Tools

  • get_connection_status

  • connect_garmin – gibt eine zehnminütige, einmalig verwendbare Browser-URL zurück

  • get_profile

  • disconnect_garmin

Das derzeitige Garmin-Datentool ist schreibgeschützt. disconnect_garmin ändert nur den lokalen Verbindungszustand, indem es die gespeicherte Sitzung löscht. Kontoanmeldedaten werden nur in der Browser-Verknüpfungsseite eingegeben, nie als MCP Tool-Argument übergeben. Health-/Aktivitäts-Tools wurden noch nicht implementiert.

Validierung

uv run ruff check .
uv run mypy src
uv run pytest
uv build
uv run pip-audit

Verwenden Sie keine echten Garmin-Anmeldedaten in der CI. Jeder künfige Live-Test muss ein dediziertes Konto und einen expliziten Integration-Test-Marker verwenden.

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
    Connects Garmin Connect data to MCP-compatible clients, providing access to fitness activities, health metrics, and training plans. It supports advanced features like headless 2FA and automated MFA retrieval to enable seamless health data interaction through natural language.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects MCP clients to Garmin Connect data, enabling queries about activities, sleep, heart rate, body battery, and training status.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Exposes Garmin Connect health and activity data (steps, sleep, heart rate, etc.) via MCP tools, with built-in login and MFA support.
  • A
    license
    B
    quality
    B
    maintenance
    Enables retrieval of Garmin Connect data such as activities, sleep, heart rate, and body battery levels using unofficial API through MCP tools.
    4
    MIT

View all related MCP servers

Related MCP Connectors

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

  • Mastodon MCP — public Mastodon data via mastodon.social (no auth required)

  • Wise (https://wise.com) MCP, multi-currency account access via Personal Token + SCA key. Reads profi

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

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