You finish a hard session in Watopia, save the ride and look at the summary. The average power seems reasonable. What you want to know is whether you held the work intervals, faded near the end, or added more intensity to a week that was already full.
Those are good questions for an assistant with the right data. They are awkward questions for an assistant looking at a screenshot of average watts. Getting Zwift into ChatGPT means choosing how much of the ride the model can see, where the history lives, and who keeps the connection working.
We looked at Zwift’s export documentation, published integration announcements and the source repositories behind community MCP projects. There are several real approaches. We have not run every third-party connector ourselves, so the examples below describe documented capabilities rather than a promise that each setup will work unchanged on your account.
Does Zwift have an MCP server?
Community-built ones exist. We did not find a public MCP server operated by Zwift itself in the sources checked for this article. That distinction matters when a directory labels something a “Zwift MCP server”: the name tells you what it connects to, not who maintains it.
One concrete example is benniblau/zwift-mcp. It gathers Zwift and ZwiftPower history into SQLite and exposes it through MCP. Its setup requires Zwift credentials and explicitly warns that the underlying endpoints are undocumented and unstable.
MCP is the protocol that lets an assistant call external tools. It does not, by itself, grant official access to Zwift, keep a database current or make the resulting analysis correct. Those jobs still belong to the software behind the connector.
A file is enough for a small question
The least elaborate route starts with something Zwift already provides: an activity export. Zwift’s own instructions describe downloading the FIT recording from your activity feed. That gives you a portable copy of the session without installing an MCP server.
FIT is binary, so a useful next step is to decode it into a table with a tool such as Garmin’s FIT CSV Tool. An AI environment with a suitable parser may do that work, but attaching a file alone does not establish that it was decoded correctly.
For a focused review, give the assistant lap summaries or selected power and heart-rate samples, with the intended workout. Ask it to show which rows support its conclusion. You can learn more from that than from an entire chat about a screenshot.
The friction appears when you ask about your training block. Each new session means another export; each comparison means selecting the right files. This route suits an occasional question better than a conversation you want to keep returning to.
Why riders put Intervals.icu in the middle
If your rides already live in Intervals.icu, connecting the assistant there can make more sense than building another Zwift database. Intervals.icu has a direct Zwift integration for completed activities and planned workouts. The AI connection can then sit on top of that history.
There are community projects for this second leg too. mvilanova/intervals-mcp-server exposes Intervals.icu data to Claude and ChatGPT using an athlete ID and API key. The complete route is Zwift → Intervals.icu → community MCP server → assistant.
This is more than a theoretical diagram. In a Zwift forum post, one rider describes using an Intervals.icu MCP server with Claude to review training and generate weekly plans. That is one reported setup, not evidence that most Zwift riders use MCP, but it captures the appeal: keep the training history somewhere useful and let the assistant query it.
The source of those activities still matters. Intervals.icu’s creator confirms that Strava-derived data cannot be forwarded through its API. A Zwift ride arriving through a direct connection and the same ride arriving through Strava can therefore behave differently when an MCP client asks for it. Check the path your data took before debugging the AI connection.
A direct community connector needs upkeep
The direct route is attractive if you want your own database and enjoy maintaining it. You can choose what to store, inspect the calculations and avoid making another training platform your source of truth.
In the Zwift connector’s downloader, FIT parsing supplies laps and optional detailed samples. That distinction matters for a question about interval execution: a ride summary cannot show every rise and drop in power.
You also own the sync schedule, credential storage and maintenance when endpoints change. Ask how fresh the local database is before assuming the assistant has seen the ride you saved this morning.
Client compatibility is another separate job. OpenAI’s documentation says ChatGPT connects to remote MCP servers, rather than directly launching a local process. A project’s Claude Desktop configuration is therefore not automatically a ChatGPT connection. Check transport, authentication and your account’s access before copying a configuration snippet.
Hosted connectors, including Vertical
You can also let a service maintain the connection. For example, Routebook documents its own MCP tools, while AthleteData describes a Zwift-to-MCP connection. These are third-party offerings, not evidence that Zwift operates an MCP server. We have not independently tested them.
Vertical takes the same broad approach of keeping the history in a training platform. You connect Zwift alongside your wearable in Integrations, so completed indoor sessions can join your other training. Our MCP connection makes that synced history available to an assistant; the ChatGPT connection is currently in early access.
The boundary is important: Vertical’s Zwift integration imports completed activities. It does not currently deliver structured workouts to Zwift. A platform that supports both directions elsewhere should not be assumed to do so here.
The question to ask after “is it connected?”
Ask the assistant to identify the activities it used, the measurements it has and the measurements it lacks. Then try a question you can check yourself: did your later work intervals hold up as well as the earlier ones?
For that question, file exports may be plenty. For repeated conversations about a season, a synced history is more practical. An Intervals.icu relay fits an existing Intervals.icu workflow; a direct community server fits someone who wants control over the plumbing; a hosted connector fits someone who wants that maintenance handled for them.
Whichever route you choose, give the analysis something to work with: the session detail, the intended workout and the surrounding training. A successful connection earns you access to the data. The useful conversation starts with what the assistant can actually establish from it.