Skip to main content
Glama
sedoglia

Garmin Connect MCP Server

by sedoglia

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_EMAILYesYour Garmin Connect email address
GARMIN_PASSWORDYesYour Garmin Connect password

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
setup_credentialsA

Store Garmin Connect credentials encrypted in the OS native vault and log in immediately. Use this when the server reports that credentials are missing or invalid. The password is encrypted at rest and never written to a plain text file.

check_credentialsA

Report whether Garmin credentials are configured, which source they come from, where the encrypted data is stored and whether the session is authenticated. Never returns the password.

clear_credentialsA

Delete the encrypted credentials and OAuth tokens from secure storage and end the current session. Credentials supplied through the extension settings are not affected and must be cleared there.

list_recent_activitiesB

Get a list of recent activities from Garmin Connect. Returns activity summaries including name, type, distance, duration, and date.

get_activity_detailsB

Get detailed information about a specific activity including splits, heart rate zones, and GPS data.

get_health_metricsB

Get daily health metrics including heart rate data and step count for a specific date.

get_sleep_dataB

Get detailed sleep information including duration, sleep stages, and quality score.

get_body_compositionA

Get body composition measurements (weight, BMI, body fat, muscle and bone mass) over a period, plus the average across the period.

get_devicesA

List the Garmin devices registered on the account with their id, model, serial and firmware version. Use get_device_settings for the configuration of a single device.

get_user_profileB

Get user profile information including display name and account details.

get_training_statusB

Get the training status for a date: status and feedback phrase, VO2 max, fitness trend, acute and chronic training load and the acute/chronic workload ratio.

get_stepsB

Get step count for a specific date. Returns the total number of steps recorded.

get_heart_rateA

Get detailed heart rate data for a specific date including resting HR, max HR, and HR zones.

get_hydrationA

Get daily hydration/water intake data for a specific date.

get_workoutsB

Get list of scheduled/planned workouts from Garmin Connect.

get_activity_splitsB

Get split/lap data for a specific activity including pace, distance, and time for each split.

get_stress_dataB

Get stress level data for a specific date. Returns stress levels throughout the day (0-100 scale), with 0-25 resting, 26-50 low, 51-75 medium, 76-100 high stress. Includes overall stress level, durations by category, and detailed timestamp values.

get_body_batteryA

Get Body Battery energy level data for a date range. Body Battery tracks energy levels (0-100) throughout the day based on sleep, stress, and activity. Shows charged/drained periods and sleep quality impact.

get_hrv_dataA

Get Heart Rate Variability (HRV) data for a specific date. HRV measures the variation in time between heartbeats, indicating recovery and stress levels.

get_respiration_dataA

Get respiration/breathing rate data for a specific date. Shows breaths per minute throughout the day and during sleep.

get_spo2_dataA

Get SpO2 (blood oxygen saturation) data for a specific date. Shows pulse oximetry readings as percentage (typically 95-100% is normal).

get_workout_by_idB

Get detailed information about a specific workout by its ID.

download_workoutA

Download a workout in FIT format for syncing to a Garmin device.

create_workoutB

Create a new structured workout in Garmin Connect. Supports complex interval workouts with warmup, cooldown, and repeat blocks.

Example for interval running workout: { "workoutName": "5x3min Intervals", "sportType": "running", "description": "Interval training", "workoutSegments": [{ "segmentOrder": 1, "sportType": "running", "workoutSteps": [ { "stepOrder": 1, "stepType": "warmup", "endCondition": "time", "endConditionValue": 600 }, { "stepOrder": 2, "stepType": "interval", "endCondition": "time", "endConditionValue": 180, "targetType": "pace" }, { "stepOrder": 3, "stepType": "recovery", "endCondition": "time", "endConditionValue": 120 }, { "stepOrder": 4, "stepType": "cooldown", "endCondition": "time", "endConditionValue": 600 } ] }] }

update_workoutB

Update an existing workout (name, description, or structure).

delete_workoutB

Delete a workout from Garmin Connect.

schedule_workoutA

Schedule an existing workout on a specific date. Returns a workoutScheduleId that can be used to unschedule.

unschedule_workoutA

Remove a scheduled workout from the calendar. IMPORTANT: Always unschedule before deleting a workout to avoid ghost entries.

upload_activityB

Upload an activity file (FIT, GPX, TCX format) to Garmin Connect.

create_manual_activityB

Create a manual activity entry in Garmin Connect.

set_activity_nameB

Change the name of an existing activity.

set_activity_typeB

Change the type/category of an existing activity.

delete_activityA

Delete an activity from Garmin Connect. WARNING: This action cannot be undone.

download_activityA

Download an activity in various formats (FIT, TCX, GPX, KML, CSV).

get_device_last_usedA

Get the Garmin device that uploaded data most recently, with its id, name and upload time.

get_device_settingsB

Get settings for a specific Garmin device.

get_all_day_stressC

Get detailed all-day stress data with full breakdown.

get_floorsA

Get floors climbed and descended for a specific date, with the 15-minute breakdown.

get_intensity_minutesA

Get intensity minutes (moderate and vigorous) for a date, or for a date range when endDate is given, together with the weekly totals and goal.

get_max_metricsB

Get max metrics including VO2 max and related fitness data.

get_training_readinessB

Get training readiness score indicating how prepared your body is for training.

get_endurance_scoreC

Get endurance score based on recent training load.

