Garmin Connect MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMIN_MCP_DATA_DIR | No | Folder for token cache and FIT downloads. Defaults to ~/Library/Caches/garmin-connect-mcp on macOS and ~/.cache/garmin-connect-mcp otherwise. | |
| GARMIN_PERSONAL_API_KEY | Yes | Personal API Key, created at https://connect.garmin.com/app/settings/personalApiToken |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| profileC | Profil-Einstellungen (Gewicht, Grösse, VO2max, Laktatschwelle, Einheiten) und Herzfrequenzzonen. |
| daily_summariesB | Tageszusammenfassungen pro Tag: Schritte, Kalorien, Ruhepuls, Stress, Body Battery, Intensitätsminuten, Etagen usw. Standard: letzte 7 Tage. |
| sleep_summariesA | Schlaf-Zusammenfassung pro Nacht (Dauer, Phasen, Sleep Score). Standard: letzte 14 Tage. |
| hrv_summariesA | HRV pro Nacht (Mittelwert, 7-Tage-Schnitt, Baseline, Status). Standard: letzte 28 Tage. |
| body_batteryB | Body Battery pro Tag (Aufladung, Verbrauch, Höchst-/Tiefstwert). Standard: letzte 7 Tage. |
| stressB | Durchschnittlicher Stress pro Tag. Standard: letzte 28 Tage. |
| stepsB | Schritte und Schrittziel pro Tag. Standard: letzte 28 Tage. |
| weightC | Gewichtsmessungen (inkl. Körperzusammensetzung, falls vorhanden). Standard: letzte 90 Tage. |
| wellness_activity_summariesC | Wellness-Aktivitätsübersicht pro Tag. Standard: letzte 7 Tage. |
| sleep_dayA | Detaillierter Schlaf einer Nacht (Phasen, Atmung, HF, HRV, Sleep Score inkl. Faktoren).
|
| hrv_dayB | HRV einer Nacht mit Einzelmessungen (Zeitreihe nur mit include_timeseries=true). |
| heart_rate_dayC | Herzfrequenz eines Tages (Ruhepuls, Min/Max; Verlauf nur mit include_timeseries=true). |
| fitness_ageD | Fitness-Alter und beeinflussende Faktoren. |
| spo2_dayC | Pulsoximetrie (SpO2) und Höhenakklimatisierung eines Tages. |
| list_activitiesA | Aktivitäten (kompakt) im Zeitraum, neueste zuerst. Standard: letzte 30 Tage.
activity_type z.B. running, cycling, trail_running, lap_swimming, strength_training.
Für mehr als |
| activity_detailsC | Vollständige Zusammenfassung einer Aktivität (Splits-Summary, Trainingseffekt, Gerät usw.). |
| activity_workoutsC | Geplante/strukturierte Workouts, die mit einer Aktivität verknüpft sind. |
| activity_streamsA | Lädt die Original-FIT-Datei und liefert Session-Werte, alle Laps und einen auf
|
| raw_getB | Beliebiger GET-Aufruf an die Personal API für Endpoints ohne eigenes Tool (siehe Swagger-Doku), z.B. path='/usersummary-service/stats/hydration/daily/2026-10-01/2026-10-21'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools target distinct Garmin data domains, and summary-vs-detail pairs like sleep_summaries/sleep_day and hrv_summaries/hrv_day are reasonably clear. However, daily_summaries overlaps heavily with dedicated stress, steps, and body_battery tools, and wellness_activity_summaries is vague, so an agent may hesitate between aggregate and metric-specific tools.
The set is mostly readable snake_case, but conventions are mixed: many tools are noun phrases (profile, daily_summaries, sleep_day), one uses a verb_noun pattern (list_activities), and raw_get is a generic fallback. There is no single predictable naming pattern, though it is not chaotic.
Nineteen tools is slightly above the typical range, but Garmin Connect covers many distinct health and activity data domains, so most tools earn their place. The only mild bloat comes from the overlap between daily_summaries and the metric-specific summary tools.
The surface is broad for read-only health and activity data: profile, daily metrics, sleep, HRV, body battery, stress, steps, weight, SpO2, fitness age, activities, streams, and a raw GET fallback. Minor gaps remain around write operations such as creating workouts, uploading activities, or modifying profile settings beyond GET endpoints.