Community Project: XERT MCP Server for Claude AI

Hi everyone,

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.

Features:

  • Query your Fitness Signature (TP, LTP, HIE, PP)
  • Check Training Status and Form Stars
  • Get Workout of the Day recommendations
  • List and export workouts (ZWO/ERG)
  • Browse activities with XSS metrics and MPA data
  • Upload FIT files

GitHub: GitHub - Milofax/xert-mcp: Model Context Protocol (MCP) server for XERT API - access fitness signature, training load, workouts and activities
Requirements: Node.js 18+, XERT account

Example questions you can ask Claude:

  • “What’s my current FTP and training status?”
  • “Did I have any breakthroughs this week?”
  • “Export my Sunday Endurance workout as ZWO”

Feel free to try it out and share feedback!

3 Likes

That’s so cool! Well done. I’ll need to get it up-and-running and try it out.

2 Likes

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?

ChatGPT does not use MCP like Claude

1 Like

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.

Cool:

1 Like

@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. :smiling_face_with_sunglasses:

I have done some work with Codex:

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.

1 Like

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.

1 Like

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.

1 Like

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.