Skip to content
OpenAthlete

MCP server

Your training, inside Claude and ChatGPT

Connect the assistant you already pay for to OpenAthlete. It reads your calendar, activities and form, and with your permission plans a 12-week block straight into your calendar. From there, the sessions go to your watch.

  • 23 tools
  • Free on every plan
  • OAuth, read and write separate
Claude · OpenAthlete

Build me a 12-week plan for a marathon on 14 March, 5 runs a week, long run on Sundays.

  • get_athlete_contextzones, VMA, form −6
  • get_training_volumelast 12 weeks
  • plan_sessions60 sessions, 4 blocks

Your plan is in the calendar: 60 sessions in 4 blocks, threshold on Tuesdays, long runs from 1h30 to 2h50 on Sundays, a lighter week every fourth, two weeks of taper. Workouts will reach your Garmin as their dates come up.

In one paragraph

What MCP is

The Model Context Protocol is an open standard that lets an AI assistant use tools provided by another app. OpenAthlete is an MCP server: once connected, Claude or ChatGPT can call functions like get_training_load or plan_sessions on your account, the way you would click through the app. The model runs on your assistant's side, so OpenAthlete pays nothing for it, and neither do you: the MCP server is free on every plan, self-hosted instances included.

Examples

What you can ask

Four requests and the tools the assistant calls to answer them.

“Build me a 12-week plan for a marathon on 14 March, 5 runs a week, with my long run on Sundays.”

get_athlete_context→get_training_load→get_training_volume→plan_sessions

“I've had a fever since yesterday. Adapt my next two weeks.”

create_period→get_calendar→move_sessions→update_session

“How did last week go compared to the plan? Is my form right for Saturday's race?”

get_calendar→get_activity→get_training_load

“My new FTP is 265 W: record it and update my power zones.”

log_metrics→update_training_zone

Tools

23 tools: calendar, load, activities, planning

Workouts read and write in plain units: durations in seconds, paces as 4:35 per km, your zones by id, or percentages of VMA, FTP or maximum heart rate. Dates are in your time zone.

Read access

read · 12
  • get_athlete_context

    Today's date and time zone, metrics, zones, fitness and form, the last 4 weeks, coming races, periods and injuries. Agents call it first.

  • get_calendar

    Planned sessions (done, missed or to do), races, notes, activities and periods between two dates.

  • get_sessionget_activity

    A session's structured workout; an activity's laps and your answers to the post-activity questions.

  • get_activitiesget_training_volume

    Training history and weekly volume per sport.

  • get_training_load

    Weekly load, done and planned, with fitness, fatigue and form projected over the planned sessions.

  • get_metricsget_capacitiesget_records

    Metric history (weight, resting HR, HRV, sleep), capacities and best efforts.

  • list_workout_templateslist_athletes

    Your workout library; for coaches, the athletes they coach.

Write access, on top

write · 11
  • plan_sessions

    Adds up to 60 trainings with structured workouts, races and notes at once. All are saved, or none.

  • update_session

    Changes a session, a race or a note; for a repeated session, this one and the following.

  • move_sessionscopy_sessionsrepeat_session

    Moves or copies sessions by days, repeats one every few weeks.

  • delete_sessions

    Deletes planned sessions. Done sessions and recorded activities are never deleted.

  • create_periodupdate_perioddelete_period

    Training blocks, and periods without training: travel, illness, injury.

  • log_metricsupdate_training_zone

    Records measurements, changes a zone after a test.

Setup

Connected in two minutes

The address is the same everywhere. On a self-hosted instance it is https://<your domain>/api/mcp.

Setup guide
URLhttps://api.openathlete.org/mcp

Claude

claude.ai and desktop app, then on mobile too. One custom connector on the free plan

  1. 1Customize › Connectors › Add custom connector
  2. 2Paste the address, then Connect
  3. 3Sign in to OpenAthlete and choose Allow
Step-by-step guide

ChatGPT

Business, Enterprise and Edu plans when we checked; Pro can only read

  1. 1Plugins › + › Add custom MCP server
  2. 2Paste the address, choose OAuth, create it as a plugin
  3. 3Allow it in OpenAthlete
Step-by-step guide

Claude Code

In a terminal, then /mcp to sign in

claude mcp add --transport http openathlete https://api.openathlete.org/mcp

Cursor, VS Code, your own agent

OAuth if the client supports it, otherwise a personal token from Settings › AI agents, shown once

{
  "mcpServers": {
    "openathlete": {
      "url": "https://api.openathlete.org/mcp",
      "headers": { "Authorization": "Bearer oa_pat_..." }
    }
  }
}

For coaches

Work across all your athletes

A coach's assistant reaches the athletes they coach, with the same rules as in the app. It lists them, then passes the athlete with each request. Ask for a review of everyone's week, or rework one athlete's block after a bad cold.

OpenAthlete for coaches
ChatGPT · OpenAthlete

For each of my athletes, how did last week compare to the plan?

  • list_athletes6 athletes
  • get_calendar× 6, last week

Four of six hit 90% or more of planned time. Léa missed both quality sessions and wrote "calf tight" on Thursday. Marc did 30% more than planned.

Security

Security and permissions

What an assistant does with your data is up to it and its provider. Connect the ones you trust.

OAuth 2.1 with PKCE: you approve each assistant on an OpenAthlete page. It never sees your password.

Read and write are separate. An assistant with read access is not even offered the tools that write.

Tokens are stored hashed. Access tokens last an hour; refresh tokens are single-use, and a stolen one used twice revokes the access.

Personal tokens last 30, 90 or 365 days, or never expire. Revoke any connection in Settings › AI agents; it stops at the next request.

Assistants reach your training, not your account: no password change, no device or subscription change, no deleting your history.

Questions people ask

Yes, on every plan, Free included, and on self-hosted instances. The model runs on your assistant's side, under your Claude or ChatGPT account.

Claude (claude.ai, desktop, mobile and Claude Code), ChatGPT in developer mode, Cursor, VS Code and any MCP client that supports OAuth or a bearer token.

No. Done sessions and recorded activities are your history and are read-only through MCP. It can only change or delete sessions still to do.

Yes, exactly like the ones you plan yourself: to Garmin, Suunto or COROS if workout export is on.

Yes. Approve the read scope only, or create a personal token with read access. The assistant then cannot change anything.

Yes. The address is https://<your domain>/api/mcp, with the same OAuth flow and tools.

Give your assistant something real to work with

Create an account, connect your watch so your activities come in, then add OpenAthlete as a connector.

Free forever. No credit card.