COROS Workout MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/rowlando/coros-workout-mcp
cd coros-workout-mcp

Then follow the repository README for any remaining dependency or build steps before continuing.

2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add coros-workout -- node "<FULL_PATH_TO_COROS_WORKOUT_MCP>/dist/index.js"

Replace <FULL_PATH_TO_COROS_WORKOUT_MCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

Design strength workouts and push them directly to COROS watches

coros-workout-mcp

MCP server for creating COROS strength workouts via the Training Hub API. Lets Claude design workouts and push them directly to your COROS watch.

See the MCP in action: YouTube walkthrough

Disclaimer

This is an unofficial, community-driven project. It is not affiliated with, endorsed by, or connected to COROS in any way.

This server communicates with the COROS Training Hub using a reverse-engineered, undocumented API that may change or break without notice. Use it at your own risk.

COROS is a trademark of COROS Wearables, Inc. This project is provided as-is with no warranty — see LICENSE for details.

Setup

cd coros-workout-mcp
npm install
npm run build

Usage with Claude Code

claude mcp add coros-workout -- node /path/to/coros-workout-mcp/dist/src/index.js

To use env var auth (avoids typing credentials in conversation):

claude mcp add coros-workout -e COROS_EMAIL=you@example.com -e COROS_PASSWORD=yourpass -e COROS_REGION=eu -- node /path/to/coros-workout-mcp/dist/src/index.js

Usage with Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "coros-workout": {
      "command": "/path/to/node",
      "args": ["/path/to/coros-workout-mcp/dist/src/index.js"],
      "env": {
        "COROS_EMAIL": "you@example.com",
        "COROS_PASSWORD": "yourpass",
        "COROS_REGION": "eu"
      }
    }
  }
}

Node.js 18+ required — this server uses native fetch() which was added in Node 18.

Troubleshooting fetch is not defined: Claude Desktop is a GUI app that doesn't inherit your shell PATH, so node binaries installed via version managers (mise, nvm, fnm, volta) won't be found. Use the full absolute path to your node binary in "command":

which node        # e.g. /Users/you/.mise/shims/node
node --version    # confirm it's 18+

Common locations:

  • mise: ~/.local/share/mise/installs/node/<version>/bin/node
  • nvm: ~/.nvm/versions/node/<version>/bin/node
  • fnm: ~/.local/share/fnm/node-versions/<version>/installation/bin/node
  • Homebrew: /opt/homebrew/bin/node

Tools

Tool Description
authenticate_coros Log in with email/password (or auto-login from env vars)
check_coros_auth Verify current auth status
search_exercises Search ~383 exercises by name, muscle, body part, equipment
create_workout Build and push a strength workout to COROS
update_exercises Fetch the latest exercise catalog from COROS and rebuild locally
list_workouts List existing workouts

Example conversation

"Search for chest exercises with bodyweight"

"Create a workout called 'Quick Push' with 4x15 Push-ups, 3x10 Diamond Push-ups, and 3x20 Decline Push-ups with 45s rest"

Updating the exercise catalog

The bundled exercise catalog (data/exercises.json) is a static snapshot. If COROS adds new exercises, use the update_exercises tool to refresh it. This fetches the latest exercises from the COROS API and i18n strings from the CDN, rebuilds the catalog, and reloads the in-memory cache — all in a single tool call. Requires authentication.

Auth notes

  • Region: eu (Europe) or us (US). Defaults to eu.
  • Session conflict: Logging in via this API invalidates your COROS web app session, and vice versa.
  • Auth tokens are stored at ~/.config/coros-workout-mcp/auth.json (mode 0600).

Development

npm test           # Run unit tests
npm run test:watch # Watch mode
npm run build      # Compile TypeScript

Tools (6)

authenticate_corosLog in with email/password or auto-login from env vars
check_coros_authVerify current auth status
search_exercisesSearch ~383 exercises by name, muscle, body part, equipment
create_workoutBuild and push a strength workout to COROS
update_exercisesFetch the latest exercise catalog from COROS and rebuild locally
list_workoutsList existing workouts

Environment Variables

COROS_EMAILEmail address for COROS account
COROS_PASSWORDPassword for COROS account
COROS_REGIONRegion for COROS account (eu or us)

Configuration

claude_desktop_config.json
{"mcpServers": {"coros-workout": {"command": "/path/to/node", "args": ["/path/to/coros-workout-mcp/dist/src/index.js"], "env": {"COROS_EMAIL": "you@example.com", "COROS_PASSWORD": "yourpass", "COROS_REGION": "eu"}}}}

Try it

Search for chest exercises that use bodyweight.
Create a workout called 'Quick Push' with 4x15 Push-ups, 3x10 Diamond Push-ups, and 3x20 Decline Push-ups with 45s rest.
List my existing workouts on my COROS watch.
Update the exercise catalog to ensure I have the latest exercises from COROS.

Frequently Asked Questions

What are the key features of COROS Workout?

Search a catalog of over 380 exercises by muscle, body part, or equipment. Create and push custom strength workout routines directly to COROS watches. List and manage existing workouts via the Training Hub API. Refresh the local exercise catalog to include new additions from COROS.

What can I use COROS Workout for?

Athletes wanting to automate the creation of complex strength training routines. Users who prefer designing workouts via natural language prompts rather than manual app entry. Fitness enthusiasts who need to quickly sync custom workout plans to their wearable device.

How do I install COROS Workout?

Install COROS Workout by running: claude mcp add coros-workout -- node /path/to/coros-workout-mcp/dist/src/index.js

What MCP clients work with COROS Workout?

COROS Workout works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep COROS Workout docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare