garmin-local-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMINTOKENS | No | Override the token store location (default <data_dir>/tokens) | |
| GARMIN_EMAIL | No | Optional, for non-interactive re-login; when set, login skips the prompts (MFA may still prompt if your account requires it) | |
| GARMIN_PASSWORD | No | Optional, for non-interactive re-login; when set, login skips the prompts (MFA may still prompt if your account requires it) | |
| GARMIN_MCP_DATA_DIR | No | Override the data directory (default ~/.garmin-mcp) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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