Garmin runners · Claude and ChatGPT

Ask your AI assistant if you're ready to run.

Runner Readiness connects your Garmin to Claude or ChatGPT: how recovered you are, how every run went against your plan, heat and haze for the next one, and your race build-up. Ask in plain words and get answers, and charts, from your own numbers. Plus an optional email every evening about tomorrow.

Invite-only and free. Unofficial: not made by Garmin, Anthropic or OpenAI.

Your AI assistantRunner Readiness

Am I recovered enough for a hard run today?

readiness_snapshot
TodayRecovered
HRV58 msin your range
Resting HR47+1 vs usual
Sleep7h 42mscore 84
Body Battery81full charge

Yes. HRV is right in your normal range and you slept well, so today's 6 × 1 km at threshold is a go. Keep the recoveries easy.

What you can ask

A coach's first questions, answered from your own numbers.

Claude or ChatGPT calls Runner Readiness's tools when your question needs your data. It compares each day with your own normal, explains the signals behind a verdict, and says plainly when data is missing.

Recovery, in plain words

Sleep, HRV, resting heart rate and Body Battery against your own normal, with the reason behind the verdict, not just a colour.

Am I recovered enough for a hard run today?

Charts and overviews in the chat

Readiness, trends, taper and plan vs actual show up as cards right in the conversation, plus a one-look overview of your month.

Give me a monthly overview.

Today's session vs your plan

Knows what's on the plan and checks it against what you actually ran: hit, partly, missed.

Did I do what the plan said this week?

Weather and air for your runs

Heat stress and air quality for your usual run times, plus the last two weeks of air, so your AI assistant steers you to the better hour or the treadmill.

Should I run outside tomorrow evening?

Race week and taper

Days to go, how far your load has come down, and whether recovery is trending the right way.

Is my marathon taper on track?

Set up your plan in chat

Paste a plan, a table or a screenshot, or pull races and workouts from your Garmin calendar. Saved only after you say yes, with undo.

Here's my 16-week plan, set it up.

Fresh data right after a run

Syncs three times a day, and on demand when you've just finished, so “how did I do?” sees today's run.

Just finished my tempo. How did I do?

An evening briefing email

Optional, in Claude: your own Claude emails you tomorrow's session, whether to run outside, and your last run km by km.

Set up my evening briefing.
SleepHRVResting HRBody BatteryStressTraining loadRuns & lapsRace calendarForecastAir quality

How to join

Three steps, about two minutes.

It's invite-only: there's no public sign-up. Once you're in, history loads by itself.

  1. Open your invite link

    From the person who runs it. Choose your city for time zone and local weather, and optionally your next race.

  2. Log in with Garmin

    Once, on this site. Your last 60 days of Garmin data load in the background.

  3. Add to Claude or ChatGPT

    The last screen of your invite has both buttons. Claude opens filled in: Connect, then Allow. Then start a new chat and ask about today's run.

    https://run.xuanze.dev/mcp

    ChatGPT: on Plugins, + → Add custom MCP server. Server URL: this link. Authentication: OAuth. Then Create as a plugin, and type @ in a chat to use it.

    Claude by hand: Settings → Connectors → Add custom connector, paste this link.

Daily briefing · optional · in Claude

An email every evening about tomorrow's run.

Tomorrow's session, whether to run outside (heat, haze, storms), how your last run went km by km, your recovery and taper, in the same look as this page. Your own Claude sends it from your own Gmail; nothing extra is stored here.

  1. Connect Gmail in Claude

    Settings → Connectors → Gmail. Runner Readiness should already be there.

  2. Create a scheduled task

    In the Claude desktop app, a daily task in the evening, e.g. 20:30. Or just ask Claude: “set up my evening briefing”.

  3. Paste the prompt

    Put your email address where it says {YOUR_EMAIL}, then run it once to check the email arrives.

Scheduled task prompt
Every evening, email me my running briefing for tomorrow. This runs unattended: don't ask questions, just do it.

1. Call the Runner Readiness tool sync_now. If it says too_soon or fails, carry on.
2. Call evening_briefing and read it. Write three short coaching lines tied to what it shows (the last run's HR and pacing, tomorrow's session, recovery, taper, air and heat). If tomorrow is a rest day, make them recovery lines; if a race is 3 days away or less, race-prep lines. Add one tip. Never invent numbers.
3. Call briefing_email with watch_for = your three lines and tip = your tip.
4. Send it with the Gmail send_message tool to {YOUR_EMAIL}: subject = the result's subject, htmlBody = html, body = text. Sending is pre-approved for this task. Don't change the HTML.
5. Reply with one line: "Briefing sent: {subject}". If sending failed, reply with the error and the plain-text version.

The honest part

What happens to your data, and the risks.

Training guidance only, not medical advice. If something feels off, listen to your body over any number.

  • What it readsYour daily sleep, HRV, resting heart rate, Body Battery, stress, training load and runs from Garmin Connect, three times a day.
  • Your password is never storedYou type it only when you connect. It's used once to log in to Garmin. What's kept is a Garmin login token, so syncing works without your password.
  • Who can see your dataThe person who runs this server technically has access to everything stored. Nobody else does, and Claude or ChatGPT only sees what it asks for in your chats.
  • It's unofficialGarmin doesn't offer this kind of access to individuals, so this connects the way Garmin's own app does. That's against Garmin's terms: it can stop working without notice, and repeated logins can get an account flagged.
  • Leaving is easyAsk the person who invited you and everything (your data, the login token, backups) is deleted.