Garmin Connect MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMIN_PASSWORD | Yes | Garmin Connect password used for authentication. | |
| GARMIN_TIMEZONE | No | Timezone for date calculations (IANA ID like 'Asia/Seoul' or 'America/Los_Angeles', or offset like 'UTC+09:00'). Defaults to 'UTC' if not set. | UTC |
| GARMIN_USERNAME | Yes | Garmin Connect email address used for authentication. |
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
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_personal_recordsB | Get personal best times for running distances (5K, 10K, half marathon, full marathon) |
| get_vo2maxB | Get current VO2 Max value and historical data |
| get_training_statusB | Get current training status including training effect, load balance, and fitness trends |
| list_training_plansA | List available Garmin running training plans with optional filters for goal distance and experience level |
| get_training_plan_overviewB | Summarize a specific Garmin training plan including high-level details, phases, and schedule preview |
| get_training_plan_scheduleB | Build a weekly schedule snapshot for a training plan, including personal calendar alignment when available |
| get_gear_insightsB | Analyze running gear usage to surface mileage totals, replacement alerts, and recent utilization patterns |
| get_recent_running_activitiesB | Get recent running activities with cursor-based pagination. Returns activities with pagination metadata and resource URIs for detailed data. |
| get_activity_summaryC | Get basic activity information including distance, time, pace, and elevation |
| get_activity_detailsB | Get comprehensive activity metrics including splits, advanced metrics, and performance data. Response size optimized for Claude context window. |
| get_heart_rate_metricsC | Get heart rate metrics including resting heart rate and heart rate variability (HRV) |
| get_sleep_analysisC | Get detailed sleep data including sleep stages, quality, and duration |
| get_body_batteryC | Get body battery energy levels throughout the day |
| get_stress_levelsC | Get stress level data and analysis |
| get_daily_activityB | Get daily activity metrics including steps, floors climbed, and intensity minutes |
| calculate_training_pacesA | Calculate Jack Daniels training paces based on recent race performance |
| get_advanced_running_metricsC | Get advanced running metrics including stride length, vertical ratio, vertical amplitude, ground contact time |
| analyze_heart_rate_zonesC | Analyze heart rate zone distribution and time spent in each zone for an activity |
| set_race_goalC | Set a target race goal and track progress |
| analyze_training_loadC | Analyze training load and recovery status to prevent injury |
| get_running_trendsC | Get running performance trends over a specified period. Response size optimized for Claude context window. |
| get_lactate_thresholdB | Get lactate threshold pace and heart rate data |
| get_race_predictionsB | Get predicted race times based on current fitness level |
| get_training_readinessC | Get training readiness score and recommendations |
| get_recovery_timeB | Get recommended recovery time after recent activities |
| get_training_load_balanceB | Get acute vs chronic training load balance (ATL/CTL ratio) for injury prevention |
| get_training_effectB | Get aerobic and anaerobic training effect analysis |
| calculate_vdot_zonesC | Calculate VDOT and training zones based on recent race performance or time trial |
| analyze_threshold_zonesB | Analyze lactate threshold zones for double threshold training |
| suggest_daily_workoutC | Suggest appropriate workout based on current condition and training phase |
| analyze_workout_qualityC | Analyze how well a workout was executed compared to plan |
| get_endurance_scoreB | Get endurance performance score indicating aerobic endurance capability |
| get_hill_scoreC | Get hill running performance score indicating uphill running capability |
| get_hrv_dataB | Get detailed heart rate variability (HRV) data for recovery and stress analysis |
| get_respiration_dataC | Get daily respiration data including breathing rate and patterns |
| get_spo2_dataB | Get blood oxygen saturation (SpO2) levels throughout the day |
| get_paginated_activitiesB | Get activities with proper pagination support to handle large datasets |
| get_activities_for_dateC | Get all activities for a specific date |
| get_devicesB | Get information about all connected Garmin devices |
| get_primary_training_deviceB | Get primary training device information for running activities |
| get_device_settingsC | Get device settings and configuration |
| download_activity_fileC | Download activity data in various file formats (TCX, GPX, FIT) |
| get_weekly_running_summaryC | Get comprehensive weekly running summary with trends and analysis |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Activities List | Paginated list of running activities with cursor-based navigation |
| Full Activity Details | Complete activity data including all metrics, charts, and GPS data |
| Activity Splits | Detailed split/lap data for an activity |
| Heart Rate Zones | Heart rate zone distribution and analysis for an activity |
| Advanced Metrics | Advanced running metrics (cadence, GCT, vertical oscillation, etc.) |
| Monthly Trends | Monthly running trends and statistics with pagination |
TDQS
Scored across 43 tools
Most tools have distinct purposes, but there is some overlap in analysis tools (e.g., analyze_training_load, get_training_load_balance, get_training_status) and data retrieval tools (e.g., get_activities_for_date, get_paginated_activities, get_recent_running_activities) that could cause confusion. Descriptions help differentiate them, but the boundaries are not always clear.
Tool names follow a highly consistent verb_noun pattern throughout, with clear and descriptive naming (e.g., get_activity_details, analyze_heart_rate_zones, calculate_training_paces). There are no deviations in style or convention, making the set predictable and readable.
With 43 tools, the count is excessive for the server's purpose of Garmin Connect integration. Many tools could be consolidated (e.g., multiple get_* tools for similar data types), leading to a bloated and overwhelming interface that may hinder agent usability.
The tool set provides comprehensive coverage for fitness and training data, including activity retrieval, analysis, metrics, planning, and recovery. It supports full CRUD-like operations (e.g., get, analyze, set, suggest) across the domain, with no obvious gaps in functionality.