Health Export AI · Guides
Guide · AI + Apple HealthQuery Your Apple Health Data with ChatGPT, Cursor, and Other AI Tools
There are two reliable ways to put your Apple Health data in front of an AI tool — and knowing which path a given tool needs saves you a lot of frustration. Native MCP clients like Cursor query your export directly. ChatGPT, Gemini, and Grok consume the same data through a one-way webhook export. This guide walks through both, with exact steps and example prompts.
Apple Health quietly collects an enormous amount about you — steps, heart rate variability, sleep stages, resting heart rate, VO₂ max, workouts, body measurements, and far more. Health Export AI turns up to 190 of those metrics into clean, AI-ready JSON. The question most people hit next is simple: how do I actually get an AI tool to read it?
The honest answer depends on the tool, because not all AI apps connect to data the same way. The single most common mistake is assuming that because Cursor can query your health data live, ChatGPT must be able to as well. It can't — at least not the same way. Let's clear that up.
The two paths, in one sentence each
- Direct (MCP) path — the tool speaks the Model Context Protocol, so it talks to the
health-exportMCP server and calls read-only tools on demand. Cursor, Claude Desktop, Claude Code, VS Code, opencode, OpenClaw, and Hermes all work this way. - Webhook (export) path — the tool does not speak MCP, so the app pushes your JSON to a destination and you point the tool at that data. ChatGPT, Gemini, and Grok — plus automation platforms like n8n and Home Assistant — use this path.
Plain truth: ChatGPT does not "speak MCP" the way a desktop MCP client does. Anyone promising that ChatGPT will reach into your Apple Health on its own is overselling it. The data flows to ChatGPT through an export you control — never the other way around. That one-way design is also what keeps it private.
Path 1 — Query directly from Cursor (native MCP)
What "direct" actually means
Cursor is a native MCP client. Once you register the health-export server in Cursor's MCP settings, Cursor can call tools like get_health_metrics, get_trends, and compare_periods whenever a prompt needs them. You ask a question in plain language; Cursor decides which tool to call, runs it against your local export, and answers. No copy-paste, no stale files — every call reads the latest data the app has written.
Step-by-step: Cursor
- Install Health Export AI on your iPhone, grant read-only Apple Health access, and pick a destination — iCloud Drive or a synced folder is easiest for a Mac running Cursor. The app writes a small
.health-cache.jsonthere. - Add the MCP server to Cursor. The fastest route is the one-click "Add to Cursor" button on the setup section of the homepage. Prefer to do it by hand? Add the server to your Cursor MCP config so it points
nodeatserver.mjswithHEALTH_DATA_DIRset to the folder you chose:{ "mcpServers": { "health-export": { "command": "node", "args": ["/path/to/server.mjs"], "env": { "HEALTH_DATA_DIR": "/path/to/your/export-folder" } } } } - Restart Cursor so it picks up the new server, then confirm the connection by asking it to run the status check (it calls
get_mcp_statusunder the hood). - Ask away. Cursor will pick the right tool for each question.
Example prompts for Cursor (and any MCP client)
Because these run as live tool calls, you can keep drilling in — "now break that HRV trend down by weekday" — and Cursor will fetch fresh data rather than re-reading a frozen file. The same prompts work in Claude, which we cover in depth in connecting Apple Health to Claude via MCP.
Path 2 — Use the webhook export with ChatGPT, Gemini, and Grok
What "webhook" actually means
ChatGPT, Gemini, and Grok can reason brilliantly about health data — they just can't go fetch it themselves. So Health Export AI does the fetching: it exports your Apple Health JSON to a destination you control, and you hand that JSON to the model. "Webhook" is the most automated version of this (an HTTPS POST to an endpoint you run), but the same path also covers the no-code version: export to a file, then drop it into the chat.
Step-by-step: the no-code version (works with all three)
- Export to a file or folder. In Health Export AI, choose a folder, iCloud Drive, or "save file" destination and tap export. You get a clean JSON file with full units and metadata preserved.
- Open the file in your AI tool. In ChatGPT or Gemini, upload the JSON directly. In Grok, paste the JSON or attach the file. Models handle structured JSON far better than a screenshot or a messy CSV, which is exactly why the app emits JSON.
- Ask your question in the same chat. The model now has your real numbers in context.
Step-by-step: the automated webhook version
- Stand up an endpoint you control — an n8n flow, a small server, a Home Assistant webhook, or a custom GPT action's backend. It just needs to accept an HTTPS POST.
- Point Health Export AI's webhook destination at that URL (with an optional secret token so only your phone can post to it).
- Export. The app POSTs your JSON to the endpoint. From there, your automation decides what happens — store it, summarize it on a schedule, or forward it into a ChatGPT/Gemini/Grok conversation through that tool's own API.
Why JSON, not screenshots: pasting a screenshot of the Health app forces the model to guess at numbers and loses every unit. The webhook/export path gives the model structured values with units and timestamps intact — so "average HRV" actually means milliseconds, and "sleep" is hours, not pixels.
Example prompts for ChatGPT / Gemini / Grok (after the JSON is in context)
Which path should you use?
Pick by the tool you already live in:
- You use Cursor, Claude, VS Code, opencode, OpenClaw, or Hermes → use the direct MCP path. It's live, repeatable, and you never touch a file. This is the most powerful experience.
- You use ChatGPT, Gemini, or Grok → use the webhook/export path. Start with the no-code file upload; graduate to a real webhook only if you want automation.
- You're building an automation (n8n, Home Assistant, a custom GPT) → use the webhook path as the data source and let your flow handle the rest.
Many people end up using both — Cursor or Claude for live, conversational digging, and a webhook into an automation for scheduled summaries. Because the app is read-only and local-first, every one of these paths keeps your data on devices and endpoints you own.
A note on accuracy and trust
Two things keep this honest. First, Health Export AI reads Apple Health read-only — it never writes back to your Health data. Second, your export only ever travels to the destination you configure; it never passes through a server run by the developer. The MCP server is open source, so you can read exactly what it does before you run it. For the full picture of how the JSON export works end to end, see our pillar guide on how to export Apple Health data to JSON.
Whatever your AI does with the numbers is general information, not medical advice — but giving the model real, structured data instead of guesses is the difference between a vague vibe check and an answer grounded in your actual measurements.
Put your Apple Health in front of any AI
190 metrics, clean JSON, read-only and private. Query it live from Cursor, or export it to ChatGPT, Gemini, and Grok.
Get Health Export AIFrequently asked questions
- Can ChatGPT read my Apple Health data directly?
- Not over MCP — ChatGPT doesn't speak the Model Context Protocol the way a native MCP client does. Instead, Health Export AI sends your Apple Health JSON to a webhook or file destination, and you point ChatGPT at that data: upload the JSON, paste it, or wire the webhook into a custom GPT or automation. The data flows one direction — your phone to ChatGPT — and ChatGPT never reaches back into Apple Health.
- Does Cursor query Apple Health directly?
- Yes. Cursor is a native MCP client, so it talks to the
health-exportMCP server directly. After you add the server to Cursor's MCP config, it can call read-only tools likeget_trendsandcompare_periodson demand and get live answers from your local export — no copy-paste. - Which AI tools use the direct MCP path versus the webhook path?
- Native MCP clients — Cursor, Claude Desktop, Claude Code, VS Code, opencode, OpenClaw, and Hermes — query the MCP server directly. Tools that don't speak MCP — ChatGPT, Gemini, and Grok, plus automation platforms like n8n and Home Assistant — consume your data through the app's webhook export instead.
- Is my health data sent to a third-party server?
- No. Health Export AI is read-only and local-first. Your export only ever goes to a destination you choose — your own iCloud Drive, a local folder, your LAN, or a webhook endpoint you control. It never passes through any server operated by the developer.
- Do I need to write code to use the webhook path?
- No code is required for the simplest workflow: export your Apple Health JSON to a file, then drag it into ChatGPT, Gemini, or Grok and ask. The webhook becomes useful when you want automation — posting to an n8n flow, a custom GPT action, or a Home Assistant endpoint that stores the data for you.