Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMINTOKENSNoOverride the token store location (default <data_dir>/tokens)
GARMIN_EMAILNoOptional, for non-interactive re-login; when set, login skips the prompts (MFA may still prompt if your account requires it)
GARMIN_PASSWORDNoOptional, for non-interactive re-login; when set, login skips the prompts (MFA may still prompt if your account requires it)
GARMIN_MCP_DATA_DIRNoOverride the data directory (default ~/.garmin-mcp)

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
auth_statusA

Check whether stored Garmin Connect tokens exist.

Use before sync, or when a sync failed with an auth error.

syncB

Fetch up to 60 days from Garmin Connect into the local store.

Default: last 30 days ending yesterday. Use for catch-ups; multi-month backfills belong in the CLI.

sync_statusA

Show local data coverage per table, last sync time, and pending sync errors.

Use to see what date ranges are queryable.

get_dayA

One merged view of a single day (YYYY-MM-DD): wellness, sleep, HRV, training status, activities, and data-quality flags.

Use for 'how was ' questions.

query_metricsA

Columnar time series for one or more metrics (e.g. resting_hr, sleep_score, steps) between two dates.

Prefer weekly/monthly aggregate for ranges over ~60 days; stats=True adds mean/min/max/sd per metric.

correlateA

Pearson/Spearman correlation between two metrics (default: last 30 days).

Positive lag_days pairs metric_a on day D with metric_b on D+lag; scan_lags=True searches lags -7..+7 for the strongest relationship.

baselinesA

Personal mean +/- sd band per metric over a trailing window (default 28 days; default metrics: resting_hr, hrv, sleep_score, skin_temp_dev_c, stress_avg, steps).

Use to judge whether today's value is normal for this user.

anomaliesA

Outlier days (>= z standard deviations from the range mean) and sustained streaks (5+ consecutive days on one side of it).

Default: last 30 days of the core wellness metrics.

list_activitiesA

List recent activities newest-first as a compact table, filterable by type (e.g. 'running'), date range, and minimum distance.

truncated=true means more rows exist beyond the limit.

get_activityA

Full stored summary row for one activity by id (from list_activities).

Summary fields only - no GPS or sample streams.

gapsB

Missing days per table plus unresolved sync errors (default: first synced date through yesterday).

Use to find holes worth re-syncing before drawing conclusions.

import_fitA

Import one manually exported Garmin wellness FIT bundle (folder of .fit files) - zero-auth offline ingest.

Existing API-sourced rows are never overwritten.

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/anup-shesh/garmin-local-mcp'

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