Garmin collects a huge amount of health and training data, then shows it back as charts. I wanted answers instead. So I built an MCP server that lets any AI assistant read my Garmin data and answer questions about it, either on my own computer or from my phone straight after a run.
Years of sleep, heart rate and training data, and no good way to ask it a question.
Garmin Connect is built for looking at charts, not answering questions like "Am I ready to train hard today?" or "How much of my running is easy vs hard?".
Most Garmin MCP servers predate Garmin's official Personal API. They log in with an email and password, call private web endpoints, break whenever Garmin changes its login or MFA, and run only on the machine they are installed on, so they never reach web or phone apps. If that password leaks, so does the whole Garmin account.
A basic one-tool-per-endpoint wrapper is no better: Garmin returns 100+ fields per activity and a heart-rate reading every two minutes, so five months of runs comes back as around 190,000 characters, which is slow and expensive for a model to read.
Use the official API, do the heavy lifting in the server, and let people choose where it runs.
The server calls Garmin's official Personal API with a revocable, expiring key, never a password, and every tool is a fixed, read-only request.
Rather than mirroring endpoints, it answers common questions in one call: readiness, wellness trends and training summaries are fetched, joined and aggregated before the model sees them.
It splits long date ranges around Garmin's 28 and 31-day limits and fetches them in parallel, resolves periods like "last month" in the user's own time zone, caches data once it has settled, returns partial results when one source fails, and computes what Garmin's API leaves out, such as an acute:chronic training load ratio and weekly time in heart-rate zones. For a single run it goes further: it reads the activity file from the watch and returns per-km splits, laps, best efforts from 1 km to marathon, and how much heart rate drifted from the first half to the second, as a few kilobytes of tables rather than thousands of raw samples.
The same 26 tools and 5 prompts then run in two ways. Locally, the user's AI app starts the server on their computer with nothing listening on the network, and installing it is one line: npx -y garmin-mcp. In the cloud, it runs on the user's own Cloudflare Worker behind GitHub sign-in and OAuth 2.1, locked to a single GitHub account, so it works in Claude and ChatGPT on the web and on a phone.
Questions about health and training answered in one call, on any device, at no extra cost.
Five months of runs now comes back as about 1,000 characters instead of 190,000, so answers are fast and cheap in tokens. In the recording below, Claude on a phone projects a 10k race time from recent runs, all from one plain-English question.
The 26 read-only tools cover every endpoint in Garmin's Personal API, including the activity file, and ready-made prompts for readiness, sleep, training reviews, weekly check-ins and session comparisons make it useful from the first question.
People who only use Claude Desktop, Claude Code or Cursor can be running locally with one line, and those who want it on their phone or in ChatGPT can deploy the cloud version in about 20 minutes, with nothing to migrate between the two. Both use the AI subscription the user already has and cost nothing to run, and Garmin data goes straight from Garmin to the user's own computer or Cloudflare account, with no third-party service storing it.
The project is open source under the MIT licence, with every deploy gated on type checks, unit tests and an end-to-end test of the full OAuth and MCP flow. It's published on npm and listed in the official MCP Registry.
The same pattern works for any business with valuable data stuck behind an API or a dashboard: make it answerable in the AI tools your team or customers already use, securely and without a rebuild. If that's you, let's talk.
A 30-minute chat, no pitch deck. Directly with Colin, no middlemen. Honest advice on fit, scope and cost.
Select a date