garmin-connect-mcp
Connects to Garmin Connect to retrieve health and fitness data (sleep, heart rate, steps, HRV, stress, body battery, training readiness, VO2 max, weight) and activity history (runs, workouts, splits, personal records), and allows logging weight, hydration, and building/scheduling workouts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@garmin-connect-mcpHow did I sleep last night?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Garmin Connect for Claude
Ask Claude about your Garmin data in plain English.
"How did I sleep last night?" "Show me my runs from the last two weeks." "Am I recovered enough to train hard today?" "How much did I run last month compared to the month before?"
This connects your Garmin Connect account to the Claude Desktop app, so Claude can read your workouts, sleep, heart rate and other health data and talk about them with you.
You do not need to know how to code to use this. The installer asks you a couple of questions and does the rest.
What you need
A Mac
A Garmin Connect account with a Garmin watch or device
Related MCP server: Garmin Connect MCP Server
Install
Open the Terminal app on your Mac. (Press Cmd + Space, type Terminal,
press Enter.)
Copy this line, paste it into the Terminal window, and press Enter:
curl -fsSL https://raw.githubusercontent.com/jharkebusch/garmin-connect-mcp/main/install.sh | bashIt will:
Set up a private, self-contained Python environment (your Mac's own Python is not touched)
Ask for your Garmin email and password, and the security code Garmin sends you
Configure Claude Desktop for you
When it finishes, quit Claude Desktop completely with Cmd + Q and open it
again. Closing the window is not enough.
Then just ask Claude about your Garmin data.
What Claude can do
Health and wellness
Ask about | Tool |
A day at a glance |
|
Sleep, stages and sleep score |
|
Daily step counts and totals |
|
Resting, low and high heart rate |
|
Heart rate variability and recovery |
|
Stress through the day |
|
Body Battery charge and drain |
|
Whether you are ready to train hard |
|
VO2 max, fitness age, training status |
|
Body weight over time |
|
Workouts and activities
Ask about | Tool |
Activities in a period |
|
Activities on one day |
|
Everything about one activity |
|
Your most recent activity |
|
Kilometre or mile splits |
|
Totals over a period |
|
Personal bests |
|
Your Garmin devices |
|
Saved workout plans |
|
Your training calendar |
|
Recording things (these change your Garmin account)
Ask Claude to | Tool |
Log a body weight |
|
Log water you drank |
|
Build a workout plan |
|
Put a workout on your calendar |
|
Nothing can delete your data. There is no tool that removes an activity, a workout or a weigh-in, so a mistaken request cannot destroy your training history.
Dates in plain English
Every tool understands everyday phrases, so you can just talk normally:
today · yesterday · last night · 3 days ago · last 7 days ·
this week · last month · 2026-08-18 · 2026-08-01 to 2026-08-18
Your privacy and security
Your password is never saved. It is used once during setup to sign in, and then discarded.
Only Garmin's access tokens are stored, in
~/.garminconnect, as a file only your user account can read (0600, inside a0700folder).Nothing is sent anywhere except Garmin. There is no telemetry, no analytics and no third-party server. Your data goes from Garmin to your own Mac and nowhere else.
Everything runs locally on your machine.
Your Garmin data only reaches Anthropic if Claude includes it in a reply, the same as anything else you type into Claude.
Updating
Run the same install command again. It updates in place and keeps you signed in.
If you need to sign in again
Garmin sessions renew themselves and rarely expire. If Claude ever says your login has expired, run this in Terminal:
garmin-mcp-setupIf your Terminal does not recognise that command, use the full path:
~/.garmin-mcp/bin/garmin-mcp-setupUninstalling
rm -rf ~/.garmin-mcp ~/.garminconnect ~/.local/bin/garmin-mcp-setupThen remove the "garmin" entry from the mcpServers section of
~/Library/Application Support/Claude/claude_desktop_config.json.
Troubleshooting
Claude does not see the Garmin tools.
Quit Claude Desktop fully with Cmd + Q and reopen it. Closing the window
leaves it running in the background.
"Your Garmin account is not connected yet."
Run garmin-mcp-setup in Terminal.
"Too many requests." Garmin rate-limits sign-in attempts. Wait about 15 minutes.
A number is missing from a reply. Missing means your device did not record it. Some metrics (HRV, Body Battery, training readiness) need a compatible Garmin watch worn overnight. The tools leave a metric out rather than guessing a value.
For developers
git clone https://github.com/jharkebusch/garmin-connect-mcp.git
cd garmin-connect-mcp
uv venv --python 3.12 && VIRTUAL_ENV=.venv uv pip install -e ".[dev]"
VIRTUAL_ENV=.venv uv run pytestLayout:
src/garmin_mcp/server.py— MCP server and tool registrationsrc/garmin_mcp/session.py— authenticated Garmin client, thread offloadsrc/garmin_mcp/dates.py— plain-English date parsingsrc/garmin_mcp/format.py— trims Garmin JSON into readable textsrc/garmin_mcp/tools/— the tools themselvessrc/garmin_mcp/setup_cli.py— interactive login and Claude configuration
Two design notes:
garminconnectis synchronous, so every call is pushed to a worker thread. Otherwise one slow Garmin request stalls the whole server.Login cannot happen inside a tool call, because Garmin's two-factor step needs an interactive prompt. Setup writes a token file; the server only ever reads it.
A caveat worth knowing
Garmin does not publish a public API. This uses the same interface the Garmin
mobile app uses, via the garminconnect
library. It works well, but Garmin can change that interface at any time and
temporarily break third-party tools. If that happens, re-running the installer
picks up the fix once the underlying library ships one.
This project is not affiliated with, endorsed by, or connected to Garmin Ltd. Use it with your own account and your own data.
Licence
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceThis Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to Claude and other MCP-compatible clients.1MIT
- Alicense-qualityDmaintenanceAn MCP server that gives Claude access to your Garmin Connect fitness and health data, including steps, sleep, activities, heart rate, and more.1MIT
- AlicenseAqualityBmaintenanceA read-only MCP server that gives Claude Desktop access to your Garmin Connect data — daily health metrics, sleep, activities, training status, and body composition.6MIT
- AlicenseAqualityBmaintenanceLocal MCP server that connects Claude Desktop with Garmin and Apple Health data to read training and recovery, estimate heart rate and pace zones, analyze performance, and create structured workouts.22MIT
Related MCP Connectors
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jharkebusch/garmin-connect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server