Skip to main content
MCP server CX Codex

garmin-local-mcp — Claude Code MCP server: setup guide

Downloads Garmin biometric records into a local SQLite store for fast offline queries. It lets coding assistants evaluate recovery trends without hammering remote endpoints.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add --env GARMIN_MCP_DATA_DIR=<GARMIN_MCP_DATA_DIR> --transport stdio garmin-local-mcp -- uvx garmin-local-mcp
Open on GitHub

What garmin-local-mcp does

This server pulls personal health telemetry into a local repository composed of static JSON snapshots and a SQLite database. Rather than flooding the context window with raw API payloads that often reach several hundred kilobytes per sleep log, it calculates trends locally. Responses arrive as structured tabular summaries rarely exceeding 2 KB. Its 13 specialized tools handle anomaly detection, baseline tracking, and lag-adjusted correlations across a window of -7 to +7 days.

Running this setup requires Python 3.12 or newer. Users without hardware can seed a deterministic 180-day synthetic archive via the demo command to evaluate chronotype identification and correlation math before logging in. If remote Garmin services become unreachable, stored telemetry remains accessible for analysis, and new records can be ingested offline directly from exported wellness FIT bundles.

What it helps with

  • track lagged correlations between workout stress and next-day resting heart rate
  • estimate individual chronotypes and target wake schedules from recorded sleep history
  • detect health anomalies and missing logging days without feeding bloated payloads to LLMs
  • import biometric wellness exports from FIT archives without sharing account credentials

Example prompts for the agent

  • Calculate the correlation between my training load and resting heart rate with a one-day lag.
  • Scan the last six months of HRV records for unusual health patterns.
  • Estimate my chronotype using sleep logs and display the confidence interval.

How to install garmin-local-mcp

Platform CLI

claude mcp add --env GARMIN_MCP_DATA_DIR=<GARMIN_MCP_DATA_DIR> --transport stdio garmin-local-mcp -- uvx garmin-local-mcp

Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from garmin-local-mcp <command>

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about garmin-local-mcp

How do I install garmin-local-mcp in Claude Code?

Run claude mcp add garmin-local-mcp -- uvx garmin-local-mcp in your CLI. To designate a custom storage path, set the directory variable: claude mcp add --env GARMIN_MCP_DATA_DIR=<GARMIN_MCP_DATA_DIR> --transport stdio garmin-local-mcp -- uvx garmin-local-mcp.

Why store Garmin metrics locally instead of querying the API directly?

Standard endpoints return massive payloads, such as 230 KB for one sleep record, quickly exhausting context limits. The local SQLite store performs heavy calculations on your machine, returning structured outputs below 2 KB.

Can I test the analytical tools without Garmin login credentials?

Yes, the built-in demo command creates a synthetic 180-day dataset. It simulates circadian rhythms, recovery factors, and an illness period so you can test features without an active account.

Similar MCP servers

All MCP servers for Data and databases →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor