
Garminmcp
io.github.davidmosiahPublished by GitHub account davidmosiahv0.5.3Updated Oct 24, 2026
Privacy-first unofficial Garmin Connect MCP for AI health, sleep, activity & recovery agents.
The publisher's own server: Garmin MCP
Overview
Lets an assistant read your Garmin Connect health data — Body Battery, sleep, HRV, stress, activities and training readiness — from a local server.
- What you can do
- An unofficial local MCP server that connects an assistant to your Garmin Connect account. It exposes tools such as garmin_connection_status, garmin_daily_summary and garmin_weekly_summary, plus per-day signals (sleep, HRV, stress, Body Battery, training readiness, heart rate, SpO2, respiration, intensity minutes, hydration), activities, profile, devices and weight, along with prompts and resources. A privacy mode controls how much payload detail is returned, and an optional local SQLite cache can be enabled.
- When to use it
- Use it when you want an assistant to summarize your Garmin recovery, sleep and training data, build daily or weekly briefs, or investigate a specific day's stress and readiness. It suits personal wellness and training workflows, not clinical or diagnostic use.
- Requirements
- Runs locally over stdio (or optional loopback HTTP) via the npm package garmin-mcp-unofficial, so Node.js is needed. You must run the auth command once and log in with your Garmin email, password and MFA when prompted; tokens are then stored locally. Optional environment variables include GARMIN_TOKEN_PATH, GARMIN_PRIVACY_MODE, GARMIN_CACHE, GARMIN_CACHE_PATH, GARMIN_NO_CACHE and GARMIN_DOMAIN. Network access to Garmin Connect is required.
Installation
In SourceWeft
- Open Garminmcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Upgrading to 0.8.0: read the migration guide for local-only HTTP, disabled authenticated-response caching, and stricter input/profile limits.
Garmin MCP
Give your AI agent your Garmin Body Battery, training readiness, sleep, HRV and activities.
Local-first MCP server — tokens never leave your machine.
[npm version] [GitHub release] [npm downloads] [License MIT] [Site]
[GitHub stars] [Built for MCP] [Verified release index] [Hermes one-command setup] [Garmin]
⚡ One-command install with Delx Wellness for Hermes:
npx -y delx-wellness-hermes setup— preconfigures this connector and the full Delx Wellness stack in a dedicated Hermes profile.Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop — see the install section below. Runnable examples live in the Delx Wellness hub.
Public proof: Garmin MCP is tracked in the Delx Open Source Growth Snapshot alongside downloads, stars and next-action priorities. If it saves you Garmin Connect and MCP setup time, star this repo so other training-focused agent builders can find it faster.
First useful prompt:
Use garmin_connection_status, then garmin_daily_summary, then give me a 5-line operating brief for today.
Garmin MCP
Give your AI agent your Garmin Body Battery, training readiness, sleep, HRV and activities — local-first, tokens never leave your machine.
Unofficial project. Not affiliated with, endorsed by or supported by Garmin. This is not official Garmin Health API partnership access — it uses the unofficial Garmin Connect personal-token mode.
- Install one connector —
npx -y garmin-mcp-unofficial setup - Run it in Claude · Cursor · ChatGPT · Hermes · OpenClaw — runnable examples
- Local-first — your Garmin tokens never leave the machine (privacy)
- Which connector should I use? — pick one in the Delx Wellness front door
Part of Delx Wellness, a registry of local-first wellness MCP connectors.
[Garmin MCP local-first agent workflow demo]
Quickstart in 60 seconds
No Garmin developer app is required. setup only writes local MCP configuration; it does not ask for your Garmin password.
HTTP (v2 stateless)
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
Env: GARMIN_MCP_HOST, GARMIN_MCP_PORT, GARMIN_MCP_TRANSPORT=http.
Or one shot: npx -y garmin-mcp-unofficial setup --auth
auth runs a self-contained Node login and prompts locally for Garmin email, password and MFA when needed. The MCP does not store your Garmin password — only Garmin Connect tokens, saved at ~/.garmin-mcp/garmin_tokens.json with user-only permissions. See the auth quickstart walkthrough for real terminal output, or docs/quickstart.md for the full flow.
If Garmin returns HTTP 429, a Cloudflare challenge, or an auth message that says Garmin SSO omitted responseStatus.type, stop retrying for a while. Repeated headless login attempts can make the private endpoint throttle harder. Use docs/auth.md for the safe recovery path.
Then add this to your MCP client config:
Try it with your agent
Tools
Start with garmin_connection_status, then garmin_daily_summary (daily readiness, sleep, load) or garmin_weekly_summary (scorecard, bottlenecks, next-week plan). The server also exposes per-day signals (sleep, HRV, stress, Body Battery, training readiness, heart rate, SpO2, respiration, intensity minutes, hydration), activities, profile/devices and weight, plus prompts and resources.
See docs/tools.md for the full tool list, prompts, resources, data-availability matrix, configuration, Hermes setup and development notes.
Privacy & what runs offline
GARMIN_PRIVACY_MODEdefaults tosummary(more conservative than other Delx Wellness connectors) because the auth model is unofficial.- In
structuredmode, normalized aliases are additive: complete upstream Garmin fields and nested DTOs remain available after secret/GPS redaction. - Activity date ranges preserve the supplied calendar date and reject invalid values before contacting Garmin Connect.
- Garmin Connect tokens are stored at
~/.garmin-mcp/garmin_tokens.jsonwith user-only permissions and are never returned by tools. Your Garmin password is never stored — only short-lived tokens persist locally. - The MCP client never sees Garmin credentials or tokens. Authenticated Garmin responses are never cached;
GARMIN_CACHEhas no effect. - This is not medical advice. The server exposes user-authorized data for personal AI workflows, not diagnosis or treatment.
See docs/privacy.md for the full privacy model.
See the full agent demo →
Want to see a connector like this drive a real end-to-end decision? The shared, reproducible proof lives in delx-living-body:
It answers the anchor question — "Should I train hard today?" — by combining recovery, sleep and training-load signals across the Delx Wellness connectors.
See also
The full Delx Wellness connector library:
One-command setup for Hermes — preconfigures every connector above plus wellness skills + onboarding: delx-wellness-hermes.
Related local-first health MCP
Peer (not a Delx package): mi-fitness-data-bridge by Kindred / @shkyyy18 — Xiaomi Mi Fitness, local-first, shares the agent-safe-series/v1 dense series envelope (duration-anchored coverage, hard max_points, full-res stats, no GPS in series tools). Design log: #19 · parity notes: docs/agent-safe-series-kindred.md.
📧 Contact & Support
- 📨 [email protected] — general questions, integration help, partnerships
- 🐛 Bug reports / feature requests — GitHub Issues
- 🐦 Updates — @delx369 on X
- 🌐 Site — wellness.delx.ai
License
MIT — see LICENSE. Code of Conduct.
Disclaimer
This software is provided as-is. It is not a medical device, does not provide medical advice, and should not be used for diagnosis or treatment. The unofficial Garmin Connect mode can break if Garmin changes private auth or endpoints. Always consult qualified professionals for medical concerns.
Daily brief demo: docs/daily-brief-demo.md
Skill or MCP
Same package, two doors. MCP registers tools on stdio/HTTP. The skill can drive the same tools through the CLI when the client has no MCP:
Copy skill/SKILL.md into your agent skills dir.
Source: README.md at commit 123c5a1
Tools
0Version history
1- v0.5.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts