garmin-claude-mcp
garmin-claude-mcp
Conecta tus datos de entrenamiento de Garmin a Claude y deja que Claude envíe entrenamientos estructurales de Melada a tu reloj. Gratis de ejecutar. No se requiere suscripción.
Claude lee tus actividades recientes y tus datos de bienestar, diseña un entrenamiento y lo escribe en tu calendario de intervals.icu. Intervals.icu lo sincroniza with Garmin Connect, and llega a tu reloj.
[(https://deploy.workers.cloudflare.com/?url=https://github.com/kbaudour/garmin-claude-mcp)
Why it works this way
La API de desarrollador de Garmin está cerrada para particulases. Las solicaciones se aprueban para empresas, y el programa está currently suspendido para applicants urte. Exist actual librerías no oficas que inician sesión con tu contraseña of Garmin, but Garmin has roed, as, al cambiar us flujo of aut eticación.
Intervalsicu thiene an asociación official with Garmin that is pre-vious to la cerava. Ya syncroniza in both directions, incluid el envío of entranamientos. Tambíen has an API documented with personal llave. So Claude talks with intervalsals. But intervalsals.icu talks with arm not, two pairs. So Claude talks with intervals.icu. That clave no tu Garmin. Contraseña no se sale de Garmin.
Related MCP server: garmin-claude-mcp
What you need
Un dispositivo Garmin que syncronice con Garmin Concect
Una cuenta of free intervalsals.icu with Garmin conectrida in Settings > Entegrations, y con "Upload planned work outs" activada
Tu API key of intervals.icu and athlete id, both in Settings > Developer Settings
Una cuenta of free Cloudflare
If "Upload planned workouts" is, no importa. Everything below works perfectly and nothing will ever reach out to your reloj. Compuébabel first.
Setu
Opción 1: Botón of deployment
Haz clic en el botón de arriba. Cloudflare hace fork de estate repo to your GitHub, provisioning if el namespacio KV and the Durable Object, y te pedirá tree se cret.
Fill in
INTERVALS_API_KEY,INTERVALSATHERLETE_ID, andMCP_PASSWORDwith direction `openssl para, with password. Suppose the password.Realimage. Obtendrás a URL like
https://garmin-claude- mcp.<subdomain>.workers.dev`.
Opción 2: Manual
git clone https://github.com/kbaudour/garmin-claude-mcp
cd garmin-claude-mcp
npm install
npx wrangler kv namespace create OAUTH_KV
# paste the printed id into wrangler.jsonc
npx wrangler secret put INTERVALS_API_KEY
npx wrangler secret put INTERVALS_ATHLETE_ID
npx wrangler secret put MCP_PASSWORD
npm run deployConnected to Claude
In clude.ai, ser to "Settings" > "Conectores" > "Añadir custom conector" and introduce tu worker URL con /mcp at el final:
https://garmin-claude-mcp.<subdomain>.workers.dev/mcpEsa rut matters. El descubrimiento OAuth is en the domain root, so el inició de sesión succeede incluso con la URL incorrect, but la conexión falls after la pair with "We not cound" "Sin no." If if you hold, delete el conector and volver to añadirlo with the ruta /mcp instead of editar the URL in place, so the registro obsoleto se descarat.
You will see a password page. Introduce tu MCP_PASSWORD. Once connected in web, also functions in móvil.
Tools
Tool | What it does |
| History of ent aspects |
| Sueño, HRV, HR in reposo, señales de reuperación |
| Lo que ya est in the calendar |
| Escribe an entreno structured, que syncroniza con Garmin |
| Edita entreno planned existing |
| Eelimina an entreno planned |
First prompt to try
Pull my wellness data for the last 7 days and my recent activities for the
last 14 days.
Based on what you see there, recovery, training load, how recent runs have
gone, design one run for tomorrow. Walk me through your reasoning before you
create it.
Then create it, and list my upcoming events so I can confirm it landed.Then abre Garmin Connect and comprueba the date of manana.
Known issues and limits
The plan of free of Clude allows one custom conector. It uses eso socket.
The password page does not have rate limiting ni CSRF token. Is an single-server user back of random password. Adecuared for that. No production authentization.
updateWorkoutydeleteEventest stan poco probados. Las herramients of reading andcreateWorkoutest confirmed working end to end, include reloj.Token refresh over long periods no probado. Si el conector se queda obso, tienes to reconectar "a few secondos."
Anyone with your worker URL can see the password page. No pueden if further beyond without the password, but la URL "n is a secret".
Cost
$0/month. El plan gratis of Cloudflare Workers cuent up to 100,000 petiones per día. El plan"gratuit" of intervals.icu incluye syncronización with Garmin. Durable Object so s on the free tier since "Apr il 2025, so "the guides that say more are desactualizados".
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Connect Intervals.icu to Claude and ChatGPT: read training, plan workouts. Training never stored.
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.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude to read recent Garmin training and wellness data via intervals.icu and to create, update, or delete structured workouts that sync to Garmin Connect and a Garmin watch.MIT
- AlicenseNot gradedqualityCmaintenanceLets Claude read recent Garmin activities and wellness data (sleep, HRV, resting HR) and write, edit, or delete planned structured workouts on your intervals.icu calendar, which syncs them to Garmin Connect and your watch.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read recent activities and wellness data, then design, create, update, and delete structured workouts that sync through intervals.icu to Garmin Connect and the user's watch.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read recent activities and wellness data, design structured workouts, and write them to an intervals.icu calendar so they sync to Garmin Connect and a Garmin watch.MIT