TrainingPeaks MCP server Let your AI agent plan your TrainingPeaks week.

Your agent reads your TrainingPeaks calendar, plans workouts and checks fitness, fatigue and form. Coaches can also apply a Training Plan to a group. It runs in the ChatGPT and Claude apps, with no API key and no server to host.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with TrainingPeaks
TrainingPeaks logo TrainingPeaks Cloud Browser

14 tools Read and write

Calendar to plan

What can your AI agent do in TrainingPeaks? Athlete or coach, six jobs.

  • Plan next week's workouts

  • Report training load and form

  • Spot athletes who missed their plan

  • Schedule workouts from your library

  • Apply a Training Plan to a group

  • Log daily metrics

Partners only

Does TrainingPeaks have an MCP server or an API? An API for partners, no MCP server.

TrainingPeaks has no official MCP server. Its Partner API goes to approved commercial partners, and its request page says no new partners are accepted for now (checked 6 Nov 2026). Cotlet runs 14 TrainingPeaks tools hosted, over MCP for agents and REST for scripts, with no TrainingPeaks API key.

  • The Partner API is OAuth over HTTPS and covers workouts, metrics, events and coach rosters. Its endpoint list has no Workout Library, no fitness and form chart and no apply-plan call.
  • TrainingPeaks says access "is not available for personal use". Webhooks are in early access for partners.
  • Zapier and n8n list no TrainingPeaks app (404 on both, 6 Nov 2026).
TrainingPeaks Partner API and Cotlet compared
What you need Partner APICotlet
Open to one athlete or coach Approved partners only Yes, sign in once
Read planned and completed workouts For partners Yes
Add or move a planned workout For partners Yes, after your OK
Log metrics For partners Yes, after your OK
Fitness, fatigue and form No endpoint Yes
Copy from the Workout Library No endpoint Yes, after your OK
Apply a Training Plan No endpoint Yes, after your OK

Checked 6 Nov 2026. Sources: TrainingPeaks: An Update on TrainingPeaks Partner API · TrainingPeaks: Request API Access · Partners API wiki: endpoints · Partners API wiki: FAQ

Set up once

How does Cotlet connect to TrainingPeaks? One account, two ways to connect.

  1. 1Sign in to TrainingPeaks

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your TrainingPeaks password, and workouts, plans and comments wait for your OK before an athlete sees them. Who can see your session

Any MCP client

How to connect TrainingPeaks to your AI agent

Three steps. The same address works in Claude, ChatGPT, editors, n8n, Make and Zapier.

  1. 1

    Enable TrainingPeaks. Sign up, log in to TrainingPeaks in its Cloud Browser and turn it on for agents.

  2. 2

    Add the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 3

    Sign in or use a key. Chat apps sign you in to Cotlet; editors and scripts take an API key from the console.

One address covers TrainingPeaks and every other app you enable. Turned TrainingPeaks on after connecting? Refresh the connector so the tools show up.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: trainingpeaks_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: trainingpeaks_write
8 read, 6 write

All 14 TrainingPeaks MCP tools

Calendar and workouts6

Without athlete_id a tool works on your own calendar. A skipped workout has no completed values, and compliance is the colour TrainingPeaks shows.

  • list_calendar_workouts Planned and completed workouts between two dates, with compliance. read

    Returns every workout on the calendar between start_date and end_date, oldest day first. Each workout shows its planned values next to its completed values, so a skipped workout has no completed values. compliance is the colour TrainingPeaks shows: green, yellow, orange, red (not completed) or grey (unplanned). Without athlete_id it reads your own calendar.

    MCP calltrainingpeaks_read → list_calendar_workouts

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/calendar-workouts

    Parameters

    Parameters: list_calendar_workouts
    NameTypeDescription
    start_date date required date First day to read.
    end_date date required date Last day to read.
    athlete_id string string Athlete from list_athletes. Default: your own calendar.

    Example input

    {
      "start_date": "2026-10-01",
      "end_date": "2026-10-01"
    }

    Example response

    {
      "workouts": [
        {
          "workout_id": "wk_88121",
          "date": "2026-11-02",
          "title": "Easy run",
          "sport": "Run",
          "planned": {
            "duration_minutes": 45,
            "tss": 38
          },
          "completed": {
            "duration_minutes": 47,
            "tss": 40
          },
          "compliance": "green"
        },
        {
          "workout_id": "wk_88124",
          "date": "2026-11-04",
          "title": "Threshold intervals",
          "sport": "Bike",
          "planned": {
            "duration_minutes": 75,
            "tss": 85
          },
          "completed": null,
          "compliance": "red"
        }
      ]
    }
  • get_workout One workout with its description, planned and completed values and comments. read

    Returns the workout's description, planned and completed values and the pre and post activity comments. The structured intervals are included for workouts built in the Workout Builder. Use workout_id from list_calendar_workouts.

    MCP calltrainingpeaks_read → get_workout

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/workouts/{workout_id}

    Parameters

    Parameters: get_workout
    NameTypeDescription
    workout_id string required string Workout from list_calendar_workouts.

    Example input

    {
      "workout_id": "workout_8c41d2"
    }

    Example response

    {
      "workout_id": "wk_88121",
      "date": "2026-11-02",
      "title": "Easy run",
      "sport": "Run",
      "description": "Keep it conversational.",
      "planned": {
        "duration_minutes": 45,
        "tss": 38
      },
      "completed": {
        "duration_minutes": 47,
        "tss": 40
      },
      "comments": [
        {
          "author": "Lena Ford",
          "text": "Legs felt heavy at first."
        }
      ]
    }
  • list_events Upcoming events and goals with their date and priority. read

    Returns events and goals from today on, soonest first, with the priority set in TrainingPeaks. The A priority event is the one automatic periodization uses. Without athlete_id it reads your own calendar.

    MCP calltrainingpeaks_read → list_events

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/events

    Parameters

    Parameters: list_events
    NameTypeDescription
    athlete_id string string Athlete from list_athletes. Default: your own calendar.

    Example response

    {
      "events": [
        {
          "name": "City Half Marathon",
          "date": "2027-03-14",
          "priority": "A"
        },
        {
          "name": "Spring 10K",
          "date": "2027-02-07",
          "priority": "B"
        }
      ]
    }
  • add_workout Plan a workout on a calendar day. writeasks first

    Creates a planned workout on the given day with the values you pass. It appears on the calendar like one added with the plus icon. On an athlete's calendar the athlete sees it, which is why the call is confirmed. By default you confirm each call; you can switch that off for this tool.

    MCP calltrainingpeaks_write → add_workout

    REST endpointPOST https://cotlet.dev/api/v1/trainingpeaks/workouts

    Parameters

    Parameters: add_workout
    NameTypeDescription
    date date required date Calendar day.
    title string required string Workout name.
    sport string required string Sport as TrainingPeaks lists it, e.g. Run or Bike.
    description string string Text shown in the workout description.
    planned_duration_minutes integer integer Planned duration in minutes.
    planned_tss number number Planned TSS.
    athlete_id string string Athlete from list_athletes. Default: your own calendar.

    Example input

    {
      "date": "2026-11-11",
      "title": "Threshold intervals",
      "sport": "Bike",
      "description": "Warm up, then intervals at threshold.",
      "planned_duration_minutes": 75,
      "planned_tss": 85
    }

    Example response

    {
      "workout_id": "wk_88131",
      "date": "2026-11-11",
      "title": "Threshold intervals",
      "sport": "Bike",
      "planned": {
        "duration_minutes": 75,
        "tss": 85
      },
      "status": "planned"
    }
  • move_workout Move a workout to another calendar day. writeasks first

    Moves one workout to the new day and keeps its planned and completed values. On an athlete's calendar the athlete sees the change, which is why the call is confirmed. By default you confirm each call; you can switch that off for this tool.

    MCP calltrainingpeaks_write → move_workout

    REST endpointPOST https://cotlet.dev/api/v1/trainingpeaks/workouts/{workout_id}/move

    Parameters

    Parameters: move_workout
    NameTypeDescription
    workout_id string required string Workout from list_calendar_workouts.
    date date required date New calendar day.

    Example input

    {
      "workout_id": "workout_8c41d2",
      "date": "2026-10-01"
    }

    Example response

    {
      "workout_id": "wk_88124",
      "date": "2026-11-05",
      "title": "Threshold intervals",
      "status": "planned"
    }
  • comment_on_workout Add a comment to a workout. writeasks first

    Adds a comment to the workout that the athlete and the coach can both read. Comments cannot be edited by this tool. By default you confirm each call; you can switch that off for this tool.

    MCP calltrainingpeaks_write → comment_on_workout

    REST endpointPOST https://cotlet.dev/api/v1/trainingpeaks/workouts/{workout_id}/replies

    Parameters

    Parameters: comment_on_workout
    NameTypeDescription
    workout_id string required string Workout from list_calendar_workouts.
    text string required string Comment text.

    Example input

    {
      "workout_id": "workout_8c41d2",
      "text": "text"
    }

    Example response

    {
      "workout_id": "wk_88121",
      "comment_id": "cm_5012",
      "text": "Good pacing. Keep Thursday easy.",
      "status": "posted"
    }

Workout Library and Training Plans4

The library copy stays in place when you schedule from it. Training Plans are for coach accounts.

  • list_workout_library Your Workout Library folders and the workouts in them. read

    Returns each library with its workouts, in the order TrainingPeaks shows them. Use library_workout_id in add_workout_from_library. A Basic athlete account holds 5 workouts in its Library; Premium holds more.

    MCP calltrainingpeaks_read → list_workout_library

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/workout-libraries

    Parameters

    Parameters: list_workout_library
    NameTypeDescription
    library string string Only this library name.

    Example response

    {
      "libraries": [
        {
          "library": "Base block",
          "workouts": [
            {
              "library_workout_id": "lib_301",
              "title": "Easy run",
              "sport": "Run"
            },
            {
              "library_workout_id": "lib_302",
              "title": "Long run",
              "sport": "Run"
            }
          ]
        }
      ]
    }
  • add_workout_from_library Put a Workout Library workout on a calendar day. writeasks first

    Copies the library workout to the day, like dragging it from the Library to the calendar. The library keeps its own copy. On an athlete's calendar the athlete sees it, which is why the call is confirmed. By default you confirm each call; you can switch that off for this tool.

    MCP calltrainingpeaks_write → add_workout_from_library

    REST endpointPOST https://cotlet.dev/api/v1/trainingpeaks/library-workouts/{library_workout_id}/workout-from-libraries

    Parameters

    Parameters: add_workout_from_library
    NameTypeDescription
    library_workout_id string required string Workout from list_workout_library.
    date date required date Calendar day.
    athlete_id string string Athlete from list_athletes. Default: your own calendar.

    Example input

    {
      "library_workout_id": "library_workout_8c41d2",
      "date": "2026-10-01"
    }

    Example response

    {
      "workout_id": "wk_88140",
      "date": "2026-11-10",
      "title": "Easy run",
      "sport": "Run",
      "status": "planned"
    }
  • list_training_plans Your Training Plans with their length. Coach accounts only. read

    Returns the Training Plans you created, each a multi-week block of training. Use plan_id in apply_training_plan. An athlete account gets a permission error.

    MCP calltrainingpeaks_read → list_training_plans

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/training-plans

    Parameters

    No parameters.

    Example response

    {
      "plans": [
        {
          "plan_id": "plan_77",
          "name": "10K build",
          "weeks": 8
        },
        {
          "plan_id": "plan_81",
          "name": "Base block",
          "weeks": 4
        }
      ]
    }
  • apply_training_plan Apply a Training Plan to athletes from a start date or an end date. writeasks first

    Applies the plan to every athlete in athlete_ids. You give a start_date, or an end_date to count back from, the same choice TrainingPeaks offers when you click apply. The plan's workouts land on each athlete's calendar. Coach accounts only. By default you confirm each call; you can switch that off for this tool.

    MCP calltrainingpeaks_write → apply_training_plan

    REST endpointPOST https://cotlet.dev/api/v1/trainingpeaks/plans/{plan_id}/training-plan/apply

    Parameters

    Parameters: apply_training_plan
    NameTypeDescription
    plan_id string required string Plan from list_training_plans.
    athlete_ids array required array Athletes from list_athletes.
    start_date date date First day of the plan. Give this or end_date.
    end_date date date Last day of the plan. Give this or start_date.

    Example input

    {
      "plan_id": "plan_8c41d2",
      "athlete_ids": "athlete ids"
    }

    Example response

    {
      "plan_id": "plan_77",
      "applied_to": [
        "ath_20418",
        "ath_20433"
      ],
      "start_date": "2026-12-01",
      "status": "applied"
    }

