TrainingPeaks MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TP_AUTH_COOKIE | Yes | Your TrainingPeaks auth cookie obtained from browser developer tools. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tp_auth_statusA | Check TrainingPeaks authentication status. Returns whether you have a valid auth cookie and bearer token. If not authenticated, provides instructions for setting up credentials. |
| tp_refresh_authA | Force refresh the TrainingPeaks bearer token. Use this if you're getting authentication errors. Clears the cached token and obtains a fresh one from the auth cookie. |
| tp_get_profileA | Get your TrainingPeaks athlete profile. Returns your name, athlete ID, email, and other profile information. The athlete ID is needed for other TrainingPeaks queries. |
| tp_get_workoutsA | Get a list of workouts from TrainingPeaks. Args: start_date: Start date (YYYY-MM-DD). Defaults to 30 days ago. end_date: End date (YYYY-MM-DD). Defaults to today. workout_type: Filter by type (e.g. "Bike", "Run", "Swim", "Strength"). limit: Maximum number of workouts to return (default 20). Returns workouts with date, type, duration, distance, TSS, HR, and power data. The TP API limits requests to 90 days at a time. |
| tp_get_planned_workoutsA | Get upcoming planned workouts from TrainingPeaks. Args: start_date: Start date (YYYY-MM-DD). Defaults to today. end_date: End date (YYYY-MM-DD). Defaults to 14 days from now. workout_type: Filter by type (e.g. "Bike", "Run", "Swim", "Strength"). limit: Maximum number of workouts to return (default 20). Returns planned workouts with date, type, planned duration/distance/TSS, workout instructions, and coach comments. Sorted chronologically (nearest first). The TP API limits requests to 90 days at a time. |
| tp_get_workoutA | Get detailed information about a specific workout. Args: workout_id: The TrainingPeaks workout ID. Returns full workout details including power, HR, speed, elevation, description, and coach comments. |
| tp_get_fitnessA | Get CTL (fitness), ATL (fatigue), and TSB (form) performance data. Args: days: Number of days to look back (default 90). Ignored if start_date is set. start_date: Start date (YYYY-MM-DD). Overrides days parameter. end_date: End date (YYYY-MM-DD). Defaults to today. Returns daily training load data with computed CTL/ATL/TSB values and current fitness status. To get accurate CTL/ATL values, the API fetches extra history for the exponential decay calculation. |
| tp_get_workout_prsB | Get personal records from a specific workout. Args: workout_id: The TrainingPeaks workout ID. Returns all PRs achieved in this workout, grouped by class (Power, HR, etc.) and time frame (All-Time, Last 90 Days, etc.). |
| tp_get_peaksA | Get personal records by scanning recent workouts for a given sport. Args: sport: Sport type — "Bike", "Run", "Swim", or "Hike" (default "Bike"). days: Number of days to scan (default 90, max 365). pr_class: Filter by PR class — "Power", "HeartRate", or None for all. Scans workouts that have PRs and aggregates the best values per type. Shows the top record for each duration/distance across the time range. |
| tp_training_load_summaryB | Analyze training load trends over time. Args: days: Number of days to analyze (default 90). Returns weekly and monthly TSS totals, averages, load ramp rate, and comparison between recent and previous periods. |
| tp_fitness_trendA | Analyze CTL/ATL/TSB trajectory and project future values. Args: days: Number of days to analyze (default 90). Returns trend direction, rate of change, and 7-day projected CTL/ATL/TSB. |
| tp_workout_analysisA | Deep analysis of a specific workout with derived metrics. Args: workout_id: The TrainingPeaks workout ID. Returns efficiency factor (NP/avg HR), variability index (NP/avg power), intensity distribution, and comparison context. |
| tp_performance_summaryA | Aggregated performance summary for a sport over time. Args: sport: Sport type — "Bike", "Run", "Swim" (default "Bike"). days: Number of days to analyze (default 90). Returns volume, intensity distribution, consistency metrics, and PR timeline for the specified sport. |
| tp_training_zones_distributionA | Analyze training time and TSS distribution across intensity zones. Args: start_date: Start date (YYYY-MM-DD). Defaults to {days} days ago. end_date: End date (YYYY-MM-DD). Defaults to today. days: Days to look back if start_date not set (default 30). Breaks down workouts by IF-based training zones showing how training time and stress are distributed. Helps identify polarized vs pyramidal vs threshold-heavy training patterns. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/banananovej-chuan/tp-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server