MCP.Market

Garmin Connect Workouts MCP server

by slaat·io.github.slaat/garmin-connect-workouts-mcp·v1.1.3

Turn plain language into real workouts on your Garmin watch: pace, HR, power, intervals, swim sets.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
New

0 stars0 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • authenticate_garmin

    Authenticate 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_auth

    Probe 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 action

    Create 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 action

    Permanently 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_workout

    Fetch 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_workouts

    List 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 action

    Put 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 action

    Replace 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

no findings
  • 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
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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-mcp

Claude 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.

  1. The server checks the stored session with a cheap authenticated request.
  2. 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).

  1. 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.