Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_CACHENoOptional cache type, e.g., sqlite
GARMIN_DOMAINNoGarmin domain (garmin.com or garmin.cn)garmin.com
GARMIN_CACHE_PATHNoPath for cache file if caching is enabled~/.garmin-mcp/cache.sqlite
GARMIN_TOKEN_PATHNoPath to store Garmin Connect tokens~/.garmin-mcp/garmin_tokens.json
GARMIN_PRIVACY_MODENoPrivacy mode: summary, structured, or rawsummary

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
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
garmin_data_inventoryA

Inventory supported Garmin data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Garmin APIs or expose user data.

garmin_agent_manifestA

Machine-readable install, runtime and client guidance for AI agents. Does not call Garmin or expose secrets.

garmin_capabilitiesA

Explain supported Garmin data, privacy boundaries, recommended agent workflow and project links.

garmin_quickstartA

Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Garmin?'

garmin_demoA

Returns realistic example payloads of garmin_daily_summary, garmin_wellness_context, and garmin_get_body_battery_day so agents see the contract before any real Garmin Connect call.

garmin_profile_getB

Read the shared Delx wellness profile (~/.delx-wellness/profile.json). Returns the user's preferred name, body basics, goals, devices, training context, nutrition context, agent preferences, and missing critical fields. Cross-connector — the same profile is also available from other Delx Wellness MCPs (WHOOP, Oura, Nourish, Fitbit, etc). Read-only.

garmin_profile_updateA

Persist a partial patch to the shared Delx wellness profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. Top-level fields stored: profile (preferred_name, language, timezone, units, age_or_birth_year, height, weight, sex_or_gender_context), goals, devices, training, nutrition, preferences, safety, notes. NEVER stores OAuth tokens, API keys, refresh tokens, cookies, or any secret-shaped field — writes will be rejected at validation time. Cross-connector — the same profile is read by other Delx Wellness MCPs.

garmin_onboardingA

Return the 11-question Delx wellness onboarding flow (in English or pt-BR) plus the current shared profile state and missing critical fields. Read-only. The agent should ask these questions one-by-one, then call garmin_profile_update with explicit_user_intent=true to save. The same profile is reused by every Delx Wellness connector (WHOOP, Oura, Nourish, etc.) — agents can call the equivalent {connector}_onboarding tools to cover their respective domains, or rely on this one since all connectors share the same questions.

garmin_auth_instructionsA

Explain the local Garmin Connect authentication flow without asking the user to paste secrets into an agent.

garmin_get_profileA

Get the authenticated Garmin profile using the configured privacy mode.

garmin_get_user_settingsB

Get Garmin account user settings such as units and display preferences.

garmin_list_devicesA

List devices registered to the Garmin account.

garmin_get_primary_training_deviceB

Get the primary Garmin training device when available.

garmin_get_daily_summaryA

Get Garmin daily movement and wellness summary for a date.

garmin_get_steps_dayB

Get Garmin daily steps and summary chart for a date.

garmin_get_heart_dayB

Get Garmin daily heart-rate samples and resting heart-rate context for a date. Not medical advice.

garmin_get_sleep_dayB

Get Garmin sleep summary, stages and sleep window for a date. Not medical advice.

garmin_get_stress_dayB

Get Garmin stress summary and samples for a date. Not medical advice.

garmin_get_body_battery_dayA

Get Garmin Body Battery daily report for a date. Not medical advice.

garmin_get_body_battery_eventsB

Get Garmin Body Battery charge/drain events for a date. Not medical advice.

garmin_get_hrv_dayA

Get Garmin HRV status and overnight HRV metrics for a date when available. Not medical advice.

garmin_get_training_readiness_dayA

Get Garmin training readiness for a date when supported by the device/account. Not medical advice.

garmin_get_training_status_dayA

Get Garmin aggregated training status for a date when supported by the device/account. Not medical advice.

garmin_get_respiration_dayB

Get Garmin respiration data for a date when available. Not medical advice.

garmin_get_spo2_dayB

Get Garmin Pulse Ox / SpO2 data for a date when available. Not medical advice.

garmin_get_intensity_minutes_dayB

Get Garmin intensity minutes for a date.

garmin_get_hydration_dayA

Get Garmin hydration summary for a date when available.

garmin_get_weight_rangeA

Get Garmin weight/body-composition logs for a date range. Not medical advice.

garmin_list_activitiesA

List recent Garmin activities. Supports pagination, optional date filters and privacy modes.

garmin_get_activityB

Get a Garmin activity summary by activity id.

garmin_get_activity_detailsC

Get detailed Garmin activity samples when available.

garmin_activity_seriesA

Bounded time-series for one activity metric. Returns exact stats computed on full-resolution samples plus a downsampled series capped at 500 points, so a 3-hour ride at 1 Hz never blows the context window. Prefer garmin_get_activity / splits / hr_zones first; reach for this when you actually need the shape of the effort over time. GPS is never returned here.

garmin_get_activity_splitsB

Get Garmin activity splits/laps by activity id.

garmin_get_activity_weatherB

Get Garmin activity weather by activity id when available.

garmin_get_activity_hr_zonesB

Get Garmin activity heart-rate zone time by activity id when available.

garmin_connection_statusA

Check local Garmin config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Garmin or exposing secrets.

garmin_cache_statusA

Show optional local SQLite cache status. Enable with GARMIN_CACHE=sqlite or GARMIN_CACHE=true.

garmin_privacy_auditA

Return local privacy, cache, token-path and env-presence posture without revealing secret values.

garmin_disconnect_localA

Delete the local Garmin token file. This does not change the Garmin account; use only when the user explicitly wants to disconnect this MCP. Gated by explicit_user_intent: true (requires explicit user intent).

garmin_daily_summaryA

Build a practical daily summary from Garmin activity, sleep, heart-rate, HRV, stress and Body Battery when available. Read-only and non-medical.

garmin_weekly_summaryA

Build a weekly Garmin scorecard with movement, sleep, HRV, stress, Body Battery, bottlenecks and actions. Read-only and non-medical.

garmin_wellness_contextA

Normalize Garmin readiness, sleep score, Body Battery and recent movement load into the shared wellness_context shape for recommendation engines.

Prompts

Interactive templates invoked by user choice

NameDescription
garmin_daily_checkinAsk an agent to create a practical daily health and training check-in from Garmin.
garmin_weekly_reviewAsk an agent to review Garmin trends across activity, sleep, stress, Body Battery and heart context.
garmin_intraday_investigationInvestigate one day of Garmin heart, stress, Body Battery and activity details without pretending to have raw telemetry.

Resources

Contextual data attached and managed by the client

NameDescription
garmin_data_inventoryStatic inventory of supported Garmin data domains, privacy modes and recommended first calls.
garmin_capabilitiesStatic capabilities, API boundary, privacy modes and recommended agent workflow.
garmin_agent_manifestMachine-readable install and operating instructions for AI agents.
garmin_profileAuthenticated Garmin profile using the configured privacy mode.
garmin_latest_activityMost recent Garmin activity log in the configured privacy mode.
garmin_daily_summaryDaily Garmin health summary built from API data.
garmin_weekly_summaryWeekly Garmin health review built from API data.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidmosiah/garmin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server