Skip to main content
Glama
OwenScheuer

Paceva for Garmin

by OwenScheuer

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_PERSONAL_API_KEYNoYour Garmin Personal API key. If not set, the server reads it from ~/.config/garmin/connect-personal-api-key (the same place Garmin's own tools look). Create a key at Garmin Connect › Personal API Key.

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_daily_overviewA

One day from Garmin in one call: the daily summary (steps, resting heart rate, stress, calories, intensity minutes), the night's sleep, overnight HRV and Body Battery.

get_daily_summariesA

Daily totals for a range of days: steps, distance, calories, resting heart rate, stress, intensity minutes, floors. Up to 92 days per call.

get_sleepA

Sleep for one night (stages, score, overnight heart rate, respiration) or, with an end_date, a nightly summary per day across a range. A night is filed under the date you woke up.

get_hrvA

Overnight HRV: for one night, the summary and readings; with an end_date, the nightly average, weekly average, baseline and status for each day in a range.

get_body_batteryA

Garmin Body Battery per day: charged, drained, highest and lowest, for one day or a range.

get_stressB

Average and maximum all-day stress per day over a range.

get_stepsB

Steps, distance and step goal per day over a range.

get_heart_rateA

One day's heart rate: resting, minimum, maximum, the 7-day resting average, and (with include_series) the readings through the day.

get_spo2A

Blood oxygen (SpO2) for one day, with altitude acclimation where the watch reports it.

list_activitiesA

Recorded activities, newest first: type, start time, duration, distance, heart rate, power, pace and training effect. Filter by date range or type (for example running, cycling, lap_swimming, strength_training). Use get_activity for one activity in full.

get_training_logA

Every activity in a period, with the main fields from Garmin's activity list under Garmin's own names and values: distance (m), duration (s), speed (m/s), grade-adjusted speed, elevation, heart rate, cadence, power and power curve (maxAvgPower_), TSS, intensity factor, training effect and load, fastest splits (fastestSplit_, in seconds) and seconds per heart rate and power zone. Up to 366 days per call.

get_activityA

One activity in full: summary, laps or splits where available, and with include_workouts the structured workout it followed.

get_profileA

Profile settings from Garmin Connect (units, age, sex, height, weight and others) and heart rate zones.

get_weightB

Weigh-ins over a range, with body fat, muscle mass and BMI where a scale records them.

get_fitness_ageC

Garmin's fitness age for a date.

get_hydrationB

Logged water intake against goal per day over a range.

get_food_logB

Foods logged in Garmin Connect for one day, with calories and macros.

get_menstrual_cycleC

Cycle tracking for a date, if it's tracked in Garmin Connect.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target a single distinct Garmin metric (weight, HRV, SpO2, hydration, food log, menstrual cycle) and are easy to tell apart. The main overlap is between get_daily_overview (one-day bundle), get_daily_summaries (range totals), and the per-metric range tools like get_steps/get_stress; descriptions clarify the difference but an agent could still dither between overview and summaries. The activity trio (list_activities, get_training_log, get_activity) is also close, though the description passes the reader from list to detail.

Naming Consistency4/5

Nearly everything follows a clean get_<noun> snake_case pattern, which makes the set highly predictable. The single list_activities deviates from the get_* convention, though 'list' is arguably semantically correct for a collection endpoint.

Tool Count4/5

18 tools is on the heavy side but each maps to a real, non-redundant Garmin metric or resource. Nothing feels padded, though a couple of range tools could conceivably be folded into the summary tools.

Completeness4/5

Coverage of Garmin health data is broad: profile/zones, sleep, HRV, Body Battery, stress, steps, heart rate, SpO2, activities, training log, hydration, food and cycle tracking. Gaps exist around derived training metrics (VO2 max, training status/readiness, personal records) and device management, but the core read-only surface is largely complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues