Steps
- Open the connect page. Go to garminmcp.com/connect.
- Enter your Garmin email. Use the email of your Garmin Connect account and select Continue.
- Enter your password. Select Connect Garmin. Type the 6-digit code if Garmin sends one.
- Copy your private link. Select Copy. The link is your key, so keep it to yourself.
- Add the server. In a terminal, run
claude mcp add --transport http garmin YOUR_LINKwith your link in place of YOUR_LINK. - Check it. Run
claude mcp list. You should see garmin in the list. - Ask. Start a new Claude Code session and ask: “How did I sleep last night?”
The command
claude mcp add --transport http garmin YOUR_LINK
Add --scope user to use Garmin in every project, not only the current folder. Inside a session, /mcp shows the server and its tools. To remove it, run claude mcp remove garmin.
Setup prompt for agents
Some agents can add an MCP server by themselves, such as Claude Code and other coding agents. Paste this prompt into one of them. Put your link in place of YOUR_LINK first. The connect page gives you this prompt with your link already in it.
Add a remote MCP server for my Garmin data.
Name: garmin
Transport: Streamable HTTP
URL: YOUR_LINK
No sign-in or API key is needed; the URL is private, so do not share or log it.
If you are Claude Code, run: claude mcp add --transport http garmin YOUR_LINK
Otherwise, add it to your MCP settings with the same name and URL.
Then call list_recent_activities with limit 3 and tell me my last three workouts to confirm it works.
We test Garmin MCP in Claude. Other agents are not tested by us. In the Claude app, add the link in Settings instead: see Connect Garmin to Claude.
What Claude Code can read
| Tool | What it reads |
|---|---|
get_sleep | One night of sleep: stages, sleep scores, heart rate and breathing averages |
get_body_battery | Body Battery charged, drained, highest, and lowest per day |
get_daily_stats | Steps, calories, resting heart rate, and stress for one day |
get_heart_rate | Min, max, and resting heart rate, plus the 7-day resting average |
get_performance_metrics | Current running fitness: lactate threshold and race predictions |
get_personal_records | Your personal records, such as fastest 5 km and 10 km |
get_running_threshold | Threshold pace, threshold heart rate, and heart rate zones |
get_threshold_history | How threshold pace and heart rate moved over time |
get_training_status | Training status and training load for a day |
list_recent_activities | Your latest activities, newest first |
list_activities_by_date | Activities between two dates |
get_activity_details | Full detail for one activity |
get_activity_laps | Every lap of one activity: distance, time, pace, heart rate |
get_activity_intervals | The work reps of an interval session, warm-up and cool-down removed |
find_comparable_intervals | Reps of the same distance across your recent runs |
Good fits for a terminal: pull a month of runs into a table, compare interval reps across sessions, or draft a training note from your real numbers.
Questions
Do I need Python or uv?
No. The server is hosted. Claude Code talks to your link over HTTP.
What does --transport http do?
It tells Claude Code that the server is a remote URL, not a local program.
How do I use Garmin in all my projects?
Add --scope user to the claude mcp add command.
How do I check that it works?
Run claude mcp list, or type /mcp inside a session, then ask how you slept.
Can Claude Code change my Garmin data?
No. All 15 tools are read-only.
Can I use the same link in Claude on the web?
Yes. The same link works as a custom connector in Claude. See Connect Garmin to Claude.
One command, then ask about your training. Connect Garmin, copy one link, paste it in.
Get my link for Claude Code