coros-workout-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@coros-workout-mcpCreate a leg day workout with 3 sets of squats and lunges"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
coros-workout-mcp
⚠️ Unofficial, community-led project — not affiliated with COROS. COROS now offers an official MCP server at coroslab/COROS-MCP. If you want a supported, first-party option, use that. This project remains an independent, community-built tool.
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. For an official, COROS-supported MCP server, see coroslab/COROS-MCP.
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.
Related MCP server: garmin-mcp-bridge
Setup
cd coros-workout-mcp
npm install
npm run buildUsage with Claude Code
claude mcp add coros-workout -- node /path/to/coros-workout-mcp/dist/src/index.jsTo 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.jsUsage 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/nodenvm:
~/.nvm/versions/node/<version>/bin/nodefnm:
~/.local/share/fnm/node-versions/<version>/installation/bin/nodeHomebrew:
/opt/homebrew/bin/node
Tools
Tool | Description |
| Log in with email/password (or auto-login from env vars) |
| Verify current auth status |
| Search ~383 exercises by name, muscle, body part, equipment |
| Build and push a strength workout to COROS |
| Fetch the latest exercise catalog from COROS and rebuild locally |
| 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 TypeScriptThis server cannot be deployed
Maintenance
Related MCP Connectors
First strength app Claude can write to: plan training in chat, it lands in the app ready to log.
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Create Hevy routines and analyze your training from chat. Unofficial; BYO Hevy PRO API key.
Manage fitness coaching clients, workouts, programs, chats and funnels from your assistant.
Related MCP Servers
- FlicenseBqualityBmaintenanceIntegrates with the Boostcamp fitness platform to provide access to training history, workout programs, custom exercises, and analytics through Claude.127-
- AlicenseNot gradedqualityBmaintenanceBrings Garmin training data into Claude via Intervals.icu, enabling querying of activities, wellness, and planned workouts, as well as creating structured workouts that sync back to the Garmin watch.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables listing, creating, editing, deleting, and scheduling structured workouts (run, cycle, swim, triathlon) on Garmin Connect via natural language.MIT
- AlicenseNot gradedqualityBmaintenanceConnects to Intervals.icu to let users query training data, create workouts, manage calendar events, and coach athletes through natural language in Claude Desktop.10 npmMIT