Paceva for Garmin
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMIN_PERSONAL_API_KEY | No | Your 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
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.
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.
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.
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.