OpenAthlete MCP: training planning through an assistant
OpenAthlete
MCP server of an open endurance training platform: calendar, sessions, load and records, queried through an assistant
- 135 ★ on the repository
- Last commit
Broad access
Why this level
- Tools write and delete sessions, periods, metrics and zones in your calendar
- Health, heart rate and wellbeing data go to the model
Install
- Works in
Manual install
Find the MCP address in my OpenAthlete instance settings, it ends in `/mcp`, add it as a remote MCP server and complete OAuth authorization. Then call `get_athlete_context` and show the summary.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Tools write and delete sessions, periods, metrics and zones in your calendar
- Health, heart rate and wellbeing data go to the model
This is third-party code. Review the repository files before installing.
What it does
OpenAthlete is a self-hosted platform for runners, triathletes, cyclists and their coaches under the AGPL-3.0 license. Inside it runs an MCP server that opens the season calendar, sessions, load and records to an assistant. Access goes through OAuth with a consent screen, and the account owner picks the scope of rights. Reading is covered by `get_athlete_context`, `get_calendar`, `get_session`, `get_activity`, `get_activities`, `list_workout_templates`, `get_training_load`, `get_training_volume`, `get_metrics`, `get_capacities` and `get_records`. Coaches get `list_athletes`. Writing is done by `plan_sessions`, `update_session`, `move_sessions`, `copy_sessions`, `repeat_session`, `create_period`, `update_period`, `delete_period`, `log_metrics` and `update_training_zone`. The platform itself builds a season calendar, sends structured workouts to Garmin, COROS and Suunto watches, computes form and fatigue from CTL, ATL and TSB and parses activities from five services.
Who it is for. Runners, triathletes and coaches who keep a training plan on OpenAthlete and want to edit it in conversation with an assistant.
Good fit when
- You need to shift a training week because of illness and rebuild the load for a race
- A coach has several athletes and asks the assistant who stands out in load and form
- After a long ride you want to go through the activity and compare it with the plan
- You enter wellbeing and recovery figures by voice, without a manual form
Not a fit when
- You do not use OpenAthlete: the server works only inside this platform
- You need a tool with no calendar writes: the set has tools that change and delete periods
- You want a separate local package: MCP is built into the platform API and comes up with it
Example request
Show my calendar for the next two weeks, move Sunday's long run to Monday and say how the load will change.MCP
- Transport
- http
- Authentication
- OAuth
Limitations
The MCP server is part of the platform API and sits at the `/mcp` address of your instance: on the hosted version or on your own server brought up with Docker Compose. Connection goes through OAuth, so the client must support that flow, and rights are granted on the consent screen.
Instructions for connecting different clients are in the project documentation, and the repository README only mentions MCP. The platform is under AGPL-3.0, and self-hosting obliges you to open your changes. The last commit is from November 2026.
How to disable. Revoke the client access on the connections page in OpenAthlete settings and remove the server from the client config. Platform data can be exported and deleted with standard account tools.
FAQ
What is OpenAthlete?
An open platform for planning and analyzing endurance training: a season calendar, structured workouts, delivery to Garmin, COROS and Suunto watches, activity analysis. The code is published under AGPL-3.0 and the platform can be self-hosted.
Which tools does the MCP server have?
For reading `get_calendar`, `get_activities`, `get_training_load`, `get_records` and others, for writing `plan_sessions`, `move_sessions`, `log_metrics`, `update_training_zone` and others. Coaches get `list_athletes`.
How does a client connect?
By OAuth: the server issues tokens after a consent screen that shows the requested rights. The server address ends in `/mcp`.
Can I host the platform myself?
Yes, the code is public under AGPL-3.0 and deployment is described through Docker Compose. The hosted version on servers in France is free too.
Where does activity data come from?
From Garmin, COROS, Suunto, Polar and Strava, and from FIT, GPX and TCX files.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server for workout tracking: Claude Desktop, Cursor and Cline read routines, sets, body weight and 1RM from your self-hosted openGym
Official COROS MCP: an agent reads workouts, sleep and heart rate and drafts training plans saved to your account.
coros-mcp (community)
coros-mcp
Unofficial Coros MCP server: sleep, HRV, load and workouts from Training Hub, plus scheduling sessions in the calendar.
Strava MCP
Strava MCP Server
Strava MCP server: an agent reads your workouts, heart rate, power, segments and routes and exports routes to GPX and TCX
intervals-icu-mcp: Intervals.icu training data in an agent
intervals-icu-mcp
An MCP server that lets Claude and ChatGPT read and edit Intervals.icu data: workouts, wellness, calendar and structured plans
Garmin Personal MCP answers questions about sleep, HRV and training from your Garmin Connect account, read-only
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| OpenAthlete MCP: training planning through an assistant (this card) | yes | OAuth | 135 | |
| Intervals.icu MCP Server | no | API key | 391 | a similar task for intervals.icu, while this is an open-source self-hostable platform |
| Strava MCP | no | OAuth | 506 | reads Strava activities, while OpenAthlete adds a season plan and calendar writes |
README in short
The README introduces the platform: season plan, structured workouts, activity analysis, coach mode, AI with your own key and mobile apps. It gives a comparison with TrainingPeaks, Strava and intervals.icu, the stack and a development setup. MCP gets one line, and details live in the code and documentation.