Who this is for
The order of things
Who does what, and when. Orange is you, green runs on its own, blue is your AI.
- Install the app. App Store soon It is in testing now.
- Pick a folder. Anything the iOS Files app can see: iCloud Drive, Dropbox, Google Drive, OneDrive, Proton Drive, a NAS, local. The one rule: your AI has to be able to reach the same folder, so pick one that syncs to the computer where the AI runs.
- Allow Health access (read only, you choose the types) and notifications (one kind only: "Your AI wrote S27", when a plan arrives).
- Give the MCP to your AI. Paste one paragraph, it sets itself up from these docs. Details below.
- You end a workout on the Watch.
- Next time the phone is unlocked, the app writes
workouts/2026-05-14_0712_PoolSwim_7A1C3E90.jsoninto the folder: distance, time, heart rate every few seconds, every interval with its name, every length with stroke and SWOLF. Vitals land once a day. - The folder syncs to your computer.
- Your AI reads it. No app on that side.
- Rate the session on your Watch when it asks. Effort is the one number nobody else can measure, and it turned out to matter more than heart rate. Apple exports your Effort score and the app picks it up; the app itself never asks.
- When your AI has written a plan: tap "Put on Watch".
- Reads sessions, vitals and trends through the MCP, or reads the JSON directly. The folder is the API.
- Writes
plans/S27.json. It shows up in the app within a minute. - Works without the MCP too: the folder also holds
briefing.md, a one-page summary any AI can read. Upload it to ChatGPT, drop it in a Claude Project, mail it to a coach.
Two honest limits, both Apple's. Health data can only be read while the phone is unlocked, so a workout finished with the phone in the bag exports the next time the phone is unlocked, not before. And the Watch keeps its own pool length setting, the plan can't set it.
Connect your AI, first thing
The MCP is the product. The app's onboarding ends on this screen, the README starts with it, and these docs are written so an AI can read them and do the setup itself.
Paste this to your AI
Set up the Health Access MCP for me. Docs for you: https://healthaccessmcp.com/llms.txt The server runs with: npx -y healthaccess-mcp It finds my Health Access folder on its own. Register it in this app, then list my last 5 workouts.
That is the whole onboarding for the AI side, the same for everyone. llms.txt and llms-full.txt carry the setup per client, the file schemas, the tool list and the plan format. The app puts this paragraph on your clipboard, with your folder's name in it in case the search needs a hint.
Or by hand
claude mcp add --scope user healthaccess -- npx -y healthaccess-mcp
{ "mcpServers": { "healthaccess": { "command": "npx", "args": ["-y", "healthaccess-mcp"] } } }
The first line is Claude Code, the second is the config entry for Claude Desktop, Cursor, LM Studio and most other hosts. Needs Node.js 18 or newer. The server finds your folder in iCloud Drive, Dropbox, Google Drive, OneDrive, Box or ~/Documents; --dir names it yourself. One page per client: Claude Code, Claude Desktop, Cursor, ChatGPT, local models.
What the AI gets
| Tool | Does |
|---|---|
| list_workouts | Compact rows, newest first. One line per session, written for an LLM. |
| get_workout | One session in full: every interval with its name, pace and heart rate, zone seconds, lengths, recovery heart rate, your effort rating. Heart-rate series only if asked. |
| get_vitals | Resting heart rate, HRV, sleep, weight, steps, VO2max by day. |
| training_summary | Per week: volume, sessions, easy-zone share, mean effort, and the cardiac cost trend (beats per 100 m). |
| rate_workout | Stores the effort you told the AI. The AI must ask you, never guess. |
| push_plan | Validates a session (labels under 40 characters, zones 1 to 5) and writes it to plans/. Then the app, then your Watch. |
| get_plan_status | Whether the app has put a plan on the Watch yet: pending, scheduled, failed or cancelled. |
| list_plans | Every plan in plans/ with its state, newest first. |
Arguments, return shapes and the heuristics behind the derived numbers are in the tool reference. The server also exposes the index and every workout as MCP resources (healthaccess://index, healthaccess://workout/<id>) and the same data through the healthaccess command line.
The app, three screens
Status, the two things only you can do, and the door for your AI. That is the whole app. No screenshots yet; the app is pre-release. Here is what each screen holds.
Home
- One sentence says whether it works: "Up to date, 14 sessions in your folder, last check 2 min ago."
- The orange card is the one thing a human has to do, and it is one tap: "Your AI wrote S27" with Put on Watch and See parts. Ratings come from your Watch; the app never asks for one.
- "Connected · Claude Code on Alex's MacBook Pro · last seen 2 min ago" when an AI has read the folder in the last week; "Not connected yet" before that.
- The "Your AI" card copies the setup message with your folder path filled in. Paste it to Claude, ChatGPT or Cursor on your computer.
- Files are a plain list (sessions, vitals) with Share. No charts.
Onboarding, four screens
- What it is.
- Pick a folder, any Files provider, with the one rule about reaching it from your computer.
- Allow Health and notifications (one kind: your AI wrote a plan).
- Connect your AI: "This app only writes the files. Your AI reads them on your computer." One button copies the setup message; the other says "I'll do it later".
Each screen has one sentence of why and one button.
Settings
- Files: folder, Health access (the types you allowed), notifications.
- Sessions: what "Put on Watch" means (schedule for the next day, or Apple's Add to Watch sheet).
- Trust: "What left this phone", a real screen that is always empty because there is no server. Usage statistics, off until you flip them: which features you use and whether they worked, never a health value, never a file name. The sync log, every background wake and what it wrote.
- About: the version.
Ideas for your AI
Six prompts, suggestions only, not part of the setup. Each one makes the AI ask first, then read the data, then act. A plan written without asking how you feel is a guess with formatting. Full text of all six.
Build my next swim session
Build my next rowing session
Weekly check-in
Explain my last session
Am I overdoing it?
Prepare this for my coach
Compared with the others
Four other ways to get Apple Health data to an AI exist. The differences that matter: where the data lives, whether you need an account, and whether anything goes back to the Watch. The full table, with prices and what we could not confirm.
| Product | Where your data lives | Account | Plans back to the Watch | Open source |
|---|---|---|---|---|
| Health Access MCP | A folder you choose, on your own storage | None | Yes (WorkoutKit) | Yes, MIT (server and CLI) |
| Health Auto Export | Destinations you pick (files, REST, MQTT) plus a read-only MCP server over your network | None | No; its MCP server is read-only per its listing | No |
| HealthPipe | Their servers in Germany | Yes, Sign in with Apple | No, read-only | Not stated |
| Health MCP: Private Sync | Their encrypted cloud with a trusted execution environment | Yes | Not found in its listing | Not stated |
| Health Bridge for AI | A receiver you run on your own computer | None | No, read-only | Yes |
Questions people type
How do I get Apple Health data into Claude?
Install the Health Access app on your iPhone, pick a folder that syncs to your Mac, allow Health access. After every workout the app writes a JSON file into that folder. Then register the server once: claude mcp add --scope user healthaccess -- npx -y healthaccess-mcp for Claude Code, or the JSON snippet for Claude Desktop. Claude can then list workouts, read a session, read vitals and write a plan. Without the MCP, the folder holds plain JSON and a one-page briefing.md you can drop into a Claude Project.
Does it work with ChatGPT?
Through the files, yes. Through the MCP, not today. ChatGPT connects to MCP servers at an HTTPS URL, on some plans only, and does not start a program on your Mac. Health Access MCP is a program on your Mac that talks over stdio. So with ChatGPT you upload the briefing or the workout JSON, or paste what the healthaccess command prints. What is true today, and the two paths.
Where does my data go?
Into the folder you picked, and nowhere else. There is no server and no account. The folder syncs through the storage provider you chose, which is your account with them, not ours. Usage statistics are off until you turn them on; when on, they carry event names and counts, never a health value, a file name or a path. The exact event names.
Why does it need my phone unlocked?
Apple only lets apps read Health data while the iPhone is unlocked. iOS wakes the app the moment a workout is saved, but if the phone is locked in a bag the export waits until the phone is unlocked again. The app says so instead of pretending.
Can it write workouts to my Apple Watch?
Yes. Your AI calls push_plan, which writes plans/<id>.json into the folder. The app turns it into a WorkoutKit custom workout with the step names on your wrist and puts it on the Watch, scheduled for a date or through Apple's "Add to Watch" sheet. Limits: pool swim and indoor rowing today, step labels under 40 characters, step names need iOS 18, and the Watch keeps its own pool length setting. The plan format and the flow.