
Security News
Lovable’s OJ Rewrites Vite’s Dev Server in Rust as AI Lowers the Cost of Forking Open Source
Lovable’s OJ rewrites Vite’s dev server in Rust, reducing memory use and preview times as AI lowers the cost of open source reimplementation.
garmin-connect-workouts-mcp
Advanced tools
MCP server that turns natural-language workout descriptions into structured Garmin Connect workouts, with pace/heart-rate/power/cadence targets and real repeat blocks.
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.
workoutTargetType table.5x1km becomes a single repeat group, not five
duplicated steps, so the watch shows an actual rep counter.claude mcp add garmin-workouts npx garmin-connect-workouts-mcp
Add to your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"garmin-workouts": {
"command": "npx",
"args": ["-y", "garmin-connect-workouts-mcp"]
}
}
}
Then restart Claude Desktop.
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):
authenticate_garmin tool. It opens
a real browser window at connect.garmin.com for you to log in normally.~/.config/garmin-connect-workouts-mcp/auth.json with 600 permissions
(owner read/write only).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.
| Tool | Description |
|---|---|
create_garmin_workout | Create a structured workout with steps, targets, and repeat blocks. |
list_garmin_workouts | List workouts in the Garmin Connect account. |
get_garmin_workout | Fetch the full structure of one workout. |
update_garmin_workout | Replace an existing workout's contents, keeping its id. |
delete_garmin_workout | Delete a workout. |
schedule_garmin_workout | Put a workout on the Garmin Connect calendar for a date. |
check_garmin_auth | Check whether the stored Garmin session still works. |
authenticate_garmin | Authenticate with Garmin Connect (opens a browser). |
A stated pace is treated as the fast edge of a range: Garmin stores pace
as a range, not a single point, so 4:00/km on its own becomes a
4:00-4:10/km range, widened by 10 seconds. Give both fast and slow
explicitly for a narrower or different range.
pnpm install
pnpm test # vitest: encoders + golden-file tests against real captured payloads
pnpm run build # compile TypeScript to dist/
pnpm run dev # run the server directly with tsx
Tests validate the workout encoders (targets, durations, repeat nesting) against fixtures captured from Garmin's own web client, so payload shape regressions get caught before they reach a real account.
This is an unofficial, third-party project. It is not affiliated with, endorsed by, or sponsored by Garmin Ltd. or any of its affiliates, and it talks to Garmin Connect's web API by reverse-engineering the same requests the official web client makes. It may stop working if Garmin changes that API. Use at your own risk, and at your own responsibility for the workouts and data you send to your account.
Thanks to garmin-workouts-mcp by Charles Frisbee for the original idea of driving Garmin Connect workouts through MCP.
MIT
FAQs
MCP server that turns natural-language workout descriptions into structured Garmin Connect workouts, with pace/heart-rate/power/cadence targets and real repeat blocks.
The npm package garmin-connect-workouts-mcp receives a total of 32 weekly downloads. As such, garmin-connect-workouts-mcp popularity was classified as not popular.
We found that garmin-connect-workouts-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Lovable’s OJ rewrites Vite’s dev server in Rust, reducing memory use and preview times as AI lowers the cost of open source reimplementation.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.