coros-training-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authenticate_corosC | Authenticate with the Coros Training Hub API and store the access token. |
| authenticate_coros_mobileA | Authenticate with the Coros mobile API only and store the mobile token. This is needed for sleep data (deep/light/REM/awake phases) which is only available through the mobile API (apieu.coros.com), not the Training Hub web API. |
| check_coros_authA | Check whether valid Coros access tokens are stored locally. |
| get_daily_metricsA | Retrieve nightly HRV and daily metrics from Coros for a configurable time range (up to 24 weeks). Uses the /analyse/dayDetail/query endpoint which returns daily records including HRV, resting heart rate, training load, and fatigue rate. |
| get_sleep_dataA | Fetch nightly sleep data from Coros for a configurable time range. Returns per-night sleep stage breakdown (deep, light, REM, awake) and sleep heart rate for each night. Data comes from the Coros mobile API (apieu.coros.com) which is separate from the Training Hub web API. |
| list_activitiesC | List Coros activities for a date range. |
| get_activity_detailB | Fetch full detail for a single Coros activity. |
| export_activity_fileB | Export a completed Coros activity file and save it locally. |
| list_workoutsA | List all saved library workout programs in the Coros account. |
| get_workoutA | Fetch one saved workout program in detail. |
| get_workout_builder_catalogB | Return the checked-in workout builder catalog and enum registry. The catalog combines:
|
| get_run_workout_schemaA | Return the shared run-step contract used by create_run_workout and update_run_workout. This includes:
|
| get_bike_workout_schemaA | Return the shared bike-step contract used by create_bike_workout and update_bike_workout. This includes:
|
| get_strength_workout_schemaA | Return the strength-workout field vocabulary. This includes:
Use this before authoring or editing a strength workout so the patch vocabulary is explicit rather than guessed. |
| create_workoutB | Create a new structured workout in the Coros account. The workout appears in the Coros app under Workouts and can be synced to the watch for guided execution. |
| create_run_workoutA | Create a running workout with explicit run-step semantics. Use Each plain step uses the shared run-step contract:
Optional fields include:
Repeat groups use:
Repeat groups use:
Notes:
|
| create_bike_workoutA | Create a cycling workout with explicit bike-step semantics. Use Each plain step uses the shared bike-step contract:
Optional fields include:
Repeat groups use:
Notes:
|
| update_workoutA | Clone an existing workout, apply edits, and create a replacement workout. Sport-agnostic: works for running, cycling, and strength library workouts.
For strength-specific field vocabulary and examples, call
This does not mutate the original workout in place. The replacement workout is created in the library, and the caller can optionally delete the old workout afterward. |
| update_run_workoutA | Clone a running workout, apply run-specific edits, and create a replacement. Use Each update item requires one selector:
After that, it accepts the same run-step fields as create_run_workout,
including |
| update_bike_workoutA | Clone a cycling workout, apply bike-specific edits, and create a replacement. Use Each update item requires one selector:
After that, it accepts the same bike-step fields as create_bike_workout,
including |
| delete_workoutC | Delete a workout program from the Coros account. |
| list_planned_activitiesC | List planned (scheduled) activities from the Coros training calendar. |
| list_scheduled_workoutsB | List scheduled workout entries in a calendar-friendly format. These are calendar occurrences, not just library workouts. Each scheduled item carries plan-specific identifiers needed for move/remove/replace flows. |
| schedule_workoutC | Add an existing workout from the library to the Coros training calendar. |
| remove_scheduled_workoutB | Remove a scheduled workout from the Coros training calendar. |
| move_scheduled_workoutA | Move a scheduled workout to a new day. The source-of-truth is the existing scheduled entry identified by
(plan_id, id_in_plan). Its embedded program is used to re-schedule on
Order of operations is schedule-new → remove-old, so a failure leaves a duplicate rather than losing the workout. A pre-flight lookup verifies the scheduled entry exists before anything destructive runs. |
| replace_scheduled_workoutA | Replace a scheduled workout by cloning the library workout, applying edits, scheduling the replacement, and removing the old scheduled entry. |
| create_strength_workoutC | Create a new structured strength workout program. |
| list_exercisesA | List the exercise catalogue for a given sport type. Useful for resolving strength/conditioning exercises (sport_type=4) that appear in planned workouts by name and ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
Most tools have distinct purposes, but there is real overlap between generic create_workout/update_workout and the sport-specific create_run_workout, create_bike_workout, create_strength_workout, update_run_workout, and update_bike_workout tools. list_planned_activities and list_scheduled_workouts also have fuzzy boundaries, and the catalog/schema tools require careful reading to distinguish.
Tool names consistently use snake_case with a verb_noun pattern, such as list_activities, get_activity_detail, create_run_workout, and delete_workout. A few names are longer or slightly differently ordered, but the convention is predictable throughout.
With 29 tools, the surface is heavy for the server's scope and likely could be consolidated. Sport-specific create/update variants plus separate schema/catalog tools and multiple scheduling tools push the count above what is comfortably scannable.
The server covers auth, daily metrics, sleep, activities, workout library CRUD, sport-specific workout authoring, scheduling, and exercise lookup. Minor gaps remain, such as no dedicated strength-specific update tool and limited scheduled-entry detail, but most workflows can be worked around.