AI Chatbot for discussing training, planning, etc

A cool thing I managed to do with my MCP server: I can finally sync runs in TR triathlon plans from TR → Intervals.icu → Zwift!

That alone might be worth keeping this server up once I start my tri plan again.

1 Like

Nice, I built my own MCP server for intervals.icu as well (in C#). It works ok, but like many people have stated in this thread, you get quite a ‘mid’ output.

I havent really found it’s given me much insight that I didn’t already know.

I don’t think an LLM is going to outperform a numerical model for creating a plan. Where it might help is users who aren’t as familiar with the literature/consensus/research try and integrate various sources of data (Garmin, intervals.icu, diet tracking, etc) and give general reccomendations.

2 Likes

Yep, that’s my conclusion as well. I don’t think there’s anything I can do with an LLM that’s going to help me guide a plan the way an ML model like TrainerRoad’s can. If you give it too much data, or give it too raw, it fills the entire context window and fabricates “insights” because it can’t actually interpret the data or crunch the numbers; if you manipulate the data too much before passing it off to the LLM, then the insights are superficial at best. I haven’t gotten much value out of this beyond perhaps explaining in layman’s terms what certain workout metrics mean, or automating things like setting up those runs in the Intervals.icu calendar. It’s been an interesting learning experience, but not much more than that.

2 Likes

Accidentally introduced a bug into my tool, and well, this is why you should not trust LLMs if you can’t verify their output.

1 Like

I could understand it a basic beginners bug if you had coded it. But you didn’t, in what way is it a bug, rather than a known way LLMs work?

The bug I introduced in my MCP server was that instead of returning the recovery data, it wasn’t returning anything. Claude, instead of recognizing that the MCP server wasn’t returning the data it asked for and saying so, simply fabricated the data entirely (that “raw data” it claimed was returned from the Whoop API was 100% fabricated). The bug in the MCP server was my fault; the hallucination was entirely Claude’s. It is a known way LLMs work, hence why you should take everything they output with a big grain of salt.

6 Likes

This is good opportunity to implement self-improvement loop: add to your agent guidance doc (CLAUDE.md, AGENTS.md, etc) section “Learn from mistakes”, with content to effect “when human points out issue, invoke root cause analysis (5 whys or fishbone) and suggest improvements to CLAUDE.md and/or development workflows to prevent similar issues in future”.

This very effective – sometimes we we see issue and fix symptom (e.g. MCP output being null) but in long term, building safeguards into workflows helps to prevent issues that may go otherwise unnoticed.

Once this is done, you can deliberately introduce subtle bugs to learn how to improve workflows.

2 Likes

That bit is not a bug, it’s working as it is designed.

I’m currently using www.nua.coach, which is essentially; a layer of agents connected to a training engine (similar to TR engine) that includes season planning (periodization), microcycle planning and load management, workout analysis (compliance and performance algorithms), readiness/recovery, nutrition … and more. It’s connected to wearables so it logs non-cycling activities and considered for load management.

I have always though about this? Is this something we really want as cycling athletes? Current indoor systems (TR, or Zwift) have this intrinsically. But would you like to have also a real-time coaching on your ear while you are doing an outdoor ride, for example?

I personally prefer to listen to my body and then adjust the plan in the future instead of pushing too much. But I get the point on motivation.

My use case is probably a little different. For me cycling is the cross-training, not the focus, so I can get some steady state cardio in. Right now I’m spending more time on weight training, will shift in the spring to make more room for cycling. Even then, unlikely I’m more than 3-4hrs/week on the bike most weeks factoring in a longer ride on the weekend, a shorter ride on the trainer, and getting around occasionally. If I’m jumping in once per week or I’m still feeling leg day, it’d be nice to point that out and get a modification instead of needing to find one. Like right now I often get recommended intervals but I only have space for some recovery or light endurance riding if I want to be strong on my lifting days.

If cycling isn’t the focus, just fit it around your key weight sessions. You don’t need auto adjustment to do that. Not feeling it, just make it something easy.

Oh yeah that’s what I do, just would be easier to use a chatbot, tell it what I’ve just done, or what percentage of FTP I’m looking to spend time in, instead of menu diving.

TrainNow should make things easier but when the recs aren’t right based on my other training it’s not. Even looking at alternatives or list view I have to check the descriptions of workouts to make sure they’re actually what I want.

The chatbot solves for getting me to what I’m looking for quicker with less friction.

Took a while but I’ve got my article pulled together that discusses this. AI Can Make You a Faster Cyclist. Here's My Months-Long Journey

1 Like

Great read. Thanks for putting this together.

1 Like