Skip to main content
Glama
wtcollote

coros-workout-mcp

by wtcollote

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort for the HTTP/SSE server. Defaults to 8787 locally.8787
COROS_EMAILNoEmail for the COROS Training Hub account. Required for authenticated mode; demo mode does not require it.
COROS_REGIONNoRegion for the COROS service: 'eu' (Europe) or 'us' (US). Defaults to 'eu'.eu
COROS_PASSWORDNoPassword for the COROS Training Hub account.
ATHLETE_PROFILE_JSONNoInline JSON string containing a private athlete profile. Alternative to ATHLETE_PROFILE_PATH.
ATHLETE_PROFILE_PATHNoPath to a JSON file containing a private athlete profile. Alternative to ATHLETE_PROFILE_JSON.
COROS_ALLOW_UNOFFICIAL_MOBILE_LOGINNoSet to 'true' to enable the legacy unofficial mobile login for get_sleep_data. Leave unset or 'false' to keep it disabled and avoid competing with the official COROS mobile session.false

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
authenticate_corosA

Log in to COROS Training Hub. Stores auth token for subsequent calls. Also checks COROS_EMAIL/COROS_PASSWORD env vars for auto-login. WARNING: Logging in via API invalidates the web app session.

check_coros_authA

Check if COROS authentication is available (from stored token or env vars).

search_exercisesA

Search the COROS exercise catalog (~383 strength exercises). Filter by name, muscle group, body part, and/or equipment. Returns exercise names, muscles, equipment, and default sets/reps.

create_workoutA

Create a strength workout on COROS Training Hub. Resolves exercise names from the catalog, builds the full API payload, calculates metrics, and saves the workout. The workout will sync to the user's COROS watch.

update_exercisesB

Fetch the latest exercise catalog from COROS APIs and rebuild the local catalog. Requires authentication. Fetches exercises from the COROS API and i18n strings for human-readable names.

list_workoutsB

List workouts from COROS Training Hub.

assign_workout_to_calendarA

Assign an existing COROS Training Hub workout to a date in the COROS training calendar. Use list_workouts first to obtain the workout ID.

create_structured_workoutA

Create a structured running or cycling workout with time, distance or open steps, optional HR/pace/power/cadence/speed targets, and repeat groups. Optionally schedule it on a COROS calendar date.

delete_workoutA

Delete a saved workout from the COROS Training Hub library. This does not remove already scheduled calendar entries.

list_scheduled_workoutsA

List workouts scheduled in the COROS calendar, including IDs required to move or remove them.

remove_scheduled_workoutA

Remove one workout occurrence from the COROS calendar. Use list_scheduled_workouts first.

move_scheduled_workoutA

Move a COROS calendar workout to another date without changing its contents. Use list_scheduled_workouts first.

duplicate_workoutA

Duplicate any COROS library workout. Optionally rename it, change its description, and schedule the copy.

update_workoutA

Safely edit a workout by creating an updated clone. For running/cycling, steps can be replaced. The original is retained unless deleteOriginal=true.

create_week_planA

Create and schedule several structured running/cycling workouts in one request. All entries are validated and calendar conflicts are checked before writing.

check_calendar_conflictsB

Find dates containing more than one scheduled COROS workout.

summarize_planned_loadB

Summarize planned workout count, duration and distance by sport for a date range. This is planned volume, not physiological COROS Training Load.

swap_calendar_workoutsC

Swap two scheduled COROS workout occurrences between dates while preserving their calendar identities.

validate_structured_workoutA

Validate and calculate a structured workout locally without writing anything to COROS.

export_coros_backupB

Export COROS workout-library metadata and raw calendar data as JSON for backup or inspection. Does not include account credentials.

get_workout_detailsA

Return the complete COROS definition of one library workout, including every step and target.

replace_scheduled_workoutB

Replace one calendar occurrence with another library workout. The replacement is scheduled before the old occurrence is removed.

shift_calendar_rangeB

Preview or move every scheduled workout in a date range by a fixed number of days.

copy_calendar_rangeA

Preview or copy all scheduled workouts from one date range to dates shifted by a fixed number of days. Copies are new library workouts.

clear_calendar_rangeA

Preview or remove every scheduled workout occurrence in a date range. Applying requires confirm=DELETE.

audit_calendarB

Audit a calendar range for duplicate days, missing management IDs and planned-volume totals without changing COROS.

get_hrv_dataA

Read recent nightly HRV, baseline and variability from the COROS Training Hub dashboard.

get_daily_metricsB

Read COROS daily HRV, resting heart rate, fatigue, training load, load ratio and fitness metrics for a date range.

get_sleep_dataB

MANDATORY: before calling this tool, first read the same date range with the installed official COROS MCP OAuth sleep tool (COROS_MCP_2 querySleepData), normalize its result, and supply it as officialSleepRecords. Do not call this tool with officialSleepRecords omitted unless the official COROS MCP read failed.

list_activitiesB

List completed COROS activities with duration, distance, heart rate, training load, power and elevation.

get_activity_detailA

Read the detailed metrics, laps and zones for one completed COROS activity. Large graph arrays are omitted.

analyze_aerobic_decouplingA

Calculate aerobic decoupling for a completed running or cycling activity by comparing time-weighted speed/heart-rate efficiency in both halves. Trims warm-up and cool-down by default and reports when data is insufficient.

analyze_completed_activityA

Return a compact coach-ready analysis of any completed activity. Supports endurance metrics and explicit context for strength, walking, hiking, mobility and active recovery. Supply date to allow summary fallback if COROS rejects detailed strength data.

analyze_training_dayA

Analyze every completed COROS activity on one date, including strength, walking, hiking, mobility and recovery sessions. Classifies only the recorded training day using transparent rules and also returns the planned calendar.

