Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
garmin-loginA

Returns step-by-step instructions for authenticating with Garmin Connect. Requires the Playwright MCP server to be installed. After following these steps, ALWAYS call the check-session tool to verify the login worked.

check-sessionA

Check if the saved Garmin Connect session is still valid. MUST be called after garmin-login to verify authentication worked.

list-activitiesA

List your Garmin Connect activities with pagination

get-activityB

Get full activity summary (name, type, distance, duration, HR, calories, etc.)

get-activity-detailsA

Get time-series metrics for an activity (HR, cadence, elevation, pace over time)

get-activity-splitsB

Get lap/split data for an activity

get-activity-hr-zonesB

Get heart rate time-in-zone breakdown for an activity

get-activity-polylineA

Get full-resolution GPS track/polyline for an activity

get-activity-weatherB

Get weather conditions during an activity

get-user-profileA

Get your Garmin Connect user profile and settings

download-fitB

Download the original FIT file for an activity. Returns the file path.

get-daily-summaryB

Get daily summary: steps, calories, distance, intensity minutes, floors, etc.

get-daily-heart-rateB

Get heart rate data throughout the day (resting HR, HR timeline)

get-daily-stressB

Get stress level data throughout the day

get-daily-summary-chartB

Get daily wellness summary chart data (combined health metrics)

get-daily-intensity-minutesB

Get intensity minutes earned for a date

get-daily-movementB

Get daily movement/activity data

get-daily-respirationC

Get respiration rate data for a date

get-sleepC

Get sleep data: score, duration, stages, SpO2, HRV during sleep

get-body-batteryA

Get today's body battery charged/drained values

get-hrvB

Get heart rate variability (HRV) data for a date

get-weightB

Get weight measurements over a date range

get-personal-recordsA

Get all personal records with history (fastest mile, longest run, etc.)

get-fitness-statsB

Get aggregated fitness stats by activity type over a date range

get-vo2maxB

Get latest VO2 Max / fitness level estimate

get-hr-zones-configB

Get your configured heart rate zone boundaries

get-training-readinessA

Get training readiness score for a date (based on sleep, recovery, training load)

get-sleep-statsB

Get sleep statistics over a date range (averages, trends)

get-calendarB

Get monthly calendar with activities, workouts, and events

get-goalsC

Get fitness goals

get-badgesA

Get all earned badges/achievements

get-badge-leaderboardB

Get badge leaderboard among your connections

get-hydrationB

Get daily hydration/water intake data

get-power-zonesA

Get power zone configuration for all sports

list-workoutsB

List your saved workouts

get-workoutA

Get a single workout by ID with full step/segment details

download-workout-fitC

Download a workout as a FIT file

create-workoutA

Upload a workout from JSON data.

Creates a new workout in Garmin Connect from structured workout data.

IMPORTANT: Step types must use Garmin's DTO format:

  • Use "ExecutableStepDTO" for regular steps (warmup, interval, cooldown, recovery)

  • Use "RepeatGroupDTO" for repeat/interval groups with numberOfIterations

IMPORTANT: For heart rate zone targets, use "zoneNumber" (1-5), NOT targetValueOne/targetValueTwo. targetValueOne/targetValueTwo are only for absolute value ranges (e.g. pace in m/s, power in watts).

Sport type IDs: 1=running, 2=cycling, 3=swimming, 4=walking, 5=strength_training, 6=fitness_equipment, 7=hiking. Step type IDs: warmup (1), cooldown (2), interval (3), recovery (4), rest (5). End condition IDs: time (2, value in seconds), distance (3, value in meters), lap.button (7, no value), reps (10, value = rep count — use for strength exercises). Target type IDs: no.target (1), speed (2, m/s range via targetValueOne/targetValueTwo), heart.rate.zone (4, use zoneNumber 1-5), power.zone (11, use zoneNumber).

Available Templates: Instead of building workout JSON from scratch, use these MCP resources as starting points:

  • workout://templates/simple-run - Basic warmup/run/cooldown structure

  • workout://templates/interval-running - Interval training with repeat groups

  • workout://templates/tempo-run - Tempo run with heart rate zone targets

  • workout://templates/strength-circuit - Strength training circuit structure

  • workout://reference/structure - Complete JSON structure reference with all fields

Access these resources using your MCP client's resource reading capability, modify the template as needed, and pass the resulting JSON as the workout parameter.

Example workout structure with HR zone target: { "workoutName": "My Workout", "sportType": {"sportTypeId": 1, "sportTypeKey": "running"}, "workoutSegments": [{ "segmentOrder": 1, "sportType": {"sportTypeId": 1, "sportTypeKey": "running"}, "workoutSteps": [{ "type": "ExecutableStepDTO", "stepOrder": 1, "stepType": {"stepTypeId": 3, "stepTypeKey": "interval"}, "endCondition": {"conditionTypeId": 2, "conditionTypeKey": "time"}, "endConditionValue": 1200.0, "targetType": {"workoutTargetTypeId": 4, "workoutTargetTypeKey": "heart.rate.zone"}, "zoneNumber": 3 }] }] }

Example with RepeatGroupDTO for intervals: { "workoutName": "Interval Run", "sportType": {"sportTypeId": 1, "sportTypeKey": "running"}, "workoutSegments": [{ "segmentOrder": 1, "sportType": {"sportTypeId": 1, "sportTypeKey": "running"}, "workoutSteps": [ { "type": "ExecutableStepDTO", "stepOrder": 1, "stepType": {"stepTypeId": 1, "stepTypeKey": "warmup"}, "endCondition": {"conditionTypeId": 2, "conditionTypeKey": "time"}, "endConditionValue": 600.0, "targetType": {"workoutTargetTypeId": 1, "workoutTargetTypeKey": "no.target"} }, { "type": "RepeatGroupDTO", "stepOrder": 2, "numberOfIterations": 6, "workoutSteps": [ { "type": "ExecutableStepDTO", "stepOrder": 1, "stepType": {"stepTypeId": 3, "stepTypeKey": "interval"}, "endCondition": {"conditionTypeId": 2, "conditionTypeKey": "time"}, "endConditionValue": 60.0, "targetType": {"workoutTargetTypeId": 4, "workoutTargetTypeKey": "heart.rate.zone"}, "zoneNumber": 5 }, { "type": "ExecutableStepDTO", "stepOrder": 2, "stepType": {"stepTypeId": 4, "stepTypeKey": "recovery"}, "endCondition": {"conditionTypeId": 2, "conditionTypeKey": "time"}, "endConditionValue": 90.0, "targetType": {"workoutTargetTypeId": 4, "workoutTargetTypeKey": "heart.rate.zone"}, "zoneNumber": 2 } ] }, { "type": "ExecutableStepDTO", "stepOrder": 3, "stepType": {"stepTypeId": 2, "stepTypeKey": "cooldown"}, "endCondition": {"conditionTypeId": 2, "conditionTypeKey": "time"}, "endConditionValue": 600.0, "targetType": {"workoutTargetTypeId": 1, "workoutTargetTypeKey": "no.target"} } ] }] }

schedule-workoutA

Schedule an existing workout to a date on your calendar. The workout will sync to your device.

delete-workoutB

Delete a workout from Garmin Connect

run-testsA

Returns a test plan for verifying all garmin-connect-mcp tools work. Call each tool listed and report results.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
simple-run
interval-running
tempo-run
strength-circuit
workout-structure-reference

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

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