Prepare the server locally
Run this once before adding it to Claude Code.
git clone https://github.com/rowlando/coros-workout-mcp
cd coros-workout-mcpThen follow the repository README for any remaining dependency or build steps.
Register it in Claude Code
claude mcp add coros-workout -- /path/to/node /path/to/coros-workout-mcp/dist/src/index.jsReplace any placeholder paths in the command with the real path on your machine.
Make your agent remember this setup
coros-workout's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- 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
Tools 6
authenticate_corosLog in with email/password or auto-login from env varscheck_coros_authVerify current auth statussearch_exercisesSearch ~383 exercises by name, muscle, body part, equipmentcreate_workoutBuild and push a strength workout to COROSupdate_exercisesFetch the latest exercise catalog from COROS and rebuild locallylist_workoutsList existing workoutsEnvironment Variables
COROS_EMAILEmail address for COROS accountCOROS_PASSWORDPassword for COROS accountCOROS_REGIONRegion for COROS account (eu or us)Try it
Original README from rowlando/coros-workout-mcp
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 [email protected] -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": "[email protected]",
"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) orus(US). Defaults toeu. - 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