get_fitness_ageB

Get fitness age estimation based on VO2 max and other metrics.

get_weigh_insB

Get weigh-in records for a date range.

add_weigh_inA

Add a new weigh-in record with optional body composition data.

delete_weigh_inC

Delete a weigh-in record.

get_blood_pressureB

Get blood pressure readings for a date range.

set_blood_pressureC

Record a blood pressure reading.

delete_blood_pressureA

Delete a blood pressure reading. Use get_blood_pressure with the /all endpoint to find the version ID.

get_activity_weatherB

Get weather conditions during an activity.

get_activity_hr_zonesA

Get time spent in each heart rate zone during an activity.

get_activity_exercise_setsA

Get exercise sets from a strength training activity.

get_goalsA

Get user goals. Without a status every status is queried in turn and the results are merged, each goal carrying the status it was found under.

get_adhoc_challengesB

Get ad-hoc challenges history.

get_badge_challengesC

Get available badge challenges.

get_earned_badgesA

Get all badges earned by the user.

get_personal_recordsB

Get all personal records (PRs). Each record carries a typeId identifying its category, its value, the date it was set and, for records set during an activity, that activity.

get_race_predictionsB

Get predicted race times for 5K, 10K, half marathon, and marathon based on current fitness.

get_gear_statsA

Get usage statistics for a specific piece of gear. Note: Requires the gear UUID which can be found in Garmin Connect web interface URL.

link_gear_to_activityB

Link a piece of gear to an activity. Note: Requires the gear UUID which can be found in Garmin Connect web interface URL.

get_progress_summaryC

Get aggregated progress summary between two dates.

get_daily_summaryA

Get a compact daily summary: steps and goal, calories, distance, floors, intensity minutes, resting/min/max heart rate, stress, body battery and time breakdown. Use get_heart_rate for the full heart rate series.

get_user_summaryC

Get comprehensive user activity summary for a specific date including steps, calories, distance, active minutes, and more.

get_steps_dataB

Get detailed step data chart for a specific date with timestamps.

get_daily_stepsA

Get daily step counts for a date range (max 28 days per request, auto-chunked for longer ranges).

get_activities_by_dateB

Get all activities within a date range with optional filtering by type.

get_activity_typed_splitsA

Get typed splits for an activity (more detailed than regular splits, useful for bouldering, strength training, etc.).

get_rhr_dayB

Get resting heart rate for a specific day.

get_hill_scoreC

Get hill score data indicating climbing/vertical performance.

get_all_day_eventsB

Get all daily events including auto-detected activities that may not have been recorded.

get_body_battery_eventsB

Get Body Battery events for a date (sleep, activities, naps that affected energy levels).

add_hydration_dataB

Add hydration/water intake data in milliliters.

get_available_badgesA

Get all badges available to earn.

get_in_progress_badgesA

Get badges that are currently in progress (started but not completed).

get_available_badge_challengesC

Get available badge challenges to join.

get_non_completed_badge_challengesC

Get badge challenges that have not been completed yet.

get_in_progress_virtual_challengesB

Get virtual challenges that are currently in progress.

remove_gear_from_activityA

Remove/unlink a piece of gear from an activity. Note: Requires the gear UUID from Garmin Connect web interface.

get_gear_activitiesA

Get activities where a specific piece of gear was used. Note: Requires the gear UUID from Garmin Connect web interface.

get_training_plansA

Get all available training plans.

get_training_plan_by_idB

Get detailed information about a specific training plan.

get_menstrual_dataB

Get menstrual cycle data for a specific date.

get_pregnancy_summaryB

Get pregnancy tracking summary/snapshot data.

request_reloadA

Request reload of data for a specific date (useful for older data that was offloaded by Garmin).

get_activity_typesA

Get all activity types available in Garmin Connect.

get_primary_training_deviceB

Get information about the primary training device and device priorities.

count_activitiesA

Count the activities in Garmin Connect, over the whole history or over a date range.

get_fitness_statsC

Get aggregated fitness statistics between two dates.

get_all_gearA

Get complete list of all gear/equipment with their UUIDs. This solves the UUID problem - you can now discover all gear without needing to manually find UUIDs in the web interface.

update_gearC

Update existing gear/equipment details.

delete_gearA

Delete a piece of gear/equipment. WARNING: This cannot be undone.

get_gear_typesA

Get all available gear/equipment types (e.g., Shoes, Bike, Golf Clubs, Other). Returns type names and primary keys used when creating gear.

get_gear_makesA

Get all available gear brands/makes (e.g., Nike, Adidas, ASICS, Brooks). Returns make names and primary keys.

get_gear_collectionsA

Get all gear collections. Collections group gear items that are used together (e.g., running kit, bike components).

get_gear_collectionA

Get detailed information about a specific gear collection, including the gear items in the collection and associated activity types.

create_gear_collectionA

Create a new gear collection to group equipment used together (e.g., running kit, bike components). Requires a name and first use date.

update_gear_collectionA

Update an existing gear collection. Can change name, add/remove gear items, or change associated activity types.

delete_gear_collectionA

Delete a gear collection. WARNING: This cannot be undone. The gear items in the collection will NOT be deleted.

get_activity_commentsA

Get all comments on an activity.

set_activity_privacyA

Change the privacy of an activity. "subscribers" is what Garmin Connect shows as "connections only". Read the current level from accessControlRuleDTO in get_activity_details before changing it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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

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