TrainingPeaks 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": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tp_auth_statusA | Check auth status. Use only when other tools return auth errors. |
| tp_get_profileA | Get athlete profile. Rarely needed - other tools work without it. |
| tp_refresh_authA | Refresh auth by extracting cookie from user's browser. Use when other tools return auth errors. |
| tp_get_workoutsA | List workouts in date range. Query only days needed. Max 90 days. |
| tp_get_workoutA | Get workout details by ID. Use after tp_get_workouts. |
| tp_create_workoutA | Create a planned workout with optional simplified interval structure or native TrainingPeaks structured_workout payload. Duration is auto-computed only from simplified structure when not provided. |
| tp_update_workoutA | Update fields of an existing workout. Supports the same simplified interval structure format as tp_create_workout plus an optional native structured_workout payload, then fetches existing, merges, and saves. |
| tp_delete_workoutC | Delete a workout. |
| tp_copy_workoutB | Copy a workout to a new date. Copies structure, description, planned fields. |
| tp_reorder_workoutsB | Reorder workouts on a given day. |
| tp_unpair_workoutA | Unpair a workout. Detaches the completed workout file from the planned workout, creating two separate workouts. No data is lost. |
| tp_pair_workoutA | Pair a completed workout with a planned workout. Attaches the completed data to the planned workout, merging them into one. |
| tp_get_workout_commentsC | Get comments on a workout. |
| tp_add_workout_commentC | Add a comment to a workout. |
| tp_get_workout_noteC | Get the private workout note for a workout. |
| tp_set_workout_noteA | Set or update the private workout note for a workout. |
| tp_upload_workout_fileB | Upload a workout file (.fit, .tcx, .gpx) to an existing workout. |
| tp_download_workout_fileA | Download a workout file by file_id. Get file_id from tp_get_workout device_files/attachment_files. |
| tp_delete_workout_fileB | Delete a workout file by file_id. Get file_id from tp_get_workout device_files/attachment_files. |
| tp_validate_structureA | Validate workout interval structure without creating a workout. Returns block count, duration, estimated IF/TSS. |
| tp_get_workout_prsC | Get PRs set during a specific workout. |
| tp_get_peaksA | Get top performances by type. For comparing PRs over time. |
| tp_analyze_workoutB | Get workout analysis: metrics, zones, laps. Saves full time-series to JSON file. |
| tp_get_fitnessA | Get fitness/fatigue trend (CTL/ATL/TSB). Supports historical date ranges. |
| tp_get_weekly_summaryA | Combined view of workouts + fitness for a week. Totals TSS, duration, end-of-week CTL/ATL/TSB. |
| tp_get_atpA | Get Annual Training Plan - weekly TSS targets, training periods, races. Max 90 days. |
| tp_get_athlete_settingsA | Get athlete settings: FTP, thresholds, zones, profile. |
| tp_update_ftpA | Update FTP and recalculate the default power zones. |
| tp_update_hr_zonesC | Update heart rate zones. |
| tp_update_speed_zonesC | Update run/swim pace zones. |
| tp_update_nutritionC | Update daily planned calories. |
| tp_get_pool_length_settingsC | Get pool length settings. |
| tp_log_metricsB | Log health metrics (weight, HRV, sleep, steps, etc.) for a date. |
| tp_get_metricsC | Get health metrics for a date range. |
| tp_get_nutritionB | Get nutrition data for a date range. |
| tp_get_equipmentB | List equipment (bikes, shoes). |
| tp_create_equipmentB | Add new equipment (bike or shoe). |
| tp_update_equipmentC | Update equipment details. |
| tp_delete_equipmentC | Delete equipment. |
| tp_get_focus_eventB | Get the A-priority focus event with goals and results. |
| tp_get_next_eventC | Get the nearest future planned event. |
| tp_get_eventsA | List events in a date range. |
| tp_create_eventB | Create a race/event with priority (A/B/C) and CTL target. |
| tp_update_eventC | Update an event. |
| tp_delete_eventC | Delete an event. |
| tp_create_noteC | Create a calendar note. |
| tp_delete_noteB | Delete a calendar note. |
| tp_get_noteA | Get a calendar note by ID. |
| tp_update_noteC | Update a calendar note. Provide at least one of: title, description, date, is_hidden. |
| tp_get_note_commentsA | Get all comments on a calendar note. |
| tp_add_note_commentA | Add a comment to a calendar note. |
| tp_list_notesB | List calendar notes for a date range. |
| tp_get_availabilityB | Get availability entries for a date range. |
| tp_create_availabilityC | Mark dates as unavailable or limited. |
| tp_delete_availabilityC | Remove an availability entry. |
| tp_get_workout_typesA | List all sport types and subtypes with IDs. Use to find subtype_id for create/update. |
| tp_get_librariesA | List workout library folders. |
| tp_get_library_itemsB | List templates in a workout library. |
| tp_get_library_itemC | Get full template details including structure. |
| tp_create_libraryC | Create a workout library folder. |
| tp_delete_libraryB | Delete a library folder and all templates. |
| tp_create_library_itemC | Save a workout template to a library. |
| tp_update_library_itemC | Edit a workout template. |
| tp_schedule_library_workoutC | Schedule a library template to a calendar date. |
| tp_list_athletesA | List athletes available to this account (coach accounts). |
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 65 tools
Most tools target a distinct resource and action, but there is some overlap between event-related tools like tp_get_focus_event, tp_get_next_event, and tp_get_events, and between tp_get_fitness and tp_get_weekly_summary. Descriptions help clarify, so the ambiguity is limited.
All tools follow a consistent pattern: 'tp_' prefix followed by a verb_noun in snake_case (e.g., get_workouts, create_workout, delete_equipment). There are no mixed conventions or unpredictable naming styles.
With 65 tools, the server is heavily over-scoped for typical MCP usage, even for a large platform like TrainingPeaks. Many tools could be consolidated (e.g., event fetching, PR comparisons), making the set unwieldy for agents.
The tool surface covers most CRUD operations for workouts, events, notes, equipment, libraries, and availability. Minor gaps exist, such as no delete operation for library items and no update operation for availability, but these are workarounds.