analyzeActivityDetail
ChatGPTAnalyze a specific COROS training activity with a coach-style summary. It first fetches the activity detail, then explains the session in plain language with optional focus such as pace, speed, or heart rate.
analyzeActivityDetail
ChatGPTAnalyze a specific COROS training activity with a coach-style summary. It first fetches the activity detail, then explains the session in plain language with optional focus such as pace, speed, or heart rate.
downloadActivityFitFiles
ChatGPTDownload one or more COROS activity FIT files as binary resources. If the client can parse FIT files, use all available parsed data from the returned file(s) for downstream analysis. Do not assume a fixed schema or fixed set of fields. If native FIT parsing is unavailable, use Python such as fitparse to decode the returned bytes or base64 blob and analyze the parsed FIT records. Pass labelId and sportType for one activity, or pass startDate/endDate in yyyyMMdd format and optional sportType to download matching activities.
downloadActivityFitFiles
ChatGPTDownload one or more COROS activity FIT files as binary resources. If the client can parse FIT files, use all available parsed data from the returned file(s) for downstream analysis. Do not assume a fixed schema or fixed set of fields. If native FIT parsing is unavailable, use Python such as fitparse to decode the returned bytes or base64 blob and analyze the parsed FIT records. Pass labelId and sportType for one activity, or pass startDate/endDate in yyyyMMdd format and optional sportType to download matching activities.
getActivityDetail
ChatGPTGet detailed information about a specific COROS training activity. Returns comprehensive data including heart rate, pace/speed, elevation, cadence. You need the labelId and sportType from the activity list.
getActivityDetail
ChatGPTGet detailed information about a specific COROS training activity. Returns comprehensive data including heart rate, pace/speed, elevation, cadence. You need the labelId and sportType from the activity list.
queryActivityFitFileDownloadUrls
ChatGPTReturn one or more original COROS activity FIT file download URLs as text. Use this fallback when the MCP client cannot receive binary resources from downloadActivityFitFiles. Pass labelId and sportType for one activity, or pass startDate/endDate in yyyyMMdd format and optional sportType to query matching activities. Returned URLs count against the same daily FIT file limit.
queryActivityFitFileDownloadUrls
ChatGPTReturn one or more original COROS activity FIT file download URLs as text. Use this fallback when the MCP client cannot receive binary resources from downloadActivityFitFiles. Pass labelId and sportType for one activity, or pass startDate/endDate in yyyyMMdd format and optional sportType to query matching activities. Returned URLs count against the same daily FIT file limit.
queryActivityLapData
ChatGPTQuery COROS lap or segment data for a specific activity. Returns only the fields shown by the COROS app for the given sport type. Use labelId and sportType from the activity list.
queryActivityLapData
ChatGPTQuery COROS lap or segment data for a specific activity. Returns only the fields shown by the COROS app for the given sport type. Use labelId and sportType from the activity list.
queryAvgHeartRate
ChatGPTQuery the user's daily average heart rate data from COROS. Returns the average heart rate for each day in the specified range. Use this when the user asks about their heart rate trend or recent heart rate data. Explicit yyyyMMdd startDate/endDate take priority over recent-days queries.
queryAvgHeartRate
ChatGPTQuery the user's daily average heart rate data from COROS. Returns the average heart rate for each day in the specified range. Use this when the user asks about their heart rate trend or recent heart rate data. Explicit yyyyMMdd startDate/endDate take priority over recent-days queries.
queryCustomActivityLapData
ChatGPTQuery COROS custom lap or segment data for an exact selected time window in one activity. Use this for requests like last N minutes, final segment, or a user-specified time range, not default lap data. First identify the activity with querySportRecords so you have labelId, sportType, startTimestamp, and endTimestamp. For last N minutes, pass startTimestamp=endTimestamp - N * 60 and endTimestamp=the activity endTimestamp. Both timestamps are Unix seconds and should stay within the activity time window.
queryCustomActivityLapData
ChatGPTQuery COROS custom lap or segment data for an exact selected time window in one activity. Use this for requests like last N minutes, final segment, or a user-specified time range, not default lap data. First identify the activity with querySportRecords so you have labelId, sportType, startTimestamp, and endTimestamp. For last N minutes, pass startTimestamp=endTimestamp - N * 60 and endTimestamp=the activity endTimestamp. Both timestamps are Unix seconds and should stay within the activity time window.
queryDailyHealthData
ChatGPTQuery the user's daily health data from COROS. Returns a broad daily summary including steps, calories, stress, sleep quality and duration, with a heart-rate summary only as part of the full daily overview. Do not use this tool when the user asks only about heart rate, average heart rate, resting heart rate, or recent heart rate data; use queryAvgHeartRate or queryRestingHeartRate instead. You can optionally provide a timezone such as Asia/Shanghai; if omitted, the user's COROS timezone is used and falls back to UTC only when unavailable. Use this when the user asks about overall daily health data, sleep, steps, stress level, or daily wellness metrics.
queryDailyHealthData
ChatGPTQuery the user's daily health data from COROS. Returns a broad daily summary including steps, calories, stress, sleep quality and duration, with a heart-rate summary only as part of the full daily overview. Do not use this tool when the user asks only about heart rate, average heart rate, resting heart rate, or recent heart rate data; use queryAvgHeartRate or queryRestingHeartRate instead. You can optionally provide a timezone such as Asia/Shanghai; if omitted, the user's COROS timezone is used and falls back to UTC only when unavailable. Use this when the user asks about overall daily health data, sleep, steps, stress level, or daily wellness metrics.
queryDevices
ChatGPTQuery the user's bound COROS devices. Returns a list of devices including device ID, firmware type, and custom name. Use this when the user asks about their devices, watches, or equipment.
queryDevices
ChatGPTQuery the user's bound COROS devices. Returns a list of devices including device ID, firmware type, and custom name. Use this when the user asks about their devices, watches, or equipment.
queryFitnessAssessmentOverview
ChatGPTQuery the user's COROS fitness assessment overview. Returns VO2max, running level, threshold pace, and race predictions. Use this when the user asks about current fitness assessment, running ability, VO2max, threshold pace, or predicted 5k/10k/half-marathon/marathon results.
queryFitnessAssessmentOverview
ChatGPTQuery the user's COROS fitness assessment overview. Returns VO2max, running level, threshold pace, and race predictions. Use this when the user asks about current fitness assessment, running ability, VO2max, threshold pace, or predicted 5k/10k/half-marathon/marathon results.
queryHealthCheckTimeSeries
ChatGPTQuery the user's COROS wellness check time series. Returns raw heart rate, HRV, stress, respiration rate, and SpO2 data from the latest complete wellness check in a specified yyyyMMdd date range, or from the recent-days window when no date range is given. Explicit dates query daily/queryPb dailyRhmList; recent queries also use dailyRhm history. The recent query window is capped at 7 days.
queryHealthCheckTimeSeries
ChatGPTQuery the user's COROS wellness check time series. Returns raw heart rate, HRV, stress, respiration rate, and SpO2 data from the latest complete wellness check in a specified yyyyMMdd date range, or from the recent-days window when no date range is given. Explicit dates query daily/queryPb dailyRhmList; recent queries also use dailyRhm history. The recent query window is capped at 7 days.
queryMenstruationCycles
ChatGPTQuery the user's COROS menstrual cycle data. Returns today's menstrual status, the next period start date, daily phase status, cycle date ranges, and user notes. If startDay or endDay is not provided, it queries from 30 days before today to 365 days after today. Use this when the user asks about menstrual cycle status, period dates, next period, or related notes.
queryMenstruationCycles
ChatGPTQuery the user's COROS menstrual cycle data. Returns today's menstrual status, the next period start date, daily phase status, cycle date ranges, and user notes. If startDay or endDay is not provided, it queries from 30 days before today to 365 days after today. Use this when the user asks about menstrual cycle status, period dates, next period, or related notes.
queryRecoveryStatus
ChatGPTQuery the user's COROS recovery status. Returns current recovery percentage, recovery level, and estimated full recovery time. Use this when the user asks how recovered they are or how much energy they have left.
queryRecoveryStatus
ChatGPTQuery the user's COROS recovery status. Returns current recovery percentage, recovery level, and estimated full recovery time. Use this when the user asks how recovered they are or how much energy they have left.
queryRestingHeartRate
ChatGPTQuery the user's daily resting heart rate from COROS. Returns the resting heart rate for each day in the specified range. Use this when the user asks about their resting heart rate trend.
queryRestingHeartRate
ChatGPTQuery the user's daily resting heart rate from COROS. Returns the resting heart rate for each day in the specified range. Use this when the user asks about their resting heart rate trend.
querySleepData
ChatGPTQuery the user's COROS sleep data from the legacy daily data API. Returns sleep score, main sleep duration, deep/light/REM ratio, awake time, awake count, main sleep window, and nap windows. Use this when the user asks how they slept recently, how they slept last night, or whether they napped.
querySleepData
ChatGPTQuery the user's COROS sleep data from the legacy daily data API. Returns sleep score, main sleep duration, deep/light/REM ratio, awake time, awake count, main sleep window, and nap windows. Use this when the user asks how they slept recently, how they slept last night, or whether they napped.
querySleepHrv
ChatGPTQuery the user's COROS sleep HRV. Returns the official daily sleep HRV assessment (average HRV, normal range, baseline, and evaluation) together with raw sleep HRV time-series points. Use this single tool when the user asks about sleep HRV, HRV during sleep, HRV on a specific date, recovery status, or why a sleep HRV day is low. Do not calculate the daily HRV average or normal range from raw time-series points; use the official assessment section returned by this tool. Explicit yyyyMMdd dates take priority over recent-days queries.
querySleepHrv
ChatGPTQuery the user's COROS sleep HRV. Returns the official daily sleep HRV assessment (average HRV, normal range, baseline, and evaluation) together with raw sleep HRV time-series points. Use this single tool when the user asks about sleep HRV, HRV during sleep, HRV on a specific date, recovery status, or why a sleep HRV day is low. Do not calculate the daily HRV average or normal range from raw time-series points; use the official assessment section returned by this tool. Explicit yyyyMMdd dates take priority over recent-days queries.
querySportRecords
ChatGPTQuery the user's COROS workout records with optional filters such as date range, COROS sport type codes, distance, duration, average pace, and location. Pass numeric sportTypeCodes, not sport names. For broad categories pass all listed codes. COROS sport type codes from dubbo: run=[100 outdoor run,101 indoor run,102 trail run,103 track run,104 hike,105 mountain climb,106 multi-pitch sub climb], bike=[200 outdoor bike,201 indoor bike,202 e-bike,203 gravel bike,204 mountain bike,205 mountain e-bike,299 helmet bike], swim=[300 pool swim,301 open water swim], cardio-strength=[400 gym cardio,401 GPS cardio,402 strength], ski=[500 ski,501 snowboard,502 XC ski,503 alpine touring], sky=[600 fighter], water-row-fishing=[700 rowing,701 indoor row,702 whitewater,704 flatwater,705 windsurfing,706 speedsurfing,707 boat fishing lure,708 shore fishing lure,709 pond fishing lure,710 kayak fishing lure,711 inshore fishing,712 offshore fishing,713 boat fly fishing,714 shore fly fishing,715 surf fishing], climb=[800 indoor single pitch,801 bouldering,802 outdoor climb], walk-fitness=[900 walk,901 jump rope,902 stair climbing,903 elliptical,904 yoga,905 pilates,906 boxing], ball=[1000 badminton,1001 ping pong,1002 basketball,1003 soccer,1004 pickleball,1005 tennis,1006 padel], leisure=[1100 frisbee,1101 skateboard], hybrid fitness=1200, outdoor custom=[9800 custom outdoor ball,9801 custom outdoor leisure,9802 custom outdoor mountain,9803 custom outdoor high altitude,9804 custom outdoor motor vehicle,9805 custom outdoor aquatics,9806 custom outdoor adventure,9807 custom outdoor other], indoor custom=[9900 custom indoor ball,9901 custom indoor strength,9902 custom indoor shape,9903 custom indoor dance,9904 custom indoor other], custom common=9999, multisport=[10000 triathlon,10001 free combine,10002 climb ski,10003 multi-pitch climb], track route=25301, all=65535 or omit sportTypeCodes. Returns date, sport type, location, workout time, distance or sets, average pace or speed, labelId, sportType, and activity startTimestamp/endTimestamp when available. Use the returned timestamps before calling queryCustomActivityLapData for exact windows such as the last 5 minutes. If no date range is given, defaults to the last 7 days.
querySportRecords
ChatGPTQuery the user's COROS workout records with optional filters such as date range, COROS sport type codes, distance, duration, average pace, and location. Pass numeric sportTypeCodes, not sport names. For broad categories pass all listed codes. COROS sport type codes from dubbo: run=[100 outdoor run,101 indoor run,102 trail run,103 track run,104 hike,105 mountain climb,106 multi-pitch sub climb], bike=[200 outdoor bike,201 indoor bike,202 e-bike,203 gravel bike,204 mountain bike,205 mountain e-bike,299 helmet bike], swim=[300 pool swim,301 open water swim], cardio-strength=[400 gym cardio,401 GPS cardio,402 strength], ski=[500 ski,501 snowboard,502 XC ski,503 alpine touring], sky=[600 fighter], water-row-fishing=[700 rowing,701 indoor row,702 whitewater,704 flatwater,705 windsurfing,706 speedsurfing,707 boat fishing lure,708 shore fishing lure,709 pond fishing lure,710 kayak fishing lure,711 inshore fishing,712 offshore fishing,713 boat fly fishing,714 shore fly fishing,715 surf fishing], climb=[800 indoor single pitch,801 bouldering,802 outdoor climb], walk-fitness=[900 walk,901 jump rope,902 stair climbing,903 elliptical,904 yoga,905 pilates,906 boxing], ball=[1000 badminton,1001 ping pong,1002 basketball,1003 soccer,1004 pickleball,1005 tennis,1006 padel], leisure=[1100 frisbee,1101 skateboard], hybrid fitness=1200, outdoor custom=[9800 custom outdoor ball,9801 custom outdoor leisure,9802 custom outdoor mountain,9803 custom outdoor high altitude,9804 custom outdoor motor vehicle,9805 custom outdoor aquatics,9806 custom outdoor adventure,9807 custom outdoor other], indoor custom=[9900 custom indoor ball,9901 custom indoor strength,9902 custom indoor shape,9903 custom indoor dance,9904 custom indoor other], custom common=9999, multisport=[10000 triathlon,10001 free combine,10002 climb ski,10003 multi-pitch climb], track route=25301, all=65535 or omit sportTypeCodes. Returns date, sport type, location, workout time, distance or sets, average pace or speed, labelId, sportType, and activity startTimestamp/endTimestamp when available. Use the returned timestamps before calling queryCustomActivityLapData for exact windows such as the last 5 minutes. If no date range is given, defaults to the last 7 days.
queryStressLevel
ChatGPTQuery the user's daily average stress level from COROS. Returns the average stress value for each day in the specified range. Use this when the user asks about their stress level or pressure trend.
queryStressLevel
ChatGPTQuery the user's daily average stress level from COROS. Returns the average stress value for each day in the specified range. Use this when the user asks about their stress level or pressure trend.
queryStressTimeSeries
ChatGPTQuery the user's raw stress time series from COROS daily data. Returns stress points with timestamp, timezone, stress value, display score, stress HRV, and stress heart-rate value from a specified yyyyMMdd date range, or from the recent-days window when no date range is given. Use this when the user asks how stress changed today or on a specific date. The query window is capped at 7 days.
queryStressTimeSeries
ChatGPTQuery the user's raw stress time series from COROS daily data. Returns stress points with timestamp, timezone, stress value, display score, stress HRV, and stress heart-rate value from a specified yyyyMMdd date range, or from the recent-days window when no date range is given. Use this when the user asks how stress changed today or on a specific date. The query window is capped at 7 days.
queryTrainingLoadAssessment
ChatGPTQuery the user's COROS training load assessment. Returns recent daily comments, short-term load, long-term load, and load ratio. Use this when the user asks whether recent training load is appropriate, too much, or too little.
queryTrainingLoadAssessment
ChatGPTQuery the user's COROS training load assessment. Returns recent daily comments, short-term load, long-term load, and load ratio. Use this when the user asks whether recent training load is appropriate, too much, or too little.
queryTrainingSchedule
ChatGPTQuery the user's COROS training schedule. Returns the current week's training plan by default, or a specified date range. Use this when the user asks what they should train this week, tomorrow, or on a specific date range. The result includes internal Plan ID and idInPlan; use Plan ID with queryTrainingPlanDetail before updateTrainingPlan. Do not show Plan ID or idInPlan to the user.
queryTrainingSchedule
ChatGPTQuery the user's COROS training schedule. Returns the current week's training plan by default, or a specified date range. Use this when the user asks what they should train this week, tomorrow, or on a specific date range. The result includes internal Plan ID and idInPlan; use Plan ID with queryTrainingPlanDetail before updateTrainingPlan. Do not show Plan ID or idInPlan to the user.
queryUserInfo
ChatGPTQuery the user's basic profile information from COROS. Returns height, weight, birthday, and gender. Use this when the user asks about their personal body metrics, profile info, height, weight, age, or gender.
queryUserInfo
ChatGPTQuery the user's basic profile information from COROS. Returns height, weight, birthday, and gender. Use this when the user asks about their personal body metrics, profile info, height, weight, age, or gender.