Athletes1

Coach accounts only. An athlete account has no Athlete Library and gets a permission error.

  • list_athletes Athletes in your Athlete Library, with their groups. Coach accounts only. read

    Returns the athletes in the coach's Athlete Library with the group each one is in. Use athlete_id as the athlete parameter of the other tools. An athlete account has no Athlete Library and gets a permission error.

    MCP calltrainingpeaks_read → list_athletes

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/athletes

    Parameters

    Parameters: list_athletes
    NameTypeDescription
    group string string Only athletes in this group name.

    Example response

    {
      "athletes": [
        {
          "athlete_id": "ath_20418",
          "name": "Lena Ford",
          "group": "10K group"
        },
        {
          "athlete_id": "ath_20433",
          "name": "Marco Reyes",
          "group": "10K group"
        }
      ]
    }

Metrics and fitness3

Fitness numbers follow the CTL and ATL start values set on the Dashboard chart, so they can differ from the Home view.

  • list_metrics Metrics logged on the calendar between two dates, newest first. read

    Returns the metric entries on the calendar between start_date and end_date, newest first. Each entry has the metric type exactly as TrainingPeaks names it in your Metrics list, so you can reuse the type in add_metric. Without athlete_id it reads your own calendar.

    MCP calltrainingpeaks_read → list_metrics

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/metrics

    Parameters

    Parameters: list_metrics
    NameTypeDescription
    start_date date required date First day to read.
    end_date date required date Last day to read.
    athlete_id string string Athlete from list_athletes. Default: your own calendar.

    Example input

    {
      "start_date": "2026-10-01",
      "end_date": "2026-10-01"
    }

    Example response

    {
      "metrics": [
        {
          "date": "2026-11-04",
          "type": "Weight",
          "value": 71.6,
          "unit": "kg"
        },
        {
          "date": "2026-11-03",
          "type": "Weight",
          "value": 71.9,
          "unit": "kg"
        }
      ]
    }
  • add_metric Record a metric on a calendar day. writeasks first

    Records one value for a metric type on the day, like entering a Metric with the plus icon. Take the type from list_metrics so it matches your Metrics list. On an athlete's calendar the athlete sees the entry, which is why the call is confirmed. By default you confirm each call; you can switch that off for this tool.

    MCP calltrainingpeaks_write → add_metric

    REST endpointPOST https://cotlet.dev/api/v1/trainingpeaks/metrics

    Parameters

    Parameters: add_metric
    NameTypeDescription
    date date required date Calendar day.
    type string required string Metric type as named in list_metrics.
    value number required number Value to record.
    athlete_id string string Athlete from list_athletes. Default: your own calendar.

    Example input

    {
      "date": "2026-10-01",
      "type": "type",
      "value": 1
    }

    Example response

    {
      "date": "2026-11-05",
      "type": "Weight",
      "value": 71.4,
      "unit": "kg",
      "status": "saved"
    }
  • get_fitness_chart CTL, ATL and TSB per day from the Performance Management Chart. read

    Returns one row per day between start_date and end_date: ctl (long-term fitness), atl (short-term fatigue) and tsb (form, CTL minus ATL). The numbers are those of the Dashboard chart, so they follow the CTL and ATL start values set there. They can differ from the numbers on the Home view.

    MCP calltrainingpeaks_read → get_fitness_chart

    REST endpointGET https://cotlet.dev/api/v1/trainingpeaks/fitness-chart

    Parameters

    Parameters: get_fitness_chart
    NameTypeDescription
    start_date date required date First day to read.
    end_date date required date Last day to read.
    athlete_id string string Athlete from list_athletes. Default: your own chart.

    Example input

    {
      "start_date": "2026-10-01",
      "end_date": "2026-10-01"
    }

    Example response

    {
      "days": [
        {
          "date": "2026-11-01",
          "ctl": 52.4,
          "atl": 58.1,
          "tsb": -5.7
        },
        {
          "date": "2026-11-02",
          "ctl": 52.6,
          "atl": 56.9,
          "tsb": -4.3
        }
      ]
    }
