Skip to main content
Glama
Morozov90

Garmin Training MCP

by Morozov90

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_MCP_TIMEZONENoPresentation timezone as an IANA identifier.America/Vancouver
GARMIN_MCP_CONFIG_DIRNoOverrides the credential storage directory; must be an absolute path. Configure identically in all clients when sharing a cache.
GARMIN_PERSONAL_API_KEYNoYour Garmin Connect Personal API Key, set in the MCP client's local env configuration. It overrides the saved key file; an empty value is an error with no fallback. Alternatively, credentials may be stored with `garmin-mcp setup` as a key file, in which case this variable can be omitted.

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
list_activitiesA

List one activity page (max 100) within <=366 inclusive Garmin-local dates.

sport is a parent activity type key, e.g. running or cycling, not a subtype. Units: meters, seconds, m/s, bpm, watts. Follow pagination.next_offset.

get_activityA

Get summary plus one page of feature/group split summaries, not guaranteed laps.

activity_id is a positive decimal string. Samples/GPS are unsupported in v1: setting either include flag returns an explicit unsupported error. No location data is returned. Follow pagination.next_offset to retrieve more split summaries.

get_sleepA

Sleep duration/stages in seconds, reported score components and window times.

Inclusive ISO range <=31 days, end defaults to start. Garmin calendarDate is preserved; wake-date versus sleep-start-date association requires live verification.

get_hrvA

Reported overnight/weekly HRV averages and optional Garmin baseline/status.

Inclusive ISO range <=31 days, end defaults to start. Values retain Garmin's scale; units and sleep-start/wake-date association need live account verification.

get_daily_summaryA

Daily steps, Garmin resting HR field (bpm), stress and Body Battery if present.

Inclusive ISO range <=31 days, end defaults to start. Garmin restingValue may fall back to absolute minimum HR. Stress/Body Battery retain Garmin's scale.

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 5 tools

Disambiguation4/5

Each tool maps to a distinct resource: activity listing, single-activity detail, sleep, HRV, and daily summary. The only mild overlap is that get_daily_summary, get_sleep, and get_hrv all return daily wellness data, but the descriptions make the boundaries clear (steps/stress vs. sleep stages vs. HRV averages). list_activities vs. get_activity is a standard, unambiguous list/detail pair.

Naming Consistency5/5

All five names follow the same snake_case verb_noun pattern (list_activities, get_activity, get_sleep, get_hrv, get_daily_summary). The singular/plural distinction (list_activities vs. get_activity) matches the collection-vs-single semantics rather than breaking the convention.

Tool Count4/5

Five focused read-only tools is a lean but defensible scope for a Garmin data server, and each tool earns its place. It sits at the thin end of the ideal 3-15 range given the breadth of the Garmin domain, but nothing is redundant or filler.

Completeness3/5

The read surface covers activities, sleep, HRV, and daily wellness, but notable gaps remain: workout/course data, training status/readiness, stress-only detail, body composition, and device info are absent. Activity samples/GPS are explicitly unsupported and lap retrieval is not guaranteed, creating potential dead ends for agents wanting intra-activity detail.

Maintenance

ActivityMaintained
ResponsivenessNo issues