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
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_zoneTools
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 · 12get_athlete_contextToday's date and time zone, metrics, zones, fitness and form, the last 4 weeks, coming races, periods and injuries. Agents call it first.
get_calendarPlanned sessions (done, missed or to do), races, notes, activities and periods between two dates.
get_sessionget_activityA session's structured workout; an activity's laps and your answers to the post-activity questions.
get_activitiesget_training_volumeTraining history and weekly volume per sport.
get_training_loadWeekly load, done and planned, with fitness, fatigue and form projected over the planned sessions.
get_metricsget_capacitiesget_recordsMetric history (weight, resting HR, HRV, sleep), capacities and best efforts.
list_workout_templateslist_athletesYour workout library; for coaches, the athletes they coach.
Write access, on top
write · 11plan_sessionsAdds up to 60 trainings with structured workouts, races and notes at once. All are saved, or none.
update_sessionChanges a session, a race or a note; for a repeated session, this one and the following.
move_sessionscopy_sessionsrepeat_sessionMoves or copies sessions by days, repeats one every few weeks.
delete_sessionsDeletes planned sessions. Done sessions and recorded activities are never deleted.
create_periodupdate_perioddelete_periodTraining blocks, and periods without training: travel, illness, injury.
log_metricsupdate_training_zoneRecords 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.
https://api.openathlete.org/mcpClaude
claude.ai and desktop app, then on mobile too. One custom connector on the free plan
- 1Customize › Connectors › Add custom connector
- 2Paste the address, then Connect
- 3Sign in to OpenAthlete and choose Allow
ChatGPT
Business, Enterprise and Edu plans when we checked; Pro can only read
- 1Plugins › + › Add custom MCP server
- 2Paste the address, choose OAuth, create it as a plugin
- 3Allow it in OpenAthlete
Claude Code
In a terminal, then /mcp to sign in
claude mcp add --transport http openathlete https://api.openathlete.org/mcpCursor, 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 coachesFor 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.
The rest of the weekly loop
All featuresGive 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.