I’ve built an open-source MCP (Model Context Protocol) server that connects
Claude AI to the XERT API. This allows you to interact with your XERT data
using natural language.
This is interesting, I tried to do something similar for ChatGPT some time ago. Do you know if this will work with ChatGPT as well?
I challenge I found was that the Xert API only contains limited information, and you often need to use the HTML pages instead to get the information needed. E.g. you can list the activities in one API call, but in order to get the XSS breakdown you need to do a separate call for each activity.
Furthermore, ChatGPT does not understand XSS. Not sure if Claude is any better?
Let me know how it went for you. The day before yesterday, I also made another fix regarding session handling so that you don’t have to constantly authenticate yourself.
My motivation for writing such an MCP server was to do a weekly review, where I could, among other things, have Claude retrieve my Strava and Whoop data via MCP and then have it all processed accordingly. I don’t have a specific Claude.md yet, but some exciting things have already come out of it for me.
@milofax this is very cool, thank you. I am using Claude Cowork with Intervals.icu and the “Section 11” coaching protocol, but now I also have it cross referencing Xert.
So it’s synthesizing ATL/CTL/form from Section 11, energy system distribution and intensity quality from Xert.
Where I think I am going with my setup is getting Claude to manage season planning and the scheduling of workouts via Intervals.icu, primarily using Xert data. It can fetch appropriate Xert workouts and schedule them in Intervals.icu complete with structured intervals. It can also do a scheduled check each morning of overnight recovery stats (Garmin watch stats uploaded to Intervals.icu) and adjust the schedule if necessary.
This is the holy grail. I’ve slowly been evolving my workflows towards this with Forecast AI, calendar sync and automated alarms. A fully built solution pulling in overnight vitals, ability to read my calendar to know what days I’m unable to ride, etc would be amazing. I’d pay real money for that product if it were commercialized.
You can do all of that now with Claude Cowork and Intervals.icu (both paid). But you can only really use Xert as a secondary source of metrics because as far as I can tell the Xert API doesn’t let you schedule workouts.
That’s the big value for me - having something update Xert to adjust for personal calendar conflicts / availability, or poor sleep, illness, etc. Today once I schedule in Xert, I get it downstream into my personal iPhone calendar and alarms get set automatically. It’s going the other way and modifying the Xert calendar that I’m not sure I’ve heard is feasible at this point.
@xertedbrain is there any plan for xert to have an MCP to one or more llm’s? It would be nice to have it generate directly from xert without an intermediary app like strata, runalyze, etc. most if not all these do not have access to the xert data analysis. I am curious about the MCP in this thread, but I am not that interested in any program adjustments etc. so at his point I am not familiar enough with how the mcp here works, and what other things are needed for integration.
Just tried this but it looks like a Claude paid subscription is needed besides of being somewhat technically complex for non experts. So my question is whether Xert is planning ant direct LLM integration like there’s in Athletica?
You do not really need a MCP server. You just need a SKILL.md file and a few scripts that interacts with the Xert server. The SKILL file will the describe how to use the scripts to pull data from Xert — or even modify data. I am personally using Codex (ChatGPT Work), but it should not be that different. Let me know you want to get a copy.
I use Codex (OpenAI), not Claude. But is should be very similar. I assume you can just drop in the files and it will work.
I have created a few scripts in python that can download my data from Xert Online and e g adjust workouts or add a note to the calendar.
The SKILL.md file basically describes how to interact with the scripts and defines what information is in the various json fields.
I have also added a few of my own calculations here so I can easily calculate XXS for a workout structure without asking the server. Or the XSS required to reach a certain fitness signature by a certain date.
I have also connected Intervals.ICU and Garmin Connect in a similar way so I can easily analyze an activity with data from multiple sources.