guide / updated September 2026
Connect Claude, Claude Code, Cursor or OpenClaw to Apple Health.
Two things are true at once in 2026. Claude and ChatGPT can both read Apple Health, and neither can do it anywhere except inside its own iPhone app. If the agent you actually use lives on a Mac, a Mac mini in a closet, a VPS, or a terminal, you need something on the phone to hand the data out. This page covers both halves.
1. What the built-in connectors do
Anthropic added an Apple Health connection to the Claude iOS app in January 2026, in beta for Pro and Max subscribers in the US. OpenAI's ChatGPT Health reached US users in July 2026 and includes the free plan. Both ask iOS for Health permission, pull what they need during a conversation, and are read-only.
| Claude connector | ChatGPT Health | Marrow | |
|---|---|---|---|
| Works in | Claude iPhone app | ChatGPT iPhone app | Any MCP client, any machine |
| Claude Code, Claude Desktop, Cursor | No | No | Yes |
| OpenClaw, Hermes, local models | No | No | Yes |
| While the phone is in your pocket | No | No | Yes, via the self-hosted mirror |
| Meal diary and set-by-set lifts | HealthKit totals only | HealthKit totals only | Yes |
| Numbers checked against Apple's own daily totals | No | No | Yes |
| Where your data goes | Anthropic, per chat | OpenAI, per chat | Stays on your phone or your box |
| Price | Pro or Max | Free | Free, MIT server |
Use the built-in connector if you only ever talk to the assistant on your phone and want a quick read. Use Marrow the moment the agent is somewhere else, needs to run on a schedule, or needs the detail behind the totals.
2. Why "iPhone app only" is not a policy choice
HealthKit is an on-device framework. There is no Apple Health server API, nothing a script on a Mac or a cloud function can call. Every desktop or server integration, including ours, is really an iOS app that reads HealthKit and serves it out. That is why a typical Claude Code setup ends up with a phone app pushing to a database and an MCP server in front of it.
3. The two-minute version: on-device MCP
Marrow runs an MCP server on the iPhone itself. Install the app, open Export, then Agents, turn the server on, and it shows a URL and bearer token. It answers while the app is open and your machine is on the same Wi-Fi or tailnet. Full instructions, including a prompt you can paste into any agent so it walks you through setup, are on the agent setup page.
4. The always-on version: self-hosted mirror
For Claude Code, Cursor, OpenClaw, or anything that needs your data while the phone is asleep, pair the mirror. It is one Python file with no dependencies, MIT licensed, and the phone's background pushes keep it current.
pip install marrow-mcp
marrow-server # prints a pairing link and the agent token
Open the pairing link on any screen, then in Marrow: Server, then Pair with a server, then scan. From then on the mirror keeps a SQLite copy on your hardware and serves the same seven tools at http://<server-ip>:8800/mcp.
Claude Code
claude mcp add --transport http marrow http://<server-ip>:8800/mcp \
--header "Authorization: Bearer <mcp token>"
Claude Desktop, Cursor, OpenClaw, Hermes, anything with an mcp.json
{
"mcpServers": {
"marrow": {
"type": "http",
"url": "http://<server-ip>:8800/mcp",
"headers": { "Authorization": "Bearer <mcp token>" }
}
}
}
Claude Desktop also has a one-click .mcpb bundle on the releases page.
From outside your network
Do not port-forward the server. Put it on a tailnet and it works from anywhere the agent machine can reach:
tailscale serve --bg --https=8800 http://127.0.0.1:8800
Then use the tailnet URL in the config above. The self-hosted mirror guide has the rest, including what lands on disk.
5. What the agent can ask
Seven read-only tools: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log. Behind them are 172 Apple Health types plus Marrow's own meal diary and lifting log. Prompts that work well:
- "Compare my resting heart rate and HRV in the four weeks before and after I started morning training."
- "Which days this month did I sleep under six hours, and what happened to my steps the day after?"
- "Summarize protein against my goal for the last two weeks and flag the worst days."
- "Show my squat progression by estimated 1RM since June."
6. Why the numbers matter more than the model
In January 2026 a Washington Post reporter connected both assistants to his Apple Health data. ChatGPT graded his heart health an F, then a B on a repeat, and forgot his age. Claude did better and still, in the report's words, failed to account for limitations in the Apple Watch data. The models were fine. They were handed unqualified numbers with no sense of what was missing.
Marrow reconciles every daily value against Apple's own totals before an agent sees it, and its tools return records with source devices and timestamps so the agent can tell a real low from a day the watch sat on a charger. The verification layer exists because the founder caught the incumbent export app silently freezing mid-afternoon and under-reporting steps by about 40 percent. Every answer an agent gives from Marrow is computed from your records, then phrased.
The short version
- Phone-only chats: the built-in Claude or ChatGPT connector is fine.
- Claude Code, Desktop, Cursor on the same network: Marrow's on-device server, two minutes.
- OpenClaw, a home server, or anything that runs while you sleep:
pip install marrow-mcpand pair once. - All of it is free. Get Marrow, then follow the setup page.