Suunto MCP Server: Connect Suunto to Claude and ChatGPT
Give Claude or ChatGPT live access to your Suunto activities, sleep, HRV and resting heart rate, and push structured run and ride sessions back to the watch.


Your watch has the whole block. The model has your paragraph.
Ten weeks of building sit in your Suunto account. Every interval, every long run in the hills, every heart rate trace and lap split, plus whatever your watch has been quietly recording overnight.
Then you open Claude, ask whether Sunday's long run should go to three hours, and it asks you to describe your recent training.
So you type a summary. Around 70 kilometres a week, one session with some threshold work, a long run that has been creeping up. The model gives you a thoughtful answer built entirely on that paragraph. It does not know your last two long runs both drifted 8 BPM in the final 45 minutes. It does not know your resting heart rate has sat three beats above baseline for eleven days, or that you have averaged 5 hours 40 of sleep since the block started.
None of that is a failure of the model. It is blind, and no amount of typing fixes blindness. An MCP server fixes it properly: rather than you summarising ten weeks, the model reads them.
What MCP actually is
The Model Context Protocol is an open standard for letting AI assistants call external tools. Anthropic published it at the end of 2024, and it has since spread well past Claude, with ChatGPT, Cursor and Perplexity all speaking it.
It is boring in the way good infrastructure is boring. A server advertises tools, each with a name and a schema. The model decides when to call one. Results come back as structured data it can reason over.
That shape suits training data unusually well. You do not want ten weeks of activities dumped into a context window where they go stale the moment you finish tomorrow's run. You want the model to ask a question when it needs an answer, the same way you would open the Suunto app and scroll to a specific week.
So "Suunto MCP server" means a server that exposes your Suunto history as callable tools. Ask "compare my aerobic decoupling on long runs in weeks 2 to 4 against weeks 8 to 10" and the model fetches both windows and does the comparison against real laps rather than against your recollection of them.
Why this is a sign-in, not an API key
Worth being blunt about, because it is where most people searching for this get stuck.
There is no Suunto developer portal that hands an individual athlete credentials for their own account. Suunto runs partner integrations rather than self-serve API keys, which means a self-hosted "Suunto MCP server" project has nothing legitimate to authenticate with. Anything that appears to work is either scraping the app or borrowing credentials, and both break the first time Suunto ships an update.
What does work is an authorised data bridge. You sign in to Suunto once through the connect flow, Suunto grants access, and from then on activities and wellness data stream in on their own. One sign-in on your side. A supported integration on the other side.
The grant is at the account level rather than the device level, which has a pleasant consequence: a Vertical 2 on your wrist and a Race S in the drawer both feed the same connection, and upgrading watches changes nothing about the setup. This is the same architecture the COROS MCP server uses, and for the same reason.
What lands, and what does not
This is the section most integration pages skip, and the one that actually determines whether the thing is useful to you.
Activities. Runs, rides, trail runs, swims and everything else in your Suunto account, with GPS, distance, duration, pace, heart rate and lap structure attached. Laps matter more than people expect: they are what let a model see the shape of a session, so "were my 4 x 8 minute reps even, or did I fade on the last two?" is answerable rather than a guess.
Sleep. Nightly duration lands. Stage detail is model-dependent, and this is worth understanding rather than being surprised by. Some Suunto watches report a full deep, light and REM breakdown; others report only a partial picture. Where the staging is incomplete, the nightly total is reconstructed from the in-bed window rather than reported as a suspiciously short night, so a real 4 hour 58 night reads as 4 hour 58 and not as 62 minutes of deep sleep. What you should expect is a reliable total and a stage breakdown that depends on your watch.
HRV and resting heart rate. Both land, and between them they carry most of the recovery signal worth having. These are the two series that make HRV-guided training possible without you manually logging anything.
What does not land, stated plainly. VO2max does not come through the Suunto feed, so if your watch shows an estimate, that number stays inside Suunto. Body composition does not come through either, because Suunto ships no body data on this pipe. Neither does a usable calorie burn figure: the number available on the daily feed is not a genuine day total and would be actively misleading if it were treated as one, so it is deliberately dropped rather than passed along at face value.
That last paragraph is the point of this section. An integration that claims everything syncs and then quietly delivers three quarters of it wastes weeks of your time waiting for data that was never coming.
Setting it up
- Create an account at athletedata.health and open the integrations page.
- Find Suunto and start the connect flow. You will be handed to Suunto's own sign-in.
- Sign in with the Suunto account your watch syncs to and approve access. You are returned to the dashboard with Suunto connected.
- Wait for the backfill. Historical activities and wellness data stream in over minutes to hours depending on how much history you have, and you will get one message when it completes rather than a notification per activity.
- Add the MCP connector to your AI client. Claude Desktop, ChatGPT, Cursor and Perplexity all support MCP, and the setup guides cover each client's specific flow.
- Ask something that could not be answered from a paragraph. "What was my average heart rate on long runs over the last six weeks, and did it trend up or down?" is a good first test, because a wrong answer is obvious.
Total time is a few minutes of clicking and then some waiting on the backfill. There is nothing to self-host, no token to rotate, and no key to keep out of a config file.
The part that surprises people: it writes back
Most connectors are one-way. This one is not, for run and ride sessions.
When you agree a session in chat, a structured workout can be written to your Suunto calendar and synced to the watch for that date. Warm-up, intervals with per-step pace or power targets, recoveries and cool-down all render as a workout you can start on your wrist, rather than a description you have to memorise and improvise against.
The honest boundary: run and ride sessions push, swim and strength sessions do not. The planned-workout API behind this cannot express a swim set or a lifting session, and rather than send a mangled approximation to your watch, those are skipped. If your week is three runs, two rides and a swim, four of six sessions land on the watch and the swim stays in the plan you read on your phone.
This is the same capability COROS has and the Garmin integration has through a different route. If you have used a platform that could only read your data, the difference in day-to-day friction is larger than it sounds.
What changes about the conversation
The shift is not that the model gets smarter. It is that questions which were previously unanswerable become ordinary.
Load questions get real answers. "Has my training load actually gone up over this block, or does it just feel like it?" needs your activity history and a load model over it. See our guide to training stress score for what that number is doing under the hood.
Recovery questions stop being anecdotal. "My HRV has been low all week. Is that the training or the fact I have been sleeping six hours?" requires the HRV series, the resting heart rate series, the sleep totals and the session history side by side. That is four data sources and a correlation, which is exactly the sort of thing a model does well and a human does not bother doing on a Tuesday.
Session review gets specific. "Did I actually hold threshold in that session or did I start too hard?" is a lap-level question, and lap data is present.
Cross-source questions become possible at all. Suunto is rarely the only thing an athlete has. If your lifting is in Hevy and your body weight comes off a smart scale, the model reads those alongside your Suunto runs, which is the whole argument for connecting your training data to one place rather than to four disconnected apps.
The limits worth knowing about
It is not real time. Data arrives when your watch syncs to the Suunto app and the app syncs onward. Finish a run and ask about it thirty seconds later and it will not be there. Wait for the sync and it will.
Missing data types stay missing. Nothing on this page turns Suunto's VO2max estimate into something the model can read. If VO2max trend is central to how you train, it comes from a different source or not at all.
The model still needs good questions. "How is my training going?" produces a mediocre answer with full data access, the same as it does without. "Compare my last four long runs on pace, heart rate and decoupling" produces a good one.
Stage detail varies by watch. If your Suunto does not stage sleep, no connector can invent the stages. You get the total, which for training decisions is most of the value anyway.
Putting it together: a Suunto MCP setup checklist
- Confirm your watch syncs into the Suunto app. If the activity is in the app, it will come through.
- Connect Suunto through the integrations page and approve access at Suunto's own sign-in.
- Let the initial backfill finish before judging anything. Multi-year histories take a while.
- Add the MCP connector to your AI client of choice and confirm the tools appear.
- Run one verification question whose answer you already know, so you can tell whether the connection is live.
- Connect a second source if you have one, since the cross-source questions are where this stops being a novelty.
- If you want sessions on the watch, ask for a structured run or ride and check it appears in your Suunto calendar for the right date.
- Ask specific, lap-level and trend-level questions. That is what the connection bought you.
Your watch has been recording every session in enough detail to answer almost anything you would want to ask it. The only thing missing was a way for the model to read it. Start a 7-day free trial and stop describing your training to something that could just look.