Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHTTP bind address0.0.0.0
PORTNoHTTP bind port8000
GARMIN_EMAILNoFallback login email; fails if your account has MFA
GARMIN_IS_CNNoUse garmin.cnfalse
GARMIN_TOKENSNoToken JSON from `garmin-mcp-login`
GARMIN_PASSWORDNoFallback login password; fails if your account has MFA
KV_REST_API_URLNoUpstash Redis URL for refreshed tokens instead of disk
MCP_AUTH_SECRETNoRequired for HTTP mode, 24+ characters
GARMIN_CACHE_TTLNoSeconds to cache Garmin responses300
GARMIN_TOKEN_DIRNoWhere refreshed tokens are kept (use a volume)~/.garmin-tokens
KV_REST_API_TOKENNoUpstash Redis token for refreshed tokens instead of disk
MCP_ALLOWED_HOSTSNoComma-separated public hostnames for Host header checks
GARMIN_ALLOW_WRITESNoEnable write toolsfalse
UPSTASH_REDIS_REST_URLNoUpstash Redis URL for refreshed tokens instead of disk (alternative to KV_REST_API_URL)
UPSTASH_REDIS_REST_TOKENNoUpstash Redis token for refreshed tokens instead of disk (alternative to KV_REST_API_TOKEN)

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_profileB

The user's name, unit system, devices and heart-rate zones.

get_daily_summaryC

Steps, calories, resting HR, stress, Body Battery, intensity minutes, SpO2 for one day.

get_sleepB

Sleep for the night ending on day: duration, stages, score, HRV, SpO2, respiration.

get_hrvB

Overnight HRV: last-night average, 7-day average, baseline and status.

get_body_batteryB

Body Battery charged/drained/high/low per day (defaults to the last 7 days).

get_stressB

Average and max stress for one day.

get_heart_rateA

Resting, min and max heart rate for one day (raw=true for the intraday series).

get_body_compositionB

Weight and body composition entries (defaults to the last 30 days).

get_health_rangeA

Per-day table of health metrics for trend questions (defaults to the last 7 days).

One row per day; much cheaper for the conversation than calling the day tools in a loop.

get_training_readinessC

Training readiness score and its contributing factors for a day.

get_training_statusC

Training status, acute/chronic load, load focus, VO2max and fitness age.

get_race_predictionsC

Garmin's predicted 5K, 10K, half marathon and marathon times.

get_personal_recordsB

The user's personal records across sports.

list_activitiesB

Activities between two dates, newest first (defaults to the last 14 days).

get_recent_activitiesC

The most recent activities.

get_activityB

One activity in detail: summary plus optional laps/splits, time in HR zones, weather.

list_workoutsC

Saved workouts in the user's Garmin library.

get_scheduled_workoutsB

Workouts and other items on the Garmin calendar for a month.

create_workoutA

Create a structured workout in Garmin Connect, optionally scheduling it on a date.

    It syncs to the user's watch on the next sync. Requires GARMIN_ALLOW_WRITES=true.
    
schedule_workoutA

Put an existing saved workout on the Garmin calendar.

unschedule_workoutA

Remove a workout from the calendar (the saved workout itself stays).

delete_workoutC

Delete a saved workout from the user's Garmin library.

update_activityB

Rename an activity and/or set its description.

add_weigh_inC

Log a weight measurement.

Prompts

Interactive templates invoked by user choice

NameDescription
morning_checkHow recovered am I today, and what should I train?
weekly_reviewReview my last week of training and recovery.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 24 tools

Disambiguation4/5

Most tools have clearly distinct purposes by resource and action, such as sleep, HRV, stress, and training readiness. The main overlap is between list_activities and get_recent_activities, and to a lesser extent get_daily_summary versus the individual day-level metric tools, but the descriptions make the intended use mostly clear.

Naming Consistency5/5

Tool names consistently use snake_case with predictable verb_noun or get_noun patterns: get_sleep, list_activities, create_workout, schedule_workout, delete_workout, update_activity. Minor verb variation such as add_weigh_in does not meaningfully break the pattern.

Tool Count4/5

At 24 tools the surface is somewhat heavy, but the breadth is justified by a wide health and fitness domain spanning daily metrics, training, activities, and workouts. It is near the upper reasonable range but not excessive for a comprehensive Garmin integration.

Completeness4/5

The server covers core Garmin workflows: health metrics, trends, sleep, HRV, body battery, training status, activities, and workout scheduling/deletion. Minor gaps remain, such as updating an existing workout or retrieving a single saved workout in detail, but agents can work around these for most tasks.

Maintenance

ActivityMaintained
ResponsivenessSyncing