coros-mcp (community)

coros-mcp

Unofficial Coros MCP server: sleep, HRV, load and workouts from Training Hub, plus scheduling sessions in the calendar.

  • 125 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • Stores Coros credentials and reads health data: sleep, heart rate, load.
  • Write tools change workout templates and the calendar in the account.
All reasons and checks

cygnusb/coros-mcp

Install

Manual install

git clone https://github.com/cygnusb/coros-mcp.git
cd coros-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Manual installation from the README, step 1.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Stores Coros credentials and reads health data: sleep, heart rate, load.
  • Write tools change workout templates and the calendar in the account.

This is third-party code. Review the repository files before installing.

What it does

The server signs in to Coros Training Hub with your credentials and gives an agent sleep by stage, HRV, resting heart rate, training load, VO2max and workout details: laps, heart rate and power zones. It also manages the template library and calendar: an agent creates an interval or strength workout, schedules it for a day and removes it from the plan. There are 26 tools in total; `COROS_MCP_TOOLSET=readonly` keeps 12 read tools. History syncs into a local SQLite cache, so older data comes from the cache and only the fresh tail is requested from the API. Tokens live in the system keyring or an encrypted file.

Who it is for. Athletes and coaches on Coros watches who review sleep, recovery and load with an agent.

Good fit when

  • You want to compare deep sleep and REM from last week.
  • A four-week HRV trend should sit next to training load.
  • An agent creates a ninety-minute workout and schedules it for Thursday.
  • Years of history are synced into a local cache for fast queries.

Not a fit when

  • You need an officially supported integration, since Coros has its own MCP server.
  • You use the Coros mobile app all the time, because the mobile API login signs the phone out.
  • The password must not be stored in `.env` or the machine keyring.

Example request

How much deep sleep and REM did I get last week and how did HRV change over four weeks?

MCP

Transport
stdio
Authentication
key is optional

Environment variables

COROS_EMAIL
Coros account email for automatic sign-in.
COROS_PASSWORD secret
Coros account password for automatic sign-in.
COROS_REGION
Account region: eu, us or asia.
COROS_MCP_TOOLSET
The value readonly keeps only read tools.
COROS_MCP_HIDE_AUTH_TOOLS
The value 1 hides the authenticate_* tools.

Limitations

The project is unofficial and not affiliated with Coros: it uses the undocumented Training Hub API, which can change without notice. Coros has released an official MCP server, `coroslab/COROS-MCP`, and the README advises choosing it when you want a supported integration. The mobile login (`apieu.coros.com`) signs the phone app out; use `coros-mcp auth-web` to avoid that. Installation runs from a cloned repository with `pip install -e .` and needs Python 3.11 or newer. Write tools change the template library and calendar, so autonomous agents have a `readonly` mode.

How to disable. Run `claude mcp remove coros` or remove the `coros` entry from the client configuration, then `coros-mcp auth-clear` to wipe tokens. Delete the local SQLite cache by hand.

FAQ

How does unofficial coros-mcp differ from the official one?

It is a community project on the undocumented Training Hub API, while Coros released its own `coroslab/COROS-MCP`. The community version may offer different features but has no vendor support.

How do I keep the password away from the model?

Set `COROS_MCP_HIDE_AUTH_TOOLS=1`: the `authenticate_*` tools disappear and sign-in goes through `COROS_EMAIL` and `COROS_PASSWORD` or tokens stored beforehand.

How do I keep read-only access?

Set `COROS_MCP_TOOLSET=readonly`. Twelve read tools remain and writes to the Coros account are hidden.

How do I authenticate?

Run `coros-mcp auth` in a terminal outside the agent session and enter email, password and region (eu, us or asia). Tokens are stored in the system keyring.

Does coros-mcp need an API key?

No. The server signs in with Coros Training Hub credentials, and the token is stored in the system keyring or an encrypted file.

Discussion

No questions or reviews yet.

Official

Official COROS MCP: an agent reads workouts, sleep and heart rate and drafts training plans saved to your account.

MCP serverExtended access82Repository stars

A read-only MCP server that brings WHOOP recovery, sleep, HRV, strain and workouts to Claude, Codex and Cursor.

MCP serverExtended access181Repository stars
Official

An MCP server for workout tracking: Claude Desktop, Cursor and Cline read routines, sets, body weight and 1RM from your self-hosted openGym

MCP serverExtended access21.1KRepository stars

Garmin Personal MCP answers questions about sleep, HRV and training from your Garmin Connect account, read-only

MCP serverExtended access70Repository stars

An MCP server over your local Zepp and Amazfit database: agents read sleep, heart rate and workouts and draft plans

MCP serverBroad access251Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
coros-mcp (community) (this card)nokey is optional125
COROS MCPyesOAuth82the official Coros vendor server; this card covers an unofficial community project on the undocumented API
Garmin MCPnoAPI key1,498reads Garmin watch data; coros-mcp works with a Coros Training Hub account

README in short

Covers sample prompts, installation and connecting to Claude Code and Claude Desktop, three sign-in paths, a read-only mode and a tool reference.

README badge

Report a problem