Garmin Connect Workouts MCP server
io.github.slaat/garmin-connect-workouts-mcp·v1.1.3Turn plain language into real workouts on your Garmin watch: pace, HR, power, intervals, swim sets.
0 stars0 downloads/wk
Reviews
Write oneNobody has reviewed Garmin Connect Workouts yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Garmin Connect Workouts tools (8, 4 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
authenticate_garminAuthenticate with Garmin Connect by opening a real browser window at connect.garmin.com for you to log in normally, then capture and store only the resulting session cookies and CSRF token (never your password). Run this whenever check_garmin_auth reports no valid session, or any other tool returns its 'not authenticated' message. Requires a local display; will not work in a headless-only environm
check_garmin_authProbe whether the stored Garmin Connect session is still valid, using a cheap authenticated request rather than a local expiry check (Garmin's session cookie does not carry a reliable expiry). Use this first when unsure whether the other tools will work. Returns a message telling you to run authenticate_garmin if the session is missing or has expired; never throws.
create_garmin_workoutwrite actionCreate a new structured workout in Garmin Connect from typed steps: durations, pace/HR/power/cadence targets, repeat blocks for intervals, and swim-specific stroke/equipment/pool-length fields. Use to add a workout; to change one that exists, use update_garmin_workout instead. Returns the new workoutId and a Connect link. Returns a re-auth message, not an exception, if no valid session exists. Exa
delete_garmin_workoutwrite actionPermanently delete a workout from Garmin Connect by workoutId. This is irreversible - there is no undo or trash. Use list_garmin_workouts or get_garmin_workout first to confirm you have the right workoutId. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.
get_garmin_workoutFetch the complete stored structure (all steps, targets, repeat blocks) of one workout by its workoutId, as raw JSON. Use this to inspect a workout, or to get its full contents before calling update_garmin_workout, which replaces the entire workout rather than patching it. Read-only. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.
list_garmin_workoutsList workouts stored in the Garmin Connect account, most recent first, with each workout's name, sport, and workoutId. Use this to find a workoutId to pass to get_garmin_workout, update_garmin_workout, delete_garmin_workout, or schedule_garmin_workout. Read-only. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.
schedule_garmin_workoutwrite actionPut an existing workout on the Garmin Connect calendar for a specific date, so it appears as a planned session and can sync to a device. Requires a workoutId already created via create_garmin_workout or found via list_garmin_workouts - this tool does not create workouts. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.
update_garmin_workoutwrite actionReplace the entire contents (name, sport, steps, pool settings) of an existing workout, identified by workoutId, keeping its id. This is a full overwrite, not a partial patch - fields you omit are dropped. Call get_garmin_workout first to see the current contents before changing them. If no valid session exists, returns a message asking you to run authenticate_garmin rather than throwing.
Public scan report
scanner v0.1.10 · 2026-10-27 · same rubric, same numbers if you re-run it
- Code scan8 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 55 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Garmin Connect Workouts compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 75% of 48,243 servers
- Tools
- 8
- the typical server has 7
- Tools that change things
- 50%
- typical: 0%. Fewer write tools means less an agent can break
What its tools let an agent do: 4 read · 1 create · 2 change · 1 delete
Install Garmin Connect Workouts in Claude Code, Cursor or VS Code
Runs npx -y garmin-connect-workouts-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add garmin-connect-workouts-mcp -- npx -y garmin-connect-workouts-mcp
What the publisher says
From the Garmin Connect Workouts repository's README, as published. We do not edit it. Read it on GitHub
Garmin Connect Workouts MCP
An MCP (Model Context Protocol) server that turns natural-language workout descriptions into structured workouts in Garmin Connect. Describe a session in plain English and the calling model builds a typed step-by-step workout that this server encodes into Garmin's workout API format and creates directly in your account.
Features
explicit bpm ranges, cycling power, and cadence, all encoded against Garmin's real workoutTargetType table.
- Pace, heart-rate, power and cadence targets - pace ranges, HR zones 1-5,
duplicated steps, so the watch shows an actual rep counter.
- Real repeat blocks - 5x1km becomes a single repeat group, not five
fly, drill, individual medley, or any stroke) and equipment (fins, kickboard, paddles, pull buoy, snorkel), plus a workout-level pool length in meters or yards.
- Swim workouts - per-step strokes (freestyle, backstroke, breaststroke,
schedule workouts onto the Garmin Connect calendar.
- Full workout lifecycle - create, list, get, update, delete, and
itself; every duration and target is an explicit, unit-tagged field, so there's nothing for a string like "10 min" to be silently misread as.
- Structured input, not text parsing - the server never parses free text
Quick Start
Claude Code
claude mcp add garmin-workouts npx garmin-connect-workouts-mcpClaude Desktop
Add to your configuration file:
- macOS: ~/Library/Application Support/Claude/claudedesktopconfig.json
- Windows: %APPDATA%\Claude\claudedesktopconfig.json
{
"mcpServers": {
"garmin-workouts": {
"command": "npx",
"args": ["-y", "garmin-connect-workouts-mcp"]
}
}
}Then restart Claude Desktop.
Authentication
Garmin Connect's web client authenticates with session cookies plus a CSRF token, not a password grant this server could hold on to. So the first time you create a workout (or whenever the session has expired):
a real browser window at connect.garmin.com for you to log in normally.
- The server checks the stored session with a cheap authenticated request.
- If it's missing or rejected, run the authenticate_garmin tool. It opens
~/.config/garmin-connect-workouts-mcp/auth.json with 600 permissions (owner read/write only).
- Once login completes, the session is captured and stored at
No password is ever stored - only the resulting session cookies and CSRF token. Garmin sessions expire, so you may be prompted to re-authenticate between sessions; the server detects this automatically and tells you when to run authenticate_garmin again. The login browser uses a persistent, isolated profile under ~/.config/garmin-connect-workouts-mcp/browser-profile/ so Garmin can remember the device across logins - it never touches your personal browser profile.
Tools
Usage Examples
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Garmin Connect Workouts: common questions
- Is Garmin Connect Workouts MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the Garmin Connect Workouts safety report
- How do I install Garmin Connect Workouts?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Garmin Connect Workouts need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Garmin Connect Workouts maintained?
- The last commit was 64 days ago (2026-09-02). The latest release is v1.1.3.
- How does Garmin Connect Workouts compare with other MCP servers?
- safety score 88/100 (higher than 75% of 48,243 servers); tools 8 (the typical server has 7); tools that change things 50% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.