Garmin collects a huge amount of health and training data, then shows it back as charts. I wanted answers instead. So I built a remote MCP server that lets any AI assistant read my Garmin data directly and answer questions about it, on every device.
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 "Which day of the week do I sleep worst?". Existing Garmin MCP servers predate Garmin's official Personal API. They log in with an email and password, scrape private endpoints, break whenever Garmin changes its login, and only run on the machine they are installed on, so they never reach the AI apps on a phone. A naive API wrapper is no better: Garmin returns 100+ fields per activity, and 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 on the server, and lock it to a single person.
I built a remote MCP server on Cloudflare Workers that calls Garmin's official Personal API with a revocable key, behind GitHub sign-in and standard OAuth 2.1, so it works in Claude, ChatGPT, Claude Code, Cursor and VS Code on any device. Rather than one tool per endpoint, the server answers common questions in a single call: readiness, wellness trends and training summaries are fetched, joined and aggregated in the Worker. It splits long date ranges around Garmin's per-request limits, resolves periods like "last month" in the user's own time zone, caches settled data, returns partial results when one source fails, and computes things Garmin's API does not provide, such as training load and time in heart-rate zones. Each person deploys their own copy, and only their GitHub account can ever get a token.
Questions about health and training answered in one call, from 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. The 25 read-only tools cover every JSON endpoint in Garmin's Personal API, and ready-made prompts for readiness, sleep and training reviews make it useful from the first question. Hosting fits within Cloudflare's free plan, it uses the AI subscription you already have, and nothing needs to stay running. Garmin data goes straight from Garmin to the user's own server, with no third-party service storing it. The project is open source under the MIT licence, and anyone can deploy their own copy in about 20 minutes.
A 30-minute chat, no pitch deck. Directly with Colin, no middlemen. Honest advice on fit, scope and cost.
Select a date