Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMINTOKENSNoPath to the Garmin token store. For example, set to an absolute path when used with Claude Desktop.~/.garminconnect
GARMIN_MCP_HOSTNoHTTP bind address. Only used with streamable-http transport.127.0.0.1
GARMIN_MCP_PORTNoHTTP port. Only used with streamable-http transport.8000
GARMIN_MCP_LOG_LEVELNoLog verbosity (stderr).INFO
GARMIN_MCP_TRANSPORTNoTransport mode: 'stdio' or 'streamable-http'. Default is stdio.stdio
GARMIN_MCP_AUTH_TOKENNoShared bearer token required for HTTP transport. The server refuses to start over HTTP without this.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
garmin_get_daily_summaryA

Get the all-round wellness summary for one day: total and goal steps, distance, floors, calories (active, resting, consumed), intensity minutes, resting heart rate, average stress, and body battery high/low. Start here for broad questions like 'how active was I on Tuesday' -- it answers in one call what would otherwise take several.

garmin_get_sleepA

Get sleep for the night ENDING on the given date: overall sleep score and its component ratings, time in deep/light/REM/awake, sleep and wake times, average overnight SpO2, respiration and resting heart rate. Ask for 'today' to get last night. With detail='full' this also returns per-minute sleep stage, movement and heart rate series, which are large.

garmin_get_hrvA

Get overnight heart rate variability for one day: the weekly average, last night's average, the personal baseline range, and Garmin's HRV status (balanced, unbalanced, low, poor). HRV is the most sensitive single indicator of accumulated stress or illness, so prefer this when asked about recovery trends rather than a single night's sleep.

garmin_get_stressA

Get stress for one day: the average and maximum stress score, plus how the day divided between rest, low, medium and high stress. Use detail='full' for the underlying per-interval stress series.

garmin_get_heart_rateA

Get heart rate for one day: resting, minimum and maximum heart rate, and the last seven days' resting average. Use detail='full' for the continuous all-day heart rate series. For heart rate during a specific workout, use garmin_get_activity instead.

garmin_get_training_readinessA

Get Garmin's training readiness score for one day (0-100) together with the factors behind it: sleep score and history, recovery time, HRV status, acute training load and stress history. This is the tool for 'should I train hard today' -- it is Garmin's own synthesis of the recovery signals rather than a raw metric.

garmin_get_body_batteryA

Get body battery energy levels across a date range: the daily high and low, plus charge and drain totals. Body battery rises with rest and falls with activity and stress, so a multi-day range shows whether energy is trending down faster than it recovers.

garmin_get_stepsA

Get daily step totals, step goal and distance for each day in a range. Cheap and compact -- prefer this over repeated daily-summary calls when the question is only about step counts over time.

garmin_list_activitiesA

List recorded workouts in a date range, newest first, with activity ID, type, name, start time, duration, distance, pace, average and max heart rate, calories, elevation and training effect. Use this to find an activity, then pass its activityId to garmin_get_activity for the full detail of a single session.

garmin_get_body_compositionA

Get weigh-ins over a date range: weight, BMI, body fat and water percentage, muscle and bone mass, plus the range averages. Only returns data for days with a recorded weigh-in, so an empty result usually means no measurement rather than an error.

garmin_get_user_profileA

Get the account profile: name, birth date, height, weight, gender, activity level and -- importantly -- the measurement system. Worth checking once before interpreting units in other tools, since Garmin returns metric values regardless of what the app displays.

garmin_get_activityA

Get the full record of one recorded workout by its activity ID: type, timing, distance, pace and speed, heart rate zones, cadence, power, elevation, calories, training effect and recovery time. Find the ID with garmin_list_activities first.

garmin_get_health_snapshotA

Get an all-in-one recovery picture for one day: daily summary, sleep, HRV, body battery and training readiness together. Prefer this for open questions like 'how did I sleep', 'how am I recovering' or 'should I train today' -- it answers in one call what would otherwise take five, and each metric is trimmed to its headline numbers. Metrics your device does not record are reported as errors within the result rather than failing the whole call.

garmin_api_requestA

Call any Garmin Connect API path directly. This is the escape hatch for the ~130 endpoints without a dedicated tool (SpO2, respiration, VO2 max, race predictions, gear, workouts, badges, and so on). Prefer a dedicated tool when one exists -- their output is easier to read and their arguments are validated. Paths look like '/usersummary-service/stats/daily/2026-08-01/2026-08-03'; the response is returned as-is.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/nbaradar/garmin-mcp'

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