coros-workout-mcp

coros-workout-mcp

Enables Claude to design strength workouts and push them directly to COROS watches via the Training Hub API. It supports searching an exercise catalog, creating workout routines, and listing existing workouts.

Category
Visit Server

README

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured