Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_EMAILNoGarmin account email address, used for unattended re-authentication when the cached session expires.
GARMIN_PASSWORDNoGarmin account password, used for unattended re-authentication when the cached session expires. Can be omitted in favor of running scripts/login.sh manually.

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
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_daily_summaryA

Daily health summary: steps, calories, resting heart rate and body battery.

Args: date: Day to report on. YYYY-MM-DD, 'today', 'yesterday' or an offset like '-3'. Defaults to today.

get_sleep_dataA

Sleep stages and sleep score for a night.

Args: date: The date you woke up on. YYYY-MM-DD, 'today', 'yesterday' or an offset like '-3'. Defaults to today.

get_activitiesA

List recent runs and workouts with distance, duration, pace and HR zones.

Args: limit: Maximum activities to return (1-50). Defaults to 10. start_date: Optional first day of a date range, YYYY-MM-DD. end_date: Optional last day of a date range. Defaults to today when start_date is given.

get_activity_detailsA

Splits and heart-rate detail for one activity.

Args: activity_id: The activityId from get_activities.

list_workoutsA

List structured workouts saved in the Garmin account.

Args: limit: Maximum workouts to return (1-100). Defaults to 20.

create_workoutA

Create a structured workout in Garmin Connect.

Adds a new workout; it never edits or replaces an existing one. Use schedule_workout afterwards to put it on a date so it syncs to the watch.

Args: name: Name shown in Garmin Connect and on the watch. steps: Ordered list of steps. Each step is an object: - "type": warmup, interval, recovery, rest, cooldown, or repeat - exactly one of "duration_seconds" or "distance_meters" - optional target, either "pace" ("4:05", or ["4:00","4:10"] for a range, minutes per km) or "hr" ([150, 165] in bpm) A repeat looks like {"type": "repeat", "times": 5, "steps": [...]} and cannot contain another repeat. Example — 15 min warmup, 5x1km at 4:05 with 90s recoveries, 10 min cooldown: [{"type": "warmup", "duration_seconds": 900}, {"type": "repeat", "times": 5, "steps": [ {"type": "interval", "distance_meters": 1000, "pace": "4:05"}, {"type": "recovery", "duration_seconds": 90}]}, {"type": "cooldown", "duration_seconds": 600}] sport: running, cycling, swimming, walking or hiking. Defaults to running. description: Optional note stored with the workout.

schedule_workoutA

Put an existing workout on a date in the Garmin calendar.

Scheduling is what makes a workout sync to the watch.

Args: workout_id: Id from create_workout or list_workouts. date: The day to schedule it on. YYYY-MM-DD, 'today', 'tomorrow', or an offset like '+3'.

get_connection_statusA

Check whether the server is logged in to Garmin Connect.

Reports which credentials are present and whether the cached session is usable. Never returns the password or the cached token itself.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct resource: daily health, sleep, performed activities, activity details, saved workouts, workout creation, scheduling, and connection status. The only related pairs (activities vs workouts, create vs schedule) are clearly differentiated by descriptions and workflow order.

Naming Consistency4/5

All names follow a readable snake_case verb_noun pattern and mostly align with intent. The only minor inconsistency is that get_activities returns a collection while list_workouts uses list_ for the same kind of operation.

Tool Count5/5

Eight tools is well-scoped for a Garmin health/fitness server: read coverage for daily stats, sleep, and activities, plus workout creation and scheduling. There are no redundant tools, and the count is appropriate without overwhelming an agent.

Completeness3/5

The read side is solid, but workout management has notable gaps: create, list, and schedule exist, but there is no update, delete, or unschedule for workouts. An agent cannot correct or remove a mistaken workout or scheduled date, which are common expected operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues