Why can't we just connect a garmin watch (or edge or gps) to our ai machine, have it extract all the data with MTP or garmin format, and keep it local. Then ask questions.
Honestly I've been wondering if in the near future I can basically have a big machine and some sort of "ingest" program.
Then keep connect my devices to it, where it will backup all the data, and mine the backups for information I want.
Mine my iphone backups for text messages or contacts
mine all my devices for photos or videos
mine my watch or bike computer or gps or whatever else for where I've been and how I've exercised.
instead, everyone wants your data and imposes themselves in the middle.
You can literally connect your Garmin to your computer via USB and drag-and-drop the raw activity files and analyze them if you want. Works totally fine. But Garmin's cloud sync is convenient and cloud processing adds data like elevation (by cross-matching GPS to topo data).
This wouldn't sync over any of the data points that are calculated by the device, VO2 max, various sleeps cores, etc. Probably a good thing as those things are rarely all that useful.
That only gives you the activities though, doesn't it? Not the 24/7 metrics the device is also collecting outside of started/stopped activities.
I've been trying to get developer access to my watch, but seems for months the Garmin Developer Program doesn't seem to accept any "requests". The only thing I've seen working, is the full account export, but that takes ~3 days for me from pressing the button until I get the email. Besides that, syncing via Bluetooth and reverse-engineer their own protocol that runs there, seems to be the only way, sadly.
GPS traces recorded on a watch can be pretty noisy. If you stand in the same spot for a while, you're not going to get the exact GPS position recorded for the entire time you're there. The same happens when you move, it's not a smooth trace.
Strava (and I assume to some extent Garmin) apply some smoothing to these raw GPX traces to try and improve the path, or remove some of the noise.
You'd be missing out on this post-processing by taking the data raw. Ofc you can implement something similar yourself, but I wanted to point out that these platforms are doing a little bit more than just displaying the GPX trace.
I wander often on many smartwatch/sport tracking forums/subreddits, and it's fairly frequent that people ask how to deal with smoothing and get back raw data. Some love how Garmin smooths out a race track run for them and make gps trail stick perfectly to a lane. Some pull their hair out seeing their lake run being smoothed out to make it look like they jumped over fences and private properties.
I often find my garmin traces confusing as well, it's not objectively better.
When parsing high end Garmin and Apple fit files, it appears a lot of their smoothing is done before writing to the fit file. They’re in a very workable state straight out of the gate.
Main problem is the sync and getting to the data.
Speaking from experience here, been working on something for a while.
This is the current state of the product pitch:
fyi - most of the functionality already working, but the key factor is how to get the data from the vendors.I currently rely on run-gap but i realise this is not a long-term solution.
Last time i have checked intervals icu api I just couldn't stop throwing up for a few days -but this might be better in the mean time.
long term solution is to have something like rungap, server side without the ridiculous fees some of the vendors charge (terra, rook,...)
if anybody wants to test what I currently got, or just has some feedback - let me know.
If you do local sync, can you work with the files directly? I.e. if I don't want to upload to garmin connect, can I just tell Claude to use an API or reverse engineer the files? I've had a venu 4 for a few months, and finished my connect+ trial, and want to setup my own analytics.
I just connected my Garmin watch to charge via usb, enabled disk access, going into folder GARMIN/Activity/ and uploaded one of the .fit files to claude web and asked a summary and graph, it seems I had a nice evening bike ride that day :)
Which "Using an unofficial Garmin MCP" were you using? and which problems you encountered that made you move on?
I've been using taxuspt/garmin_mcp[0] via claude desktop and recommend it. It reads my data and it is able to create and schedule workouts. I've decided to fork it because it was not able to create the type of workouts that i wanted (swim, bike, run and gym) and it also pushes into my garmin calendar which syncs directly to the watch/gps unit).
Claude's official strava connector[1] is able to read the data (garmin -> strava -> claude), yes. But my point of view for strava is that it's not really meant to be for workouts - it's a social media to give/receive kudos and see what your friends and 'influencers' are doing (i'm not really interested). All the metrics of cadence/vertical oscilation/sleep, for example, are not synced to strava and therefore not accessible.
Claude (Opus5.5Medium) with "Claude in Chrome" can scan your activities in Strava and Garmin Connect websites and download GPX files without use of an MCP (perhaps not as quick).
I've found it can also give quite good suggestions for what kind of run to do after looking at my previous weeks activities on the Strava website.
At the moment I'm a happy user of Tredict (https://www.tredict.com/app/). It sits between Garmin Connect and my ChatGPT (they have a ChatGPT connector). Works just great for the training data - in seconds after finishing my training, it's also visible to my ChatGPT, with all the details like intervals, heart rate etc. It's a paid tool, but they offer a 2-month free trial so it's easy to validate for a given use case (and get dependent on it too. :) ).
No, I'm not affiliated with Tredict :) (but if you guys are reading it, good job)
There’s an unofficial Garmin connect Home Assistant extension, playing along with Prometheus exporter you can get a quite impressive dashboard. That’s what I did.
I love it as it supports some weird devices that were abandoned or require Chinese data residency for them to sync.
How is it working for you in Garmin for sleep tracking? I tried it a few years ago and loved it at first, but then noticed how incorrect sleep data was.
I've created a "running coach" agent that does something similar. It basically exports Garmin's data using the unofficial API into a sqlite db. Then, the agent has some tools to query the data directly in the database with SQL. It works pretty well.
> Imagine how great an Instagram MCP would be. You could create your own feed algorithm (such as the OG algorithm: just pictures from friends based on when they posted). Users would be able to filter out all the influencer content and ads Instagram throws on them. But Instagram would never do this.
This is why I don't understand why MCPs (or in other words open documented APIs right?) are being pushed so much.
What's the value in e.g. Amazon opening up their APIs to competitors, lowering the cost of scraping their data? Or allowing their consumers to more easily analyze dynamic pricing? Isn't the whole point to steer people towards closed proprietary apps that work in walled garden that prevent reverse-engineering and any kind of modification?
I would like the reverse of an MCP, a protocol so that everyday apps can push notify (given my authorization) my agents on specific events
For example after I complete a run on Strava I want my agents to know about it, they already have all the context, they know what weekly volume I'm aiming for and what I'm training for
I've recently done something simliar but for creating strength workouts via Claude.
The web and mobile based workout builder has a terrible UI if your workout changes between sessions so I've lifted some features from an app called liftosaur and got it to send activities to my watch. Unfortunately Garmin don't seem to care very much about strength training, so are missing a lot of pretty key exercises from their list, with no ability to create custom ones
We use a neural network to predict maintenance calories.
We actually operate a MacroFactor competitor: MacroCodex (which is completely free).
https://macrocodex.app/ we've like 17,000+ users so far.
It adapts much faster than MacroFactor, and it's completely free of subscriptions and ads.
Guaranteed weight gain or loss within 2-3 weeks, consider reading reviews if in doubt, many people will see results from the very first week on macrocodex!
Many people waste their time by adding "calorie burn" from different activities by tracking all of them individually in smartwatches or fitness bands.
I've been using the unofficial Garmin APIs as well, but instead of an MCP I wrote an app that waits until my watch syncs after I wake up and then grabs all of yesterdays data and puts it into a Notion db.
It's been working great. The Claude morning brief compares my sleep, HRV, training status, calendar, and weather and then tells me when and how hard to workout that day.
I sync Garmin activities to Strava then use the Strava API in Claude Code. Although I think Strava just came out with an MCP. This works great but doesn't access things like sleep which I didn't need anyways
Its funny because I literally just used it, opened HN, then saw this post
I'm more terrified about how much (personal) data people are feeding commercial LLMs. You send Claude your Garmin data and Anthropic will keep it for literally years. And then probably hand it over to law enforcement as soon as a subpoena hits.
I've been using a local LLM (Gemma) to tag my personal documents (invoices, receipts, etc.) and there's no way I'd ever send that data to Anthropic or OpenAI.
Honestly I've been wondering if in the near future I can basically have a big machine and some sort of "ingest" program.
Then keep connect my devices to it, where it will backup all the data, and mine the backups for information I want.
Mine my iphone backups for text messages or contacts
mine all my devices for photos or videos
mine my watch or bike computer or gps or whatever else for where I've been and how I've exercised.
instead, everyone wants your data and imposes themselves in the middle.
[0]: https://www.goldencheetah.org/
I've been trying to get developer access to my watch, but seems for months the Garmin Developer Program doesn't seem to accept any "requests". The only thing I've seen working, is the full account export, but that takes ~3 days for me from pressing the button until I get the email. Besides that, syncing via Bluetooth and reverse-engineer their own protocol that runs there, seems to be the only way, sadly.
Strava (and I assume to some extent Garmin) apply some smoothing to these raw GPX traces to try and improve the path, or remove some of the noise.
You'd be missing out on this post-processing by taking the data raw. Ofc you can implement something similar yourself, but I wanted to point out that these platforms are doing a little bit more than just displaying the GPX trace.
Interesting article (which I think is relevant)
I wander often on many smartwatch/sport tracking forums/subreddits, and it's fairly frequent that people ask how to deal with smoothing and get back raw data. Some love how Garmin smooths out a race track run for them and make gps trail stick perfectly to a lane. Some pull their hair out seeing their lake run being smoothed out to make it look like they jumped over fences and private properties.
I often find my garmin traces confusing as well, it's not objectively better.
https://claude.ai/artifact/162zJUVejDdrAAw6yz9ETs
fyi - most of the functionality already working, but the key factor is how to get the data from the vendors.I currently rely on run-gap but i realise this is not a long-term solution. Last time i have checked intervals icu api I just couldn't stop throwing up for a few days -but this might be better in the mean time.
long term solution is to have something like rungap, server side without the ridiculous fees some of the vendors charge (terra, rook,...)
if anybody wants to test what I currently got, or just has some feedback - let me know.
They charge an absolute fortune.
but a lot of these folks are uploading everything to garmin connect and letting it have your data and do the work.
I've been using taxuspt/garmin_mcp[0] via claude desktop and recommend it. It reads my data and it is able to create and schedule workouts. I've decided to fork it because it was not able to create the type of workouts that i wanted (swim, bike, run and gym) and it also pushes into my garmin calendar which syncs directly to the watch/gps unit).
Claude's official strava connector[1] is able to read the data (garmin -> strava -> claude), yes. But my point of view for strava is that it's not really meant to be for workouts - it's a social media to give/receive kudos and see what your friends and 'influencers' are doing (i'm not really interested). All the metrics of cadence/vertical oscilation/sleep, for example, are not synced to strava and therefore not accessible.
[0]: https://github.com/taxuspt/garmin_mcp [1]: https://claude.com/marketplace/connectors/strava
I've found it can also give quite good suggestions for what kind of run to do after looking at my previous weeks activities on the Strava website.
No, I'm not affiliated with Tredict :) (but if you guys are reading it, good job)
How is it working for you in Garmin for sleep tracking? I tried it a few years ago and loved it at first, but then noticed how incorrect sleep data was.
See also: the OG App : https://techcrunch.com/2022/09/27/og-app-promises-you-an-ad-...
This is why I don't understand why MCPs (or in other words open documented APIs right?) are being pushed so much.
What's the value in e.g. Amazon opening up their APIs to competitors, lowering the cost of scraping their data? Or allowing their consumers to more easily analyze dynamic pricing? Isn't the whole point to steer people towards closed proprietary apps that work in walled garden that prevent reverse-engineering and any kind of modification?
Not a great example considering how easy it is to get Amazon data from both official and unofficial APIs (which is very cheap at scale)
For example after I complete a run on Strava I want my agents to know about it, they already have all the context, they know what weekly volume I'm aiming for and what I'm training for
The web and mobile based workout builder has a terrible UI if your workout changes between sessions so I've lifted some features from an app called liftosaur and got it to send activities to my watch. Unfortunately Garmin don't seem to care very much about strength training, so are missing a lot of pretty key exercises from their list, with no ability to create custom ones
For example, if you want to track your maintenance calories (TDEE, total daily expenditure), Garmin isn't going to be much useful.
Why not?
I add them to a spreadsheet along with other metrics I've been collecting manually for a long time, like tape, caliper measurements etc.
I do it weekly and then ask Claude to analyse the sheet.
It's super manual but just once a week and it can be really helpful / spots insights I often miss like how sleep affected something etc.
We actually operate a MacroFactor competitor: MacroCodex (which is completely free). https://macrocodex.app/ we've like 17,000+ users so far.
It adapts much faster than MacroFactor, and it's completely free of subscriptions and ads.
Guaranteed weight gain or loss within 2-3 weeks, consider reading reviews if in doubt, many people will see results from the very first week on macrocodex!
Many people waste their time by adding "calorie burn" from different activities by tracking all of them individually in smartwatches or fitness bands.
It's been working great. The Claude morning brief compares my sleep, HRV, training status, calendar, and weather and then tells me when and how hard to workout that day.
Its funny because I literally just used it, opened HN, then saw this post
This works perfectly for me. Couldn't be happier.
https://coros.com/stories/coros-metrics/c/mcp-testing
https://github.com/CodeWithCJ/SparkyFitness
I've been using a local LLM (Gemma) to tag my personal documents (invoices, receipts, etc.) and there's no way I'd ever send that data to Anthropic or OpenAI.