activity
ChatGPTReturns detailed metrics and time series for a single executed activity. Examples metrics: " positionLat, positionLong, speed, distance, altitude, cadence, power, weather, runningEffectiveness, effort, intensityDistribution, zonesDistribution, powerAerobicFactor, speedIndex, formPowerFactor ".
activity-list
ChatGPTList of already executed activities with activity summaries. If the 'pageSize' limit is reached in the result, there will be a 'nextCursor' in the pagination object. Call the next page with the nextCursor as startDate. Each 'activitList' entry contains at least the activity 'id', 'date' and 'sportType'. If you need extended summaries on all entries in this list call this tool "activity-list" with the "extendedSummary" parameter set to "1". The extended summary contains trainingType, pace, speed, heartrate, temperature, power, cadence, calories, distance, altitude, durations. Be careful as this can lead to significantly larger datasets, if there are lot of results, f.ex. when querying over multiple years. If you need an extended summary with title, notes and metrics only for a single activity, or if you need time series, like the heart rate series, call the "activity" tool with the appropriate 'id' retrieved from this list. If the tool only returs instructions, without any training session and without erroring, then there are simply no training sessions for this date range.
activity-update
ChatGPTUpdate fields like 'title' or the 'notes' on an single activity or planned/scheduled workout. Always ask the user, the human-in-the-loop, for confirmation, if you would like to call this tool. Do not batch call this tool. Ask for confirmation on each activity. Never apply title or notes updates on your own. The 'title' is the activity title with a maximum length of 255 characters. If you want to remove the title of an activity pass an empty string "", then Tredict will apply it's default. Do not set this param at all, if you do not want to change the title. The 'notes' field is a longer description or notes of the activity with maximum length od 2048 chars. It can keep interesting details of an workout or activity. If reseting a field with an empty string should not be enough, you can search for an object named 'mcpUpdatedFields' in an activity either with the 'activity' tool for executed activities or in the list of planned activities with the 'planned-workout-list' tool. The 'mcpUpdatedFields' object contains older titles and notes with a datestring, when they were backuped.
activity-upload-ui
ChatGPTShows an interactive upload UI in which the user picks or drops activity files (FIT, TCX or Polar JSON) from their device and uploads them to Tredict, like on the Tredict upload page. Use it whenever the user wants to upload or import activity files. Files attached to the chat cannot be passed to Tredict, the user drops them into this UI instead. The UI takes at most 20 files. For more files, like a whole training history, the user uploads them on the Tredict upload page, linked in the result of this tool. It needs an MCP host that can display MCP Apps UI.
add-plan-training
ChatGPTAdd a single planned training (structured workout) to a plan you created with the 'plan-creation' tool before. Use this tool to add the planned trainings by single tool call for each training to the training plan that should be build for the user.
bodyvalues
ChatGPTList of body values and health data represented by revisions over time. Each list entry represents a so called revision defined by the "timestamp", which only includes changed/updated values/metrics in relation to the last presence of the related metric in an older revision. The last occurence of a specfic metric as the neighbour to an f.ex. an activity related to the older timestamp of a revision is the valid one. Possible metrics are: "restingHeartrate" "hrRestDynamic" "hrMaxDynamic" "bodyHeightInCentimeter" "weightInKilograms" "bodyFatInPercent" "bodyWaterInPercent" "muscleMassInPercent" Annotations: restingHeartrate: The resting heart rate, also known as the static resting heart rate, is the heart rate one can repeatedly achieve when one is completely relaxed. The static resting heart rate is used to calculate exertion levels using heart rate, VO2 max and other capacity indicators. hrRestDynamic: Your dynamic resting heart rate is the lowest heart rate one have reached during the day and is usually measured by a fitness watch. One's dynamic resting heart rate is affected by factors such as stress or illness and may therefore not reflect one's true capacity.
calendar-change-ui
ChatGPTAsks the user in an interactive confirmation UI for changes to their real training calendar: adding planned trainings by calendarDate and title, and deleting planned workouts from the last 7 days or in the future. This tool changes nothing in the calendar. The user confirms or rejects all changes of one call together in the UI, so only put changes into one call that belong together. It needs an MCP host that can display MCP Apps UI. For a training to add, give only its calendarDate and title here, not the structured workout. You build the structured workout yourself in the last step. After this tool, end your turn and wait for the user's message. For each confirmed change it contains an allowedToken: add the training with 'add-plan-training', the same calendarDate and title and the allowedToken, delete with 'delete-calendar-training'. To replace a planned workout, request its deletion and the new training in the same call. To only move a planned workout to another day, use 'planned-workout-change-date' instead. To only change its title or notes, use 'activity-update'. Use it only for single trainings, at most 3 changes at once, like adding tomorrow's workout or replacing a wrong one. Do not split larger changes into several calls of this tool. Anything that plans a period, like a week, a training block or several weeks, belongs in a reusable training plan built with 'plan-creation', even if it has only a few trainings and the user asks for the calendar. The user applies it to the calendar in Tredict and can revert it there.
capacity
ChatGPTList of capacity values represented by revisions over time for each sportType. Each list entry represents a so called revision defined by the "timestamp", which only includes changed/updated values/metrics in relation to the last presence of the related metric in an older revision. The last occurence of a specfic metric as the neighbour to an f.ex. an activity related to the older timestamp of a revision is the valid one. Possible metrics are: "hrMax" "hrLth" "ftp" "ftpa" Annotations: hrMax: Maximum heart rate hrLth: Lactate threshold heart rate ftp: Functional Threshold Power ftpa: Functional Threshold Pace
delete-calendar-training
ChatGPTDeletes a planned workout from the user's real training calendar, after the user confirmed the deletion in the 'calendar-change-ui' tool. Pass the workoutId and the allowedToken from the user's confirmation message. Each allowedToken works once and expires 10 minutes after the confirmation. Only planned workouts from the last 7 days or in the future can be deleted, not those connected to an executed activity. If the deletion is not possible, the error contains a link to the Tredict calendar year view, where the user can delete it with the deletion mode. Give the user this link. Without such a token, ask the user first with the 'calendar-change-ui' tool and the workoutId in 'deleteWorkoutIds'. Never make up an allowedToken. To only move a planned workout to another day, use 'planned-workout-change-date' instead.
equipment-list
ChatGPTList of all user equipment including bikes, shoes, swimming gear and miscellaneous items. Each equipment entry contains: - "id": Unique equipment identifier - "type": One of "bikes", "shoes", "swimming", "misc" - "name": Name of the equipment - "usageRange": Object with "start" and "end" dates defining the active usage period. "end" is null if still in use. - "count": Number of activities using this equipment - "duration": Total duration in seconds across all assigned activities - "distance": Total distance in meters across all assigned activities Depending on the type, additional fields may be present: - Shoes: "size", "weight" (grams), "drop" (mm) - Bikes: "weight" (grams) - Swimming/Misc: "itemtype", "size", "weight" (grams) - All types: "notes", "previousDistance" (distance before tracking in meters)
exercise-list
ChatGPTLists the valid "exerciseName" values for strength training steps in the 'plan-creation' and 'add-plan-training' tools (sportType "misc" with subSportType "strength_training"). Filter by "exerciseCategories", by "search" words or both. Prefer a single call with all categories the workout needs. The names are the English identifiers of the FIT exercise catalog the sports watches know. Use them exactly as listed and translate them for the user yourself.
hrv-list
ChatGPTList of Heart Rate Variability data of the user. Each date tag is in the format of "YYYYMMDD" It should traversed in date back to the past and to older entries. A date tag contains a tuple, where the first entry is the calculated HRV value, specifiaclly the "RMSSD during the night", the second entry is the basline over a course of 2 weeks. If the first tuple entry, the RMSSD, diverts significantly from the basline it is too high or too low.
plan-creation
ChatGPTCall this to create a reusable training plan in the ‘My Own Training Plans’ category of Tredict (this is not the actual training calendar). Later on, the plan can be applied by the Tredict user to a custom start or end date in the user's training calendar, either by the user themselves or even in the calendars of athletes associated with the user. If the user has connected an appropriate sports watch manufacturer in Tredict, the plan, when applied, including the structured workouts and planned trainings, will be automatically transferred to the sports watch. Prefer to add the activities to the new plan step by step with the 'add-plan-training' tool. After plan creation, another tool called ‘show-plan-ui’ can be called with the planId to open the MCP app user interface for that plan, which gives a great user experience.
planned-workout
ChatGPTReturns the details and structure of a planned structured workout in JSON.
planned-workout-change-date
ChatGPTChange the date of an existing planned (structured) workout to a new date in the future. Always ask the user, the human-in-the-loop, for confirmation, before you call this tool. Do not batch call this tool. Ask for confirmation for each planned workout. The 'workoutId' references the planned workout to reschedule. You can obtain it from the 'planned-workout-list' tool. The 'date' must be a full ISO-8601 datetime string (e.g. "2026-05-11T06:30:00.000Z") and must lie in the future. Only the date/time of the planned workout is changed — all other fields (title, notes, structure, etc.) stay intact. If you want to update the 'title' or 'notes' of the planned workout instead of (or in addition to) rescheduling it, use the 'activity-update' tool.
planned-workout-list
ChatGPTList of planned and scheduled trainings or structured workouts. Each 'plannedWorkoutList' entry contains these fields: Fieldname, optional, description id = The unique id of the training session. Alias: workoutId date = Scheduled date of the training session. updatedAt = Last time the user updated the training session. You can compare on this date for updates. timezone = Timezone in hours. '2' means GTM+2. sportType = The sportType can be 'running', 'cycling', 'swimming', 'misc'. title = (Optional) If the user manually defined a title this is given here. notes = (Optional) If the user manually defined a description or notes this is given here. distance = (Optional) The summed up distance in meters of the planned workout segments. duration = (Optional) The summed up duration in seconds of the planned workout segments. Do not calculate a pace from distance and duration. There could be segments with neither both. executedTrainingId = (Optional) Set with the 'activityId' of an executed activity (training), if this planned workout session has a executed activity attached. You can call the "activity"-tool to get detailed information on the executed activity for comparision with this planned workout.
show-activity-ui
ChatGPTShows standard metrics, timeseries, laps and a map of an executed activity by activityId.
show-form-ui
ChatGPTShows the user's form today in an interactive UI, like the form and intensity distribution cards of the Tredict training calendar. The form curve shows fitness, fatigue and performance based on the Banister model, the daily training efforts and the nightly HRV of all sport types around a week or month, the current one by default or any past or future one with 'date'. The intensity distribution shows the time spent in low, moderate and high intensity per zone type in this week or month. The values for today and the intensity distribution are also returned as text, together with an explanation of the values.
show-plan-ui
ChatGPTShows a reusable training plan created in the users 'My Plans' category by planId.
sleep-list
ChatGPTList of sleep data of the user. Each date tag is in the format of "YYYYMMDD" It should traversed in date back to the past and to older entries. A date tag contains a tuple, where the first entry is the calculated total sleep value for the night and day, most significantly the night, the second entry is the basline over a course of 2 weeks. If the first tuple entry, the sleep for the whole night/day, diverts significantly from the basline it is too high or too low.
training-effort-list
ChatGPTList of training efforts for a date range of all sportTypes. The list can contain structured and planned workouts in the future along executed activties in the past. Each date tag is in the format of "YYYYMMDD" It should traversed in date back to the past and to older activities/efforts. A date tag contains an array for each training/workout. This training efforts array again contains a tuple, where the first entry is the calculated effort, the second entry has optional metadata, like 'isRace'. The effort calculation is designed redundantly in Tredict. Tredict essentially calculates the effort from 3 different data sources. The time series recorded by the users device will be used in the order the user has specified - the Zone Priority Chain set by the user: F.ex.: Power, Heart rate, Speed Active Duration - The longer the activity, the higher the effort. One of the 3 performance values - heart rate, wattage or speed. Zone Intensity - A higher intensity range increases effort over the same time. Capacity - Maximum heart rate, FTP, FTPa To summarise: The longer the activity, the greater the effort required. The more intensive the activity, the greater again the effort required. A long and intensive activity, e.g. a half marathon competition, therefore requires a great deal of effort.
zones
ChatGPTList of zones represented by revisions over time for each sportType and then the "zoneType". "zoneType" can be of "heartrate", "pace", "power" or "cadence". A single zone row has an "intensity" field attached, values are mapped like this: 0 = low intensity, 1 = medium intensity, 2 = high intensity Also a single zone row has "from" and "to" fields to define the zone range. Each list entry represents a so called revision defined by the "timestamp", which only includes changed/updated values/metrics in relation to the last presence of the related metric in an older revision. The last occurence of a specfic metric as the neighbour to an f.ex. an activity related to the older timestamp of a revision is the valid one.
zones-distribution
ChatGPTList of aggregated zones distributions calculated by the time series data points activities have. The distribution are sorted by sportType and the monthly YYYYMM date tag. Each date tag has training intensity zone distributions based on metrics like pace, power, cadence or heart rate recorded during workouts. Therein are objects with the zone revision date as key. This revison date in combination with sportType and zoneType can be used to fetch the zone definitions with help of the 'zones' tool. If there is no revision date, but instead "template", this means the user never defined it's zones revisions, yet, and it's base on the Tredict own zones template. Feel free to ignore then. A specific distribution contains an array which has to be mapped to the defined zones revision. Each zone row contains another array with 3 entries representing the time spent in the intensityType of 0=low,1=medium,2=high. Hint: Reducing the zone rows results in the "Intensity Distribution" instead. Key abbrevations in the zones object are: c = Cadence p = Power pa = Pace h = Heart rate