Now - Use the LLM of your choice with TrainerDay (via direct LLM plugin MCP)

Here are instructions for claude, gemini and chatGPT

It will give you stats like on our progress page, and you can ask it to manage your calendar and move workouts and such. We will keep extending it.

I can create a video if anyone needs

Here is an example I asked him to move a workout.

2 Likes

Hell yea, thank you! Configured Hermes Agent for quick test.

TrainerDay MCP is fully operational. Both tool calls returned real data.

Here's the current status:



TrainerDay MCP Server — Status: ✓ Operational

Configuration (verified working):
- MCP server config: /Users/jamiej/.hermes/config.yaml, lines 318-322
- Env vars: TRAINERDAY_API_KEY, TRAINERDAY_API_URL, TRAINERDAY_API_MCP — all set in /Users/jamiej/.hermes/.env
- Connection test: âś“ Connected (2240ms), 15 tools discovered

Available tools (15):
- get_athlete — athlete profile (FTP, threshold HR, sport profile)
- get_training_load — current CTL/ATL/TSB metrics
- get_training_history — 14-day daily metrics history
- get_training_summary — complete snapshot (just verified working)
- get_calendar — upcoming workouts and events
- get_goals / update_goals — training goals CRUD
- get_coach_instructions / update_coach_instructions / reset_coach_instructions
- get_chat_context / save_chat_context — cross-session continuity
- add_calendar_event / update_calendar_event / delete_calendar_event — calendar CRUD

Current data snapshot (from get_athlete):
- Username: aegisofpaean
- FTP: 165W
- Threshold HR: 140 bpm
- Active sport: bike
- Pro features: enabled

Current training load (from get_training_summary):
- CTL (fitness): 15.23
- ATL (fatigue): 29.59
- TSB (form): -14.37
- Status: yellow — "Listen to your body"

Planned workouts:
- Aug 14: "Goombah 45" — 45 min, TSS 24, intensity 0.56
- Aug 16: "Lollygag 45" — 45 min, TSS 24, intensity 0.57
- Aug 17: "Sweet Spot A #4" — 30 min, TSS 23, intensity 0.68
- Aug 19: "HIIT A #4" — 30 min, TSS 25, intensity 0.71
1 Like

Hi Alex,

I’m trying to set up the TrainerDay connection to ChatGPT using the instructions on your website.

I’m using ChatGPT Plus. Your instructions say to go to Settings → MCP / Connected Tools → Add and enter:

https://api.trainerday.com/mcp

However, I don’t have an MCP or Connected Tools section in my ChatGPT settings.

I do have Settings → Plugins → Developer Mode, and I enabled Developer Mode. I can also access the ChatGPT Plugin directory and Plugin Management, but I still don’t see any option to manually add an MCP server or enter the TrainerDay MCP URL.

We also searched the ChatGPT Plugin directory for TrainerDay but couldn’t find a TrainerDay plugin there.

The confusing part is that the TrainerDay instructions indicate this should work with ChatGPT Plus, while the current ChatGPT interface on my Plus account doesn’t seem to provide the option needed to add the TrainerDay MCP server.

Is there a different procedure I should be using with the current version of ChatGPT Plus? Or is the TrainerDay MCP connection currently limited to certain ChatGPT plans/accounts?

I’d really like to get this working because being able to give ChatGPT direct access to my TrainerDay workouts and activity data would be extremely useful.

Thanks for any help you can provide.

Russ

Ok, we just launched this and I sorry only verified claude. Let me test chatGPT and fix the instructions.

Ok I was able to get it working. See below.

I should have recorded all steps but here are the first main ones.

After adding the TD MCP

I had to go back to plugins, click on dots and click manage plugin and click refresh schema. Then start a new chat and click on + and TrainerDay

If you get stuck let me know and I will see if I can reset and do it again with all the screenshots.

Thank you, Alex! Working great now!

1 Like

Hi! I’m trying to connect the TrainerDay MCP server to Claude using the documented server URL:

https://api.trainerday.com/mcp

The OAuth flow fails in Claude with:

Issuer mismatch in authorization response (RFC 9207): expected "https://api.trainerday.com", received "https://api.trainerday.com/"

It looks like the OAuth discovery metadata advertises the issuer without a trailing slash, while the iss parameter in the authorization response includes the trailing slash.

Could you check the MCP OAuth authorization flow and make the issuer values identical? Either:

https://api.trainerday.com

everywhere, or:

https://api.trainerday.com/

everywhere.

This appears to be on the TrainerDay OAuth/MCP side rather than a Claude configuration issue.

I just tried these instructions on my phone and it worked. I will test more tomorrow.

I’m using Claude Code 2.1.252 on Linux. It seems to be stricter about mismatches than the web version, where I was able to connect no problem.

On https://api.trainerday.com/.well-known/oauth-protected-resource your authorizations server is without trailing slash:

 "authorization_servers": [
"https://api.trainerday.com"
],

Your response, however, does have a trailing slash for the issuer (iss). You can also see that here:

https://api.trainerday.com/oauth/.well-known/openid-configuration

-> “issuer”: “https://api.trainerday.com/”,

1 Like

I will try CC mac to see if I can reproduce it but my guess is you sleuthing is enough to fix it, thanks.

Ok yes mac had similar or the same error with CC. This is now resolved and deployed.

Thanks a lot! It works flawlessly on my Linux system as well.

1 Like

A follow up question. I have set up a separate TrainerDay account for my and I am helping her with planning. Is there a way that I can connect both of our accounts to my Chatgpt account so I have all of my TrainerDay information in one place?

Hmm, interesting request, right now it’s not so easy, you might be able to do it on two computers. Let me see if there is a way we could make this possible/easy.

Thanks, Alex.This is one of those “it would be nice” things if it’s easy. But not a big deal if it is not an easy thing to do.