Logo Running Workout Running Workout
Tutorial · Developers

Drive your Garmin from Claude Code: the MCP server for personal use

Want to read your Garmin activities and write workouts to your watch from the terminal, without applying for Garmin API access nor writing the OAuth client? The Running Workout MCP server adds to Claude Code in one command. Here is the install, the exposed tools and automation examples.

Last updated: 2026-09-28

Your Garmin in the terminal

Free · official Garmin connection · workouts sent to your watch

Get started

Why an MCP server rather than the Garmin API

The Garmin API is not open to individuals: you need a developer account, an application approved by Garmin, and a server receiving data through webhooks. For personal use, that is out of proportion. Running Workout did that work and exposes it through an MCP server: Claude Code, like Claude, ChatGPT or Gemini CLI, reaches it with a simple OAuth authorization on your account.

MCP (Model Context Protocol) is the open standard that describes tools to an assistant: here, reading your activities and profile, creating workouts, scheduling them, managing a plan. The server is read-only on your activities and only writes scheduled workouts to Garmin Connect.

Try it with your own Garmin

Free, nothing to install: connect your Garmin, then ask Claude or ChatGPT for your first workout. It lands on your watch within a minute.

Create my account

One-command install

First create your Running Workout account by connecting your Garmin (turn on "Historical Data" on the Garmin screen). Then, in a terminal where Claude Code is installed:

claude mcp add --transport http running-workout https://www.runningworkout.fr/mcp

Start Claude Code, type "/mcp", select running-workout and authenticate: the browser opens on runningworkout.fr, you approve the authorization screen, and the tools appear. The authorization is an OAuth token specific to Claude Code, revocable from your Running Workout settings.

To share it with a project, the same configuration can live in the repository's .mcp.json file, with the http transport and this address; each member authenticates with their own Garmin account.

The exposed tools

Tool What it does
get_athlete_profile MAS, max HR, FTP, acute and chronic load (ACWR), declared values, latest notes
list_activities, get_activity_details Imported activities, then one run's detail: summary, laps, computed metrics
create_workout A structured workout (run, bike, swim) sent to Garmin Connect, with pace, HR, power or cadence targets
list_scheduled_workouts, move_scheduled_workout, delete_workout The training calendar: list, move, delete
set_athlete_data, set_athlete_goal, set_athlete_constraint, add_athlete_note Athlete memory: measured MAS, race goal, constraints (days, injuries), notes
start_training_plan, get_plan_week, review_plan_week, schedule_plan_week 5K to marathon plans: start, read the week, review it afterwards, push it to the watch

Each tool returns model-readable text, in your account's units (min/km or min/mile). Errors are explicit: a target Garmin cannot accept is refused before sending, with the fix to apply.

Automation examples

The morning check

claude -p "Read my latest Garmin activity. Summarize it in 5 lines: distance, average pace, average HR, cardiac drift, and one tip for the next session."

The week on the watch

claude -p "I'm preparing a 10K on November 15. Build my next week (3 sessions: intervals, threshold, long run) from my profile, then send each workout to my Garmin on its date."

A weekly script

Claude Code's non-interactive mode ("claude -p") runs from cron or a shortcut. One line on Sunday evening is enough to get the week's review and the next week's proposal. Keep human validation for sending to the watch: ask for the proposal, read it, then send.

The MCP server is the same one used by Claude on the web, ChatGPT and Gemini CLI. Everything you create from Claude Code shows up in your Running Workout calendar and in Garmin Connect.

Limits and good practices

Frequently asked questions

Do I need a Garmin developer account?

No. Running Workout holds the Garmin API access and lends it to your account through an OAuth authorization. You have nothing to request from Garmin.

Can I call the MCP server from my own code, without Claude?

The server follows the MCP standard (JSON-RPC over HTTP with OAuth 2.1): any compliant MCP client can connect. It is designed for assistants, not as a documented public API; the "Write a workout to Garmin via API" page describes the workout format.

Do Cursor, Codex or other agents work?

Any agent accepting a remote MCP server with OAuth authentication can connect to the same address. Claude Code, Claude, ChatGPT and Gemini CLI are the ones Running Workout tests.

Your Garmin in the terminal

Free account, one command in Claude Code, and your activities are readable, your workouts sendable.

Get started