Garmin MCP Server

Local-first Garmin data warehouse: sync once to SQLite, analyze trends and correlations offline.

Local serverstdioPython

What is the Garmin MCP Server?

Local-first Garmin data warehouse: sync once to SQLite, analyze trends and correlations offline.

The short version

Every existing Garmin MCP server follows the same design: a thin live wrapper around Garmin's rate-limited, unofficial API. Each question your AI assistant asks becomes one or more live API calls that return huge raw JSON blobs (a single raw sleep response runs around 230 KB). Multi-month questions like "how does my sleep correlate with training load?" are impractical, and when Garmin changes its auth (as it did in March 2026, breaking the whole ecosystem), those servers go completely dark, even for data they already fetched yesterday.

  • Sync once, analyze forever. — Incremental sync into a local warehouse:
  • Server-side analysis, compact responses. — Trends, correlations, personal
  • Offline resilience. — An API breakage pauses new syncs only. Every query
  • A zero-auth fallback. — A standalone decoder for Garmin's undocumented
  • Curated tools. — 12 composable tools, not 110

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
auth_statusCheck whether stored Garmin Connect tokens exist (use before sync, or after an auth error).
syncFetch up to 60 days from Garmin Connect into the local store (default: last 30 days ending yesterday; big backfills belong in the CLI).
sync_statusLocal data coverage per table, last sync time, and pending sync errors.
get_dayOne merged view of a single day: wellness, sleep, HRV, training status, activities, and data-quality flags.
query_metricsColumnar time series for one or more metrics between two dates, with daily/weekly/monthly aggregation and optional stats.
correlatePearson/Spearman correlation between two metrics, with day-lag support and an optional scan over lags -7..+7.
baselinesPersonal mean +/- sd band per metric over a trailing window (default 28 days), to judge what is normal for this user.
anomaliesOutlier days (z-score deviations) and sustained streaks (5+ consecutive days on one side of the mean).
list_activitiesRecent activities newest-first as a compact table, filterable by type, date range, and minimum distance.
get_activityFull stored summary row for one activity (summary fields only, no GPS or sample streams).
gapsMissing days per table plus unresolved sync errors, to find holes worth re-syncing before drawing conclusions.
import_fitZero-auth offline ingest of a manually exported Garmin wellness FIT bundle.

How to install the Garmin MCP Server

{
  "mcpServers": {
    "garmin": {
      "command": "garmin-local-mcp",
      "args": [
        "serve"
      ]
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Example prompts to try

  • “Use Garmin to auth status.”
  • “Use Garmin to sync.”
  • “Use Garmin to sync status.”

Frequently asked questions

Local-first Garmin data warehouse: sync once to SQLite, analyze trends and correlations offline. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.