MCP.Market

Garmin Local MCP server

by anup-shesh·io.github.anup-shesh/garmin-local-mcp·v0.1.9·9 stars

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

A89/100grade A
What users say
No reviews yet
Be the first
Safety scan
A89/100

full report

Adoption
Growing

9 stars141 downloads/wk

Reviews

Write one

Nobody has reviewed Garmin Local yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Garmin Local tools (13)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • anomalies

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

  • auth_status

    Check whether stored Garmin Connect tokens exist.

  • baselines

    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).

  • circadian

    Estimate when this user's body clock wants them to wake up, and test that estimate against their own Garmin history. Read-only: analyses synced sleep times locally and changes nothing.

  • correlate

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

  • gaps

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

  • get_activity

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

  • get_day

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

  • import_fit

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

  • list_activities

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

  • query_metrics

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

  • sync

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

  • sync_status

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

Public scan report

scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it

no findings
  • Code scan20 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 12 days ago15/15
  • Maintainer identityregistry namespace matches repository owner6/10
Overall 89/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Garmin Local compares

Against every graded Databases MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
89/100
higher than 80% of 802 Databases servers
Tools
13
the typical Databases server has 8
Tools that change things
0%
typical: 9%. Fewer write tools means less an agent can break
GitHub stars
9
more than 79% of 602 Databases servers
Downloads a week
141
more than 65% of 330 Databases servers with a package

What its tools let an agent do: 10 read · 1 create · 2 change

Release history: 3 versions in the registry since 2026-09-03, latest 2026-10-04, typically one every 23 days.

Install Garmin Local in Claude Code, Cursor or VS Code

claude mcp add garmin-local-mcp -- uvx garmin-local-mcp
Add to Cursor

What the publisher says

From the Garmin Local repository's README, as published. We do not edit it. Read it on GitHub

<!-- mcp-name: io.github.anup-shesh/garmin-local-mcp -->

garmin-local-mcp

Local-first Garmin data warehouse with an analysis-grade MCP server. Sync once, analyze forever, even when the API is down.

Why another Garmin MCP?

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.

This project inverts the architecture:

immutable raw JSON snapshots plus a SQLite database, in a directory you own.

  • Sync once, analyze forever. Incremental sync into a local warehouse:

baselines, and anomaly detection are computed locally and returned as small columnar tables in a single tool call. Typical responses are under 2 KB, so nothing floods the model's context.

  • Server-side analysis, compact responses. Trends, correlations, personal

over already-synced history keeps working.

  • Offline resilience. An API breakage pauses new syncs only. Every query

wellness FIT messages (sleep score, HRV, skin temperature, sleep stages, naps) ingests manually exported bundles with no login at all. No other Garmin MCP ships this.

  • A zero-auth fallback. A standalone decoder for Garmin's undocumented
  • Curated tools. 12 composable tools, not 110.

Try it without a Garmin account

If you don't own a Garmin, or just want to see what the tools return before handing over credentials, seed a synthetic store:

pip install garmin-local-mcp
garmin-local-mcp --data-dir ~/.garmin-mcp-demo demo
garmin-local-mcp --data-dir ~/.garmin-mcp-demo serve

That generates 180 days across every table, then serves them over MCP. No login, no network, no account.

The data is generated rather than recorded, but it is not random. A latent recovery factor drives HRV up while resting heart rate goes down, training load raises the next day's resting heart rate, a six-day illness window sits in the middle of the range, and a few sleep nights are deliberately missing. So the analysis tools have something real to find:

syncstatus reports demostore: true on these stores, so an assistant can never present generated numbers as real measurements. The generator is deterministic — --seed reproduces a store exactly, and --days changes the range. demo refuses to overwrite a database it did not generate.

Quickstart

Requires Python 3.12+.

pip install garmin-local-mcp

Or run it without installing, via uv:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Garmin Local: common questions

Is Garmin Local MCP server safe?
Yes, by our scan: it is graded A (89/100). Read the Garmin Local safety report
How do I install Garmin Local?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Garmin Local need an API key?
No secret keys are declared. It reads 1 setting from the environment.
Is Garmin Local maintained?
The last commit was 32 days ago (2026-10-04). The latest release is v0.1.9.
What can I use instead of Garmin Local?
Servers from other publishers that do the same job: Remem MCP server, open-memex MCP server and SAME - Stateless Agent Memory Engine MCP server. Compare all Garmin Local alternatives.
How does Garmin Local compare with other Databases MCP servers?
safety score 89/100 (higher than 80% of 802 Databases servers); tools 13 (the typical Databases server has 8); tools that change things 0% (typical: 9%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Garmin Local

Same job from other publishers: the closest match first, then the best rated.

All Garmin Local alternatives →
  • Remem
    Local-first automatic memory for Claude Code and Codex: capture, distill, recall from SQLite.
    B
  • open-memex
    Local-first memory for AI coding agents — Markdown + SQLite FTS5, shared across editors via MCP.
    B
  • SAME - Stateless Agent Memory Engine
    Persistent memory for AI coding agents. Local-first SQLite + vector search. 17 MCP tools.
    B
  • remem-mcp — Local-first MCP Memory + CodeGraph + Wiki
    Local-first memory for AI coding agents. Memory + CodeGraph + Wiki in one SQLite file.
    B
  • LoreConvo
    Local-first persistent session memory for Claude Code and other agents. SQLite + FTS5, no cloud.
    B