Encrypted, revocable

Who can see my TrainingPeaks session, and how do I revoke it?

  • What we store

    Your logged-in TrainingPeaks profile, AES-256-GCM, in Finland. Not your password.

  • What your agent gets

    The 14 TrainingPeaks tools, never the login or a cookie.

  • What the session sees

    Your calendar and metrics, and on a coach account your athletes, groups and Training Plans.

  • What no tool touches

    Your subscription, billing, password and account deletion.

  • If TrainingPeaks logs you out

    Your agent gets a link to sign in again. We never do it for you.

  • How to cut access

    Disable for agents, reset the browser or delete the key. The next call stops.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.

Tested every 12 h

What happens when TrainingPeaks changes? We fix the tool, your prompts stay the same.

between tests of the TrainingPeaks tools
12 h
for a call to a tool paused for a fix
$0

TrainingPeaks has belonged to Garmin since 22 Jul 2026 and for now runs as its own unit. When it moves a button or renames a field, the fix happens on our side. status.cotlet.dev watches the site, console and API every 3 minutes.

6 tools ask first

Approvals, undo and mistakes Athletes see nothing until you say so.

  1. 01 Reads the calendar The days and athletes you named.
  2. 02 Drafts the change A workout, a move, a comment or a plan.
  3. 03 Waits for your OK It shows up in your Cotlet console first.
  4. 04 Reports back Workout ID, date and status.
What each TrainingPeaks write does
ActionWhat happens
Add planned workoutAppears on the calendar like one added with the plus icon
Add workout from libraryCopied to the day; the library keeps its own copy
Move workoutMoves to the new day with its planned and completed values
Comment on workoutAthlete and coach both read it; this tool cannot edit it later
Log metricOne value for a metric type on the day
Apply Training PlanThe plan's workouts land on each chosen athlete's calendar

6 of 14 tools ask first: every write, because on an athlete's calendar the athlete sees the result. Reads never ask. Switch the wait off per tool for a scheduled run.

Comments cannot be edited by the tool, so read a comment before you approve it.

MCP call
{
  "name": "add_workout",
  "arguments": {
    "date": "2026-11-11",
    "title": "Threshold intervals",
    "sport": "Bike",
    "description": "Warm up, then intervals at threshold.",
    "planned_duration_minutes": 75,
    "planned_tss": 85
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/trainingpeaks/workouts \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-11-11","title":"Threshold intervals","sport":"Bike","description":"Warm up, then intervals at threshold.","planned_duration_minutes":75,"planned_tss":85}'
Tool output
{
  "workout_id": "wk_88131",
  "date": "2026-11-11",
  "title": "Threshold intervals",
  "sport": "Bike",
  "planned": {
    "duration_minutes": 75,
    "tss": 85
  },
  "status": "planned"
}

Scripts and cron jobs reach the same tools over REST at /api/v1/trainingpeaks, with the same key and price. A call TrainingPeaks refuses fails and costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the TrainingPeaks MCP server cost?

About $25 a monthfor a coach with 15 athletes, 4,370 credits. TrainingPeaks bills your plan as before.

A month of TrainingPeaks jobs for a coach with 15 athletes, in credits
JobCallsCredits
Review last week and comment on key sessions, weekly24 × 4960
Add next week's library workouts, weekly31 × 41,240
Training load report, weekly16 × 4640
Apply the next block to a group, monthly3 × 130
Cloud Browser, 30 days1,500
Total4,370
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works in your own account, whatever plan it is on

The month is our example. TrainingPeaks's own Coach Edition pricing guide models a coach with 15 athletes (guide, 6 Nov 2026); no average roster is published. TrainingPeaks charges $21.99 a month for Coach Edition with up to 4 Basic athletes and $54.99 above that (pricing, 6 Nov 2026). Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

TrainingPeaks MCP server on GitHub or hosted: which to use Community servers and two hosted tools.

Other TrainingPeaks MCP servers, checked 6 Nov 2026
OptionWhat it doesWhere it stops
JamsusMaximus/trainingpeaks-mcpPython MCP server with 84 tools, MIT, 195 stars.Runs on your computer over stdio, for Claude Desktop and Claude Code. Last commit 2 Aug 2026.
AndreCNF/trainingpeaks_mcp_modalWraps that server on Modal over HTTP for Claude.ai.You deploy and run it yourself. 0 stars, last commit 29 May 2026.
athletedata.healthHosted MCP for Claude, ChatGPT and Cursor, with many fitness sources.Its guide says the standard TrainingPeaks connection is read only.
TrainingDojoHosted MCP that builds and publishes workouts and plans to TrainingPeaks.Needs a TrainingDojo account; full MCP access is on Pro, $15 a month.

Pick a GitHub server if you are happy to run it on your own computer. Pick Cotlet if your agent should work from the ChatGPT or Claude apps, on a schedule, without a server of your own.

EU company, since 2019

Who runs Cotlet A company you can look up.

Cotlet is run by Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273), working since 2019. The founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the TrainingPeaks tools go to contact@cotlet.dev.

TrainingPeaks MCP: questions

How do I connect TrainingPeaks to ChatGPT or Claude?

Sign up at cotlet.dev, log in to TrainingPeaks once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your TrainingPeaks account through Cotlet, in their phone apps too.

What can ChatGPT do in TrainingPeaks?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in TrainingPeaks: plan next week's workouts; weekly training load report; check which athletes missed their plan. You ask in plain words, and anything that reaches other people waits for your OK first.

Can I use TrainingPeaks without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the way in for AI agents; you do not need one to use REST.

How do I get access?

Sign up free at https://cotlet.dev, open TrainingPeaks under Integrations in the console and log in to TrainingPeaks in its Cloud Browser. Your free trial starts with your first app, no card needed.

Does TrainingPeaks have an official MCP server or API?

No official MCP server (checked 6 Nov 2026). The Partner API goes to approved commercial partners, and its request page says no new partners are accepted for now.

Does it work with a Basic athlete account?

You can sign in with any account. TrainingPeaks says Calendar Export is for Premium athletes, and its help center says a Basic account saves only 5 workouts in the Workout Library, so library jobs fit Premium and coach accounts better.

Do I need a coach account?

Not for your own calendar. Listing athletes and Training Plans, and applying a plan, need a coach account.

Does TrainingPeaks have webhooks?

Only in early access for Partner API partners (Partners API wiki, 6 Nov 2026). To react to a missed workout, run your agent on a schedule and read the calendar.

Is the MCP server different from the REST API?

Only the way in. Both have the same 14 tools, inputs and answers, one API key and one price. Agents use MCP; scripts, cron jobs and HTTP steps use REST.

Is Cotlet affiliated with TrainingPeaks?

No. Cotlet is independent and not affiliated with TrainingPeaks or Garmin, which has owned TrainingPeaks since 22 Jul 2026.

Give your agent access to TrainingPeaks.

Free 7-day trial with 2,000 credits, no card needed.