Garmin Connect MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMIN_EMAIL | Yes | Your Garmin Connect email address. | |
| GARMIN_MFA_CODE | No | Optional MFA code for non-interactive login. | |
| GARMIN_PASSWORD | Yes | Your Garmin Connect password. |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| garmin_connection_statusA | Check Garmin Connect login without returning personal data. |
| garmin_pingA | Check Garmin Connect login without returning personal data. |
| garmin_profileA | Get the raw private Garmin Connect user profile. |
| garmin_daily_statsB | Get raw private daily Garmin stats for a date in YYYY-MM-DD format. |
| garmin_heart_rateA | Get raw private heart-rate data for a date in YYYY-MM-DD format. |
| garmin_sleepA | Get raw private sleep data for a date in YYYY-MM-DD format. |
| garmin_hrvB | Get raw private HRV data for a date in YYYY-MM-DD format. |
| garmin_body_batteryA | Get raw private Body Battery data for a date in YYYY-MM-DD format. |
| garmin_stressB | Get raw private stress data for a date in YYYY-MM-DD format. |
| garmin_recent_activitiesC | List raw private recent Garmin activities. |
| garmin_activityC | Get raw private Garmin activity details by activity ID. |
| garmin_workoutsC | List saved Garmin workout templates with summarized fields. |
| garmin_scheduled_workoutsA | List scheduled Garmin workouts for a calendar month using 1-12 months. |
| garmin_schedule_workoutB | Schedule an existing Garmin workout template on a YYYY-MM-DD date. |
| garmin_create_scheduled_workoutB | Upload a Garmin workout JSON payload, then schedule it on a YYYY-MM-DD date. |
| garmin_unschedule_workoutB | Remove a Garmin workout from the calendar without deleting the template. |
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 16 tools
Most tools target distinct data types or actions, but there is direct overlap between garmin_connection_status and garmin_ping, both described as checking login status without returning personal data. Also, workout scheduling tools (garmin_create_scheduled_workout vs garmin_schedule_workout) may cause slight confusion, though descriptions clarify differences.
All tools follow a consistent 'garmin_' prefix followed by snake_case nouns or verb-noun phrases (e.g., garmin_activity, garmin_create_scheduled_workout). The naming pattern is uniform and predictable.
With 16 tools covering diverse health and fitness data (activities, body battery, heart rate, sleep, stress, workouts, profile, etc.), the count is well-scoped for a personal data access server. Each tool serves a clear purpose without being excessive.
The tool set covers core query and some mutation operations for Garmin data. However, gaps exist: no tool to delete workout templates (only unschedule), no activity deletion, and no date-range filtering for activities beyond recent. Overall, minor missing features for a comprehensive Garmin management surface.