Skip to main content
Glama
kavakoss

mcp-garmin-connect

by kavakoss

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_EMAILYesYour Garmin Connect email address.
OPENAI_API_KEYNoAPI key for OpenAI provider demo (optional).
GARMIN_PASSWORDYesYour Garmin Connect password.
DEEPSEEK_API_KEYNoAPI key for DeepSeek provider demo (optional).
ANTHROPIC_API_KEYNoAPI key for Anthropic Claude provider demo (optional).

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_recoveryB

Current recovery state: readiness, HRV, sleep, body battery, and status.

get_sleepB

Sleep duration and sleep scores for the last N days.

get_resting_heart_rateB

Daily resting heart rate with 7-day and 30-day trend summaries, up to 30 days.

get_stressB

Daily all-day stress levels and stress duration buckets.

get_recent_activitiesA

Recent Garmin activities with normalized sport-aware summary fields.

Pass start_date/end_date for a specific historical window (both inclusive); otherwise the days lookback is used. Explicit dates make a past window queryable without pulling every newer activity first.

get_activity_detailC

Detailed summary for one activity by Garmin activity ID.

get_activity_splitsB

Per-lap splits for one activity: pace, HR, cadence, elevation and HR drift.

get_recent_loadB

Training volume aggregated by sport over the last N days.

get_training_loadB

Garmin training load status, acute/chronic load, and load focus.

get_fitnessB

VO2 max, cycling FTP, and race predictions.

get_zonesB

Heart-rate zones and thresholds from Garmin user settings when available.

get_personal_recordsC

Personal records returned by Garmin Connect.

get_running_summaryC

Running summary: sessions, distance, pace, HR, longest run, fastest run, monthly split.

get_monthly_running_statsC

Monthly running stats for the last N calendar-ish months based on recent activities.

get_health_summaryB

Compact health snapshot combining recovery, sleep, and stress.

get_hrv_historyA

Daily HRV (last-night and weekly average) plus a baseline.

get_recovery carries only a 7-day HRV window, which is fine for "how am I today" but useless for trend questions. This is the same data over a longer range. daily is newest-first, like every other daily array here.

get_body_battery_rangeA

Daily body battery (charged, drained, highest, lowest, end of day).

get_recovery only exposes today's levels; this walks the range endpoint so the history is available for trends. The raw per-timestamp arrays are summarised away because they are large and rarely useful. daily is newest-first, like every other daily array here.

get_body_compositionA

Weight (and body fat/muscle when the scale reports it) from Garmin Connect.

Personal API only. Weight is what most fitness decisions here hinge on, and the unofficial flow never exposed it as a tool.

get_spo2C

Blood oxygen (SpO2) acclimation per day. Personal API only.

get_hydrationB

Logged daily fluid intake in millilitres. Personal API only.

get_steps_historyC

Daily step totals and goals. Personal API only.

get_fitness_ageB

Garmin's fitness age for today. Personal API only.

download_activity_fileA

Download the original activity file (ZIP containing the .FIT) for one activity.

Personal API only. This is the raw recording — GPS track, HR, cadence, laps, sample by sample — which the unofficial flow cannot fetch. Garmin strips some fields it computes (VO2 Max, recovery time, performance condition) from files delivered through its API, so this is not identical to a manual download.

get_full_snapshotC

Comprehensive Garmin data snapshot for holistic analysis.

Every section carries a data_source field naming the backend that answered it (personal, unofficial, or personal+unofficial when one section needed both — with the per-endpoint map in source_detail). In hybrid mode this makes it visible which numbers are official-API data and which came from the derived-metrics backend, instead of hiding a fallback. (data_source rather than source: some sections already use source for their own provenance string, e.g. garmin_training_status.)

Prompts

Interactive templates invoked by user choice

NameDescription
recovery_checkUse Garmin recovery data to decide whether today should be easy or hard.
weekly_training_reviewReview recent training volume, sport balance, recovery, and risk.
activity_analysisAnalyze one recent workout using its activity details.
race_plan_contextGather Garmin context before creating a race or training plan.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 24 tools

Disambiguation3/5

Most tools target distinct metrics, but there is meaningful overlap among the health/recovery/snapshot tools: get_recovery, get_health_summary, get_full_snapshot, get_body_battery_range, get_hrv_history, get_sleep, and get_stress all overlap in scope. The descriptions clarify ranges versus snapshots, but an agent could still hesitate about which tool to call for broad questions like "how am I doing?"

Naming Consistency5/5

All tool names use snake_case and a consistent verb_noun pattern, overwhelmingly with the get_ prefix. download_activity_file is a deliberate action-specific deviation rather than an inconsistency.

Tool Count3/5

At 24 tools, this server sits in the heavy range for a single MCP server, even though the Garmin domain is broad. Most tools are purposeful, but the count is large enough that selection and maintenance become harder.

Completeness4/5

The surface covers activities, recovery, sleep, HRV, stress, body battery, body composition, SpO2, hydration, steps, fitness metrics, zones, records, and raw activity download. Minor gaps remain, such as structured workouts, device/gear data, and direct access to per-sample activity streams outside the FIT download, but core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessWithin a week