daily_training_briefingB

MANDATORY SLEEP ROUTING: first call COROS_MCP_2 querySleepData for the last seven wake-up days and pass normalized results as officialSleepRecords. Then build the daily briefing from sleep, HRV, resting heart rate, load, activities and calendar.

preview_daily_adjustmentB

MANDATORY SLEEP ROUTING: first call COROS_MCP_2 querySleepData for the required recent wake-up days and pass normalized results as officialSleepRecords. Then preview the daily adjustment. Never change the calendar.

calculate_fueling_planA

Calculate practical carbohydrate, fluid and sodium ranges for an endurance session. Uses duration, intensity, temperature and optional measured sweat/sodium loss. This is a planning estimate, not medical advice.

compare_activity_historyA

Compare up to eight similar completed COROS activities over a date range using normalized summary metrics and aerobic decoupling. Filter by exact COROS sport type and optional name text.

weekly_training_reportA

MANDATORY SLEEP ROUTING: first call COROS_MCP_2 querySleepData for the required wake-up-date range and pass normalized results as officialSleepRecords. Then build the seven-day report and comparison.

analyze_workout_executionA

Compare a planned COROS workout with the completed activity linked to its program blocks. Reports duration and HR/cadence target compliance when COROS exposes programExerciseIndex.

taper_readinessA

MANDATORY SLEEP ROUTING: first call COROS_MCP_2 querySleepData for the required wake-up-date range and pass normalized results as officialSleepRecords. Then assess taper readiness from load, sleep, HRV and resting heart rate.

analyze_gpx_routeA

Analyze a GPX track or route without external writes. Returns distance, elevation, endpoints and compact fixed-distance sectors with coordinates, grade and bearing.

analyze_route_weatherB

Combine a GPX route with Open-Meteo hourly forecasts. Estimates arrival per sector and reports temperature, rain, wind, gusts, headwind/crosswind components, daylight and explicit risks.

simulate_ultra_routeB

Build optimistic, probable and conservative timing scenarios from a GPX route, departure time, flat-terrain speed, planned stops and an explicit climbing penalty. Returns sector checkpoints and finish times.

plan_operational_routeB

Build an operational GPX plan for cycling, road running, trail running, walking or hiking: three timing scenarios, named stops, climbs, daylight, fueling and optional weather. Read-only.

calibrate_sport_performanceA

Fit an effective base speed/pace and ascent penalty from comparable COROS activity summaries. Excludes indoor cycling for outdoor-route calibration and reports fit error, confidence and limitations.

analyze_multisport_loadA

Aggregate a date range across cycling, running, trail, walking, hiking, strength and mobility. Keeps COROS cardiovascular load separate from heuristic impact exposure and recorded strength duration.

connector_statusA

Return the deployed connector version, expected tool count, authentication state and enabled feature groups. Use this to detect stale ChatGPT tool catalogs.

coros_capabilitiesA

Use this when a COROS function is missing from the chat catalog or before calling the stable compatibility bridge. Returns current read/write operation names, input contracts and required confirmations.

coros_readA

Use this when a specific COROS read-only tool is absent from an older chat. Call coros_capabilities first, then pass its operation name and input object. The schema stays stable while server-side operations evolve.

coros_writeB

Use this when a specific COROS write tool is absent from an older chat. Call coros_capabilities first. Writes use an allowlist, validate inputs and require the exact confirmation returned for that operation.

get_activity_export_urlA

Request a temporary COROS download URL for one completed activity in FIT, GPX, TCX, KML or CSV format. Read-only; the URL may expire.

analyze_fit_activityA

Download and analyze the FIT file for a completed COROS activity. Returns bounded summaries of record-level HR, cadence, speed, power, temperature, stops, climbs, aerobic decoupling and finish quality; raw samples are not returned.

get_athlete_profile_metricsA

Return a consolidated COROS physiological profile and period trends: VO2max, lactate threshold HR/pace, base fitness, training indices, HRV and resting HR. Missing data is explicit and never estimated.

get_readiness_summaryB

MANDATORY SLEEP ROUTING: first call COROS_MCP_2 querySleepData for this wake-up date and pass the normalized result as officialSleepRecords. Then combine sleep, HRV, load, completed activities and calendar. Do not invent a readiness score.

compare_plan_to_actualB

Compare planned COROS calendar volume with completed activities by date for a selected range.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 56 tools

Disambiguation3/5

Several tools cluster under shared prefixes (eight analyze_* tools, six get_* metrics tools) with overlapping analytical territory, such as analyze_completed_activity vs analyze_training_day and analyze_aerobic_decoupling vs analyze_fit_activity. The descriptions are detailed enough to disambiguate most pairs, but the compatibility bridge (coros_read/coros_write) and the multiple MANDATORY sleep-routing tools add selection risk.

Naming Consistency4/5

The vast majority of tools follow a consistent snake_case verb_noun pattern (list_workouts, create_workout, analyze_fit_activity, clear_calendar_range). A handful deviate with noun-first or adjectival names (weekly_training_report, daily_training_briefing, taper_readiness, connector_status, coros_capabilities), which breaks the pattern slightly but does not cause confusion.

Tool Count2/5

At 56 tools, the server is well past the heavy threshold. Many tools could be consolidated (the eight analyze_* tools, the six calendar range tools, and the four compatibility/bridge tools). While the domain is broad, the surface area feels bloated rather than tightly scoped.

Completeness4/5

The domain coverage is exceptionally thorough: full workout library CRUD, calendar scheduling with swaps/shifts/copies, activity retrieval and export, analytics, route planning, fueling, and backup. The notable gap is that sleep-dependent tools explicitly require an external COROS_MCP_2 OAuth tool for official sleep data, meaning the server is not fully self-contained for its stated readiness/reporting workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues