Garmin Mcp Unofficial
@davidmosiah
About Garmin Mcp Unofficial
No overview available yet
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"garmin": {
"command": "npx",
"args": [
"-y",
"garmin-mcp-unofficial"
]
}
}
}Tools
42Inventory supported Garmin data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Garmin APIs or expose user data.
Machine-readable install, runtime and client guidance for AI agents. Does not call Garmin or expose secrets.
Explain supported Garmin data, privacy boundaries, recommended agent workflow and project links.
Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Garmin?'
Returns realistic example payloads of garmin_daily_summary, garmin_wellness_context, and garmin_get_body_battery_day so agents see the contract before any real Garmin Connect call.
Read the shared Delx wellness profile (~/.delx-wellness/profile.json). Returns the user's preferred name, body basics, goals, devices, training context, nutrition context, agent preferences, and missing critical fields. Cross-connector — the same profile is also available from other Delx Wellness MCPs (WHOOP, Oura, Nourish, Fitbit, etc). Read-only.
Persist a partial patch to the shared Delx wellness profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. Top-level fields stored: profile (preferred_name, language, timezone, units, age_or_birth_year, height, weight, sex_or_gender_context), goals, devices, training, nutrition, preferences, safety, notes. NEVER stores OAuth tokens, API keys, refresh tokens, cookies, or any secret-shaped field — writes will be rejected at validation time. Cross-connector — the same profile is read by other Delx Wellness MCPs.
Return the 11-question Delx wellness onboarding flow (in English or pt-BR) plus the current shared profile state and missing critical fields. Read-only. The agent should ask these questions one-by-one, then call garmin_profile_update with explicit_user_intent=true to save. The same profile is reused by every Delx Wellness connector (WHOOP, Oura, Nourish, etc.) — agents can call the equivalent {connector}_onboarding tools to cover their respective domains, or rely on this one since all connectors share the same questions.
Explain the local Garmin Connect authentication flow without asking the user to paste secrets into an agent.
Get the authenticated Garmin profile using the configured privacy mode.
Get Garmin account user settings such as units and display preferences.
List devices registered to the Garmin account.
Get the primary Garmin training device when available.
Get Garmin daily movement and wellness summary for a date.
Get Garmin daily steps and summary chart for a date.
Get Garmin daily heart-rate samples and resting heart-rate context for a date. Not medical advice.
Get Garmin sleep summary, stages and sleep window for a date. Not medical advice.
Get Garmin stress summary and samples for a date. Not medical advice.
Get Garmin Body Battery daily report for a date. Not medical advice.
Get Garmin Body Battery charge/drain events for a date. Not medical advice.
Get Garmin HRV status and overnight HRV metrics for a date when available. Not medical advice.
Get Garmin training readiness for a date when supported by the device/account. Not medical advice.
Get Garmin aggregated training status for a date when supported by the device/account. Not medical advice.
Get Garmin respiration data for a date when available. Not medical advice.
Get Garmin Pulse Ox / SpO2 data for a date when available. Not medical advice.
Get Garmin intensity minutes for a date.
Get Garmin hydration summary for a date when available.
Get Garmin weight/body-composition logs for a date range. Not medical advice.
List recent Garmin activities. Supports pagination, optional date filters and privacy modes.
Get a Garmin activity summary by activity id.
Get detailed Garmin activity samples when available.
Bounded time-series for one activity metric. Returns exact stats computed on full-resolution samples plus a downsampled series capped at 500 points, so a 3-hour ride at 1 Hz never blows the context window. Prefer garmin_get_activity / splits / hr_zones first; reach for this when you actually need the shape of the effort over time. GPS is never returned here.
Get Garmin activity splits/laps by activity id.
Get Garmin activity weather by activity id when available.
Get Garmin activity heart-rate zone time by activity id when available.
Check local Garmin config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Garmin or exposing secrets.
Show optional local SQLite cache status. Enable with GARMIN_CACHE=sqlite or GARMIN_CACHE=true.
Return local privacy, cache, token-path and env-presence posture without revealing secret values.
Delete the local Garmin token file. This does not change the Garmin account; use only when the user explicitly wants to disconnect this MCP. Gated by explicit_user_intent: true (requires explicit user intent).
Build a practical daily summary from Garmin activity, sleep, heart-rate, HRV, stress and Body Battery when available. Read-only and non-medical.
Build a weekly Garmin scorecard with movement, sleep, HRV, stress, Body Battery, bottlenecks and actions. Read-only and non-medical.
Normalize Garmin readiness, sleep score, Body Battery and recent movement load into the shared wellness_context shape for recommendation engines.
Overview
What is Garmin Mcp Unofficial?
A local-first MCP server that connects AI agents to your Garmin sleep, HRV, Body Battery, stress, training readiness, and activities via the unofficial Garmin Connect personal-token mode. It is an independent, unofficial project built for individuals who want their AI to work with Garmin data without sharing credentials or tokens with any agent.
How to use Garmin Mcp Unofficial?
Install via npm, then run setup, auth, and doctor commands. After authentication, add the MCP server configuration to your client (e.g., Claude Desktop, Cursor, Hermes). Example: npx -y garmin-mcp-unofficial setup --auth then add the JSON config to mcpServers.
Key features of Garmin Mcp Unofficial
- Local-first: tokens never leave your machine.
- Pure Node login – no Python required by default.
- Provides daily and weekly summaries, plus intraday investigation prompts.
- Covers sleep, HRV, Body Battery, stress, training readiness, activities, heart rate, and more.
- Optional SQLite cache and privacy mode settings.
- Garmin password is never stored – only short-lived tokens persist locally.
Use cases of Garmin Mcp Unofficial
- Daily health and training check-in with a single agent query.
- Weekly trend review across activity, sleep, stress, and body battery.
- Investigate one day's signals (heart, stress, Body Battery, activity).
- Verify setup and data availability before calling Garmin APIs.
FAQ from Garmin Mcp Unofficial
What data is available?
Sleep duration and stages, HRV status, Body Battery, stress, training readiness, training status, daily movement (steps, calories, distance, floors, intensity minutes), heart rate, activities, body composition, and hydration when supported by the device/account. Continuous device telemetry is not exposed.
How are credentials handled?
Your Garmin password is never stored. The auth command prompts locally for credentials and MFA, then saves only short-lived Garmin Connect tokens to ~/.garmin-mcp/garmin_tokens.json with user-only permissions. The MCP client never sees your credentials.
Is this an official Garmin product?
No. This is an unofficial project, not affiliated with, endorsed by, or supported by Garmin. It uses the unofficial Garmin Connect personal-token mode and can break if Garmin changes private auth or endpoints.
What are the runtime requirements?
Node.js 20+ and a Garmin Connect account with active devices. Python 3 is only needed if you opt into the legacy auth --use-python flow; the default login is pure Node.
Can I configure privacy or caching?
Yes. Set GARMIN_PRIVACY_MODE to summary, structured, or raw (default summary). Local read-through cache is opt-in via GARMIN_CACHE=sqlite. The token path and domain are also configurable via environment variables.
Frequently asked questions
What data is available?
Sleep duration and stages, HRV status, Body Battery, stress, training readiness, training status, daily movement (steps, calories, distance, floors, intensity minutes), heart rate, activities, body composition, and hydration when supported by the device/account. Continuous device telemetry is not exposed.
How are credentials handled?
Your Garmin password is never stored. The `auth` command prompts locally for credentials and MFA, then saves only short-lived Garmin Connect tokens to `~/.garmin-mcp/garmin_tokens.json` with user-only permissions. The MCP client never sees your credentials.
Is this an official Garmin product?
No. This is an unofficial project, not affiliated with, endorsed by, or supported by Garmin. It uses the unofficial Garmin Connect personal-token mode and can break if Garmin changes private auth or endpoints.
What are the runtime requirements?
Node.js 20+ and a Garmin Connect account with active devices. Python 3 is only needed if you opt into the legacy `auth --use-python` flow; the default login is pure Node.
Can I configure privacy or caching?
Yes. Set `GARMIN_PRIVACY_MODE` to `summary`, `structured`, or `raw` (default `summary`). Local read-through cache is opt-in via `GARMIN_CACHE=sqlite`. The token path and domain are also configurable via environment variables.
Basic information
More Other MCP servers
Reactive Resume
amruthpillaiA one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
🪟 Windows-MCP
CursorTouchMCP Server for Computer Use in Windows
Inbox Zero AI
elie222The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
Mcp
browsermcpBrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
🚀 Model Context Protocol (MCP) Curriculum for Beginners
microsoftThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable,
Comments