garmin-connect-personal-mcp
Syncs Garmin's official Personal API (sleep, HRV, stress, body battery, training, activities) into a local archive and exposes tools to describe the data, fetch a given day, compute trends, list and inspect activities, render charts, and trigger syncs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@garmin-connect-personal-mcpHow did I sleep last night?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
garmin-connect-personal-mcp
An MCP server that lets any AI assistant answer questions about your own Garmin data: sleep, HRV, stress, body battery, training and activities.
It syncs Garmin's official Personal API into a SQLite archive on your machine and serves it to Claude, ChatGPT, Gemini, Cursor, VS Code, Codex and any other MCP client.
Unofficial. This project is not affiliated with, endorsed by, or supported by Garmin. Garmin and Garmin Connect are trademarks of Garmin Ltd. or its subsidiaries.
Not medical advice. The data comes from consumer wearables. This server reports numbers and trends; it does not diagnose anything.
Status
Alpha. Syncing, the local archive and the stdio MCP server work and are tested on macOS, Linux and Windows. ChatGPT can connect through OpenAI Secure MCP Tunnel; see the ChatGPT guide. An optional Streamable HTTP mode is also available for self-hosted deployments.
Related MCP server: garmin-givemydata
Quickstart
You need uv and a Garmin Personal API key.
Install:
uv tool install git+https://github.com/braydenabo/garmin-mcpSave your key. Create one in Garmin Connect, then paste it at the hidden prompt:
garmin-connect-personal-mcp initDownload your data (the last 90 days; later runs pick up where they left off):
garmin-connect-personal-mcp sync --days-back 90Keep it up to date (optional, recommended). Garmin's API won't fill in old days on request, so a daily sync keeps your history complete:
garmin-connect-personal-mcp schedule installConnect your assistant. Run it without
--writefirst to see what it will change:garmin-connect-personal-mcp install-client claude-desktop --writeOther clients:
claude-code,cursor,vscode,gemini,codex. See docs/clients for each one.For ChatGPT, run the guided setup:
garmin-connect-personal-mcp setup-chatgptIt checks prerequisites and configures a private Secure MCP Tunnel. OpenAI account/workspace setup is required; see the ChatGPT guide.
On macOS, optional background startup keeps the tunnel running without an open terminal. Nothing is enabled automatically.
Ask: "How did I sleep last night?"
What you can ask
"Summarize my training and recovery this week."
"Is my resting heart rate lower than three months ago?"
"How has my weekly running distance built up since July?"
"Anything unusual in my HRV lately?"
"Show me my sleep stages for the last two weeks."
Ask to see your data ("show me my last 7 days of sleep") and apps that support MCP Apps (Claude Desktop, claude.ai, ChatGPT, VS Code) display an interactive chart. Elsewhere you get the same numbers as text.
The assistant uses seven tools: garmin_describe_data, garmin_get_day, garmin_get_trend, garmin_list_activities, garmin_get_activity, garmin_show_chart and garmin_sync. See docs/tools.md. Missing data is reported as missing, never as zero.
Troubleshooting
Run:
garmin-connect-personal-mcp doctorIt checks your API key, Garmin access, the local archive, recent sync errors and the daily schedule, and says how to fix anything wrong. The report contains no API key, health data or home folder path, so you can paste it into an issue as is. Add --offline to skip contacting Garmin.
Privacy
You run it yourself, with your own key. There is no hosted service, and your data never passes through this project.
Your archive and API key stay on your machine, outside this repository.
The only network calls go to Garmin's own API, to sync.
serve --read-onlyturns even that off.Tools never return your name, profile photos or GPS coordinates, even though Garmin's records contain them, so a cloud assistant isn't told where you live.
Development
uv sync
uv run pre-commit install
uv run pytestAGENTS.md has the commands and repo rules, for people and AI coding agents alike. To report a security problem, see SECURITY.md.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
Your Garmin, Oura, WHOOP, Hevy and 35 more fitness apps, queryable from your own AI.
Unofficial Garmin Connect access: sleep, HRV, training, activities, workouts and weight.
Related MCP Servers
- AlicenseBqualityAmaintenanceLocal-first MCP server that connects AI agents to your Garmin sleep, HRV, Body Battery, stress, training readiness and activities, keeping tokens on your machine.242125 npm13MIT
- AlicenseBqualityAmaintenanceDownloads all your Garmin health and fitness data into a local SQLite database and exposes 45 MCP tools for AI analysis, enabling assistants to query sleep, training load, HRV, and more.48129 PyPI164AGPL 3.0
- AlicenseAqualityAmaintenanceLocal-first Garmin data warehouse with an analysis-grade MCP server. Sync once, analyze forever, even when the API is down.13137 PyPI9MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that exposes your Garmin Connect data—sleep, HRV, training readiness, workouts, and more—to any MCP-compatible AI assistant. Runs entirely on your machine and keeps your Garmin credentials private.MIT