Garmin Coach MCP
Provides tools for accessing Garmin Connect data including HRV, sleep, body battery, stress, running dynamics, pacing, HR data, training load trends, volume, intensity distribution, recovery quality, VO2max trend, race predictions, PRs, and more. Allows AI coach to perform morning check-in, post-run debrief, weekly review, and goal tracking.
Click on "Install 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 Coach MCPMorning check-in. API key: abc123"
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 AI Coach — MCP Server
A fully cloud-hosted MCP server that gives Claude direct access to your Garmin Connect data. Runs free on Vercel + Upstash. Works on any device — laptop, phone, tablet.
What it does
Morning check-in: Claude reads your HRV, sleep, body battery, and stress, then tells you whether to train hard, go easy, or rest — with actual reasoning.
Post-run debrief: Analyzes running dynamics (cadence, ground contact time, vertical oscillation), pacing, and HR data.
Weekly review: Training load trends, volume, intensity distribution, recovery quality.
Goal tracking: Progress toward sub-38 10km via VO2max trend, race predictions, PRs.
Coach profile: Claude interviews you over a few sessions to build deep knowledge of your training history, goals, injury history, and preferences — then uses it every session.
Stack (100% free)
Service | What it does | Cost |
Vercel hobby | Hosts the MCP server | Free |
Upstash Redis | Stores Garmin tokens + cached data + coach profile | Free (10k req/day) |
garminconnect 0.3.4 | Talks to Garmin Connect API | Free |
claude.ai Pro | Your AI coach brain | Your existing plan |
Deploy in 5 steps
Step 1 — Fork and deploy to Vercel
Fork this repo to your GitHub account
Go to vercel.com → New Project → Import your fork
Vercel auto-detects Python. Click Deploy.
Note your deployment URL:
https://your-project.vercel.app
Step 2 — Set up Upstash Redis
Go to upstash.com → Create account → Create Redis database
In Vercel: your project → Storage tab → Connect Store → select Upstash Redis
This automatically injects
UPSTASH_REDIS_REST_URLandUPSTASH_REDIS_REST_TOKENinto your env vars
Step 3 — Set environment variables in Vercel
In your Vercel project → Settings → Environment Variables, add:
ADMIN_SECRET = some-random-secret-only-you-knowGenerate a strong random value, e.g. from 1password.com/password-generator. You'll need this once for setup, then you can forget it.
Click Redeploy after adding env vars.
Step 4 — Register yourself and connect Garmin
Install dependencies locally (one-time):
pip install httpxRun the setup script:
MCP_URL=https://your-project.vercel.app/api/mcp python scripts/setup.pyFollow the prompts:
Enter your
ADMIN_SECRETEnter a label for yourself (e.g. "Alex")
The script generates your API key — save it somewhere safe
Enter your Garmin Connect email and password (used once, then discarded)
Repeat for your friend — they run the same script with the same MCP_URL.
Step 5 — Connect to Claude
Open claude.ai on any device
Go to Settings → Connectors → Add custom connector
Name:
Garmin CoachURL:
https://your-project.vercel.app/api/mcpClick Add
Done. The connector is now available across claude.ai, Claude Desktop, and the mobile app.
First session
Start a conversation with Claude, enable the Garmin Coach connector, then paste your system prompt:
Open
COACH_SYSTEM_PROMPT.mdand paste its full contents into Claude → Settings → Custom Instructions.
Then say:
My API key is: [your-api-key]
Let's start my onboarding — interview me as my new coach.Claude will ask you questions one at a time, building up your athlete profile across the session.
Daily use examples
Morning:
Morning check-in. API key: [key]After a run:
Just got back from a tempo run. API key: [key] — debrief me.Weekly:
Weekly review please. API key: [key]Goal check:
How am I tracking for sub-38? API key: [key]For your friend
They need:
Claude account (free plan works)
Run
python scripts/setup.pywith the sameMCP_URLAsk you for the
ADMIN_SECRETto register their own API keyAdd the connector URL to their Claude account
Paste the system prompt into their custom instructions
Each person has completely separate data in Redis. No cross-contamination.
Security notes
Your Garmin email/password is sent once during setup, used to get OAuth tokens, then never stored
OAuth tokens are stored in Redis with a 1-year TTL and auto-refresh
API keys are stored as SHA-256 hashes in Redis — never the raw key
All traffic is HTTPS (Vercel enforces TLS)
The
ADMIN_SECRETis only needed for initial setup — share it with your friend briefly, then change it in Vercel env vars if you want to lock it down
Troubleshooting
"No Garmin tokens found": Re-run scripts/setup.py — your Redis tokens may have expired.
"Invalid API key": Double-check you're using the exact key from setup. Generate a new one if needed.
Timeout errors: The Vercel free tier has a 10s limit. Historical data tools (get_running_history with many weeks) may time out — try smaller date ranges.
Garmin login fails: Garmin sometimes blocks programmatic login. Try again after a few minutes, or check if your Garmin account has 2FA enabled (disable it temporarily for setup).
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ant-0n3/Garmin-Coach-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server