garmin-mcp
Provides tools for interacting with Garmin Connect, enabling triathlon training management: daily health metrics, activity analysis, training load, sport-specific analysis (running, cycling, swimming, strength), and structured workout creation.
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-mcpHow's my training load looking this week?"
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-mcp
A privacy-focused Garmin Connect MCP server for triathlon training. ~47 tools covering daily health metrics, activity analysis, training load, running, cycling, swimming, strength training, and workout creation — plus triathlon-specific analysis (brick workouts, sport volume balance, cross-sport fitness snapshots).
Deployed as a remote MCP server over HTTPS. Connects to Claude Desktop or Claude Code via the streamable-HTTP transport.
One-Time Auth Setup
Run this locally once to generate tokens:
Install locally:
pip install -e .Authenticate with Garmin:
garmin-mcp-authSaves tokens to
~/.garminconnect/garmin_tokens.jsonand prints the base64 export command.Copy the printed
GARMIN_TOKENS_JSON=...value — you'll need it for the secrets step below.
Deploy to Fly.io
Prerequisites: flyctl installed and authenticated (flyctl auth login).
Register the app name (first time only):
flyctl apps create garmin-mcpIf
garmin-mcpis taken on Fly.io (global namespace), use a unique name likegarmin-mcp-yournameand update theappfield infly.tomlto match.Set secrets:
flyctl secrets set \ GARMIN_EMAIL=you@example.com \ GARMIN_TOKENS_JSON=<base64-from-auth-step> \ MCP_AUTH_TOKEN=$(openssl rand -hex 32)Save the generated
MCP_AUTH_TOKENvalue — you'll need it for the Claude Desktop config.Deploy:
flyctl deployVerify:
curl https://garmlink.fly.dev/healthExpected:
{"status":"ok"}
Auto-Deploy via GitHub Actions
After the first manual deploy, subsequent pushes to main auto-deploy via GitHub Actions.
Add FLY_API_TOKEN to your GitHub repo secrets:
flyctl tokens create deployCopy the output, then go to: GitHub repo → Settings → Secrets and variables → Actions → New repository secret → name it FLY_API_TOKEN.
Claude Desktop Config
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"garmin": {
"url": "https://garmlink.fly.dev/mcp",
"headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
}
}
}Replace <MCP_AUTH_TOKEN> with the value you set in the secrets step.
Coaching Skills
Run these slash commands from this project directory in Claude Code:
Command | Purpose |
| Daily readiness briefing (HRV, sleep, body battery) |
| Weekly training load and sport balance review |
| Pre-race fitness assessment across all disciplines |
| Guided structured workout builder → pushes to Garmin |
Environment Variables
Variable | Description |
| Your Garmin Connect email |
| Base64-encoded token file (from |
| Bearer token protecting the MCP endpoint |
| Server port (default: 8000, set automatically by Fly.io) |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.
List, fetch, create, edit (replace), delete and schedule structured workouts on Garmin Connect (runn
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/knahsirV/garmin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server