Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
garmin_activitiesA

List recent activities filtered by date range and type.

Args: start_date: Start date in YYYY-MM-DD format. Defaults to 7 days ago. end_date: End date in YYYY-MM-DD format. Defaults to today. activity_type: Filter by sport type. One of: running, cycling, swimming, diving, all. limit: Maximum number of activities to return.

garmin_activity_detailA

Get detailed metrics for a single activity by ID.

Args: activity_id: The Garmin activity ID. fields: Optional list of extra data sections to include. Supported values: "splits", "hrZones", "laps", "gps". Omit to return the basic summary only.

garmin_training_planB

Get the scheduled training workout for a specific date.

Args: date: Date in YYYY-MM-DD format. Defaults to today.

garmin_training_statusA

Get current training status summary.

Returns training status label, VO2Max, acute training load, load focus distribution (aerobic_low / aerobic_high / anaerobic), recovery time, training readiness score, and sleep score.

garmin_healthA

Get health metrics for a specific date.

Args: metric: The health metric to retrieve. Options: - "sleep" : Sleep duration, stages (deep/REM/light), and quality score. - "hrv" : HRV status, weekly average, and last-night reading. - "stress" : Average and peak stress levels. - "body_battery" : Body battery charge/drain, peak, and current level. - "spo2" : Blood oxygen saturation (average, lowest, latest). - "respiration" : Respiration rate (average, min, max). - "intensity" : Weekly intensity minutes vs. goal (moderate + vigorous). - "steps" : Daily step count vs. goal, floors climbed, and resting HR. - "all" : All of the above combined (default). date: Date in YYYY-MM-DD format. Defaults to today.

garmin_gearB

Get the gear library (shoes, bikes, etc.) with real cumulative mileage for each item.

garmin_deviceB

Get connected device information including firmware version, update availability, primary tracker role, and registration date.

garmin_hr_trendB

Get resting heart rate historical trend data.

Args: period: Time window. One of: "7d" (7 days), "30d" (30 days), "90d" (90 days).

garmin_weekly_statsA

Get aggregated training volume statistics for a given period.

Args: period: Time period. One of: "week" (7 days), "month" (30 days), "year" (365 days).

garmin_coachB

List active Garmin Coach training plans.

garmin_eventsA

Get upcoming race events from the Garmin calendar, including target distance and goal finish time.

garmin_challengesA

Get in-progress challenges and badge completion status, including virtual challenges and monthly badges.

garmin_race_predictionA

Predict finish times for the 5K, 10K, half marathon and marathon.

Garmin derives these from recent running activities, so an account with no recent runs returns nothing.

Args: period: "today" returns the current prediction only. "90d" or "1y" also reports how each prediction moved across that window (change_s is negative when the athlete got faster).

garmin_personal_recordsB

Get personal records (PRs) with the activity each one was set in.

Args: sport: Restrict to one discipline. One of: all, running, cycling, swimming, steps.

garmin_zonesA

Get heart rate zone boundaries and threshold values for one sport.

Use this to interpret the heart-rate-zone durations returned by garmin_activity_detail (fields=["hrZones"]), which only contain seconds per zone and no boundaries.

Args: sport: Which zone configuration to return. One of: running, cycling, swimming, default (Garmin's account-wide default).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation4/5

Each tool targets a distinct data resource (activities, activity detail, zones, health, gear, events, challenges, coach, etc.), and the descriptions explicitly cross-reference related tools (zones ↔ activity_detail hrZones). Minor overlap exists between garmin_health (which returns resting HR under "steps"), garmin_hr_trend, and garmin_training_status (also surfaces recovery/readiness), so an agent could pick the wrong one when looking for heart-rate or readiness data.

Naming Consistency5/5

Every tool follows the same `garmin_<resource>` snake_case pattern with no deviations or style mixing. Names are predictable enough that an agent can guess a tool's existence from its resource.

Tool Count5/5

15 tools sits at the top of the well-scoped range but each maps to a genuinely distinct Garmin data domain, with no filler. The many-metric `garmin_health` tool is sensibly bundled rather than split into nine separate tools, keeping the surface compact.

Completeness4/5

The read-only surface covers the core Garmin lifecycle well: activities, activity detail, health, training status/plan, zones, PRs, gear, events, challenges, and device info. Gaps are mostly around write/action operations (no marking workouts complete, adjusting training plans, uploading or editing activities), which may be intentional for a "Lite" server but leaves some agent workflows as dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues