Ask an agent about your day
Drop the MCP config into your agent. Then ask things like “How did I sleep last week?” or “Was my Sunday tempo run faster at the same heart rate than last week’s?” — the agent calls the LAN endpoints and answers.
HealthKite MCP is an iOS app that turns your iPhone into a small read-only, authenticated LAN endpoint for your own Apple Health data. Run it on your home Wi-Fi, point an AI agent at it, and get clean HealthKit-native JSON back without a cloud backend.
It is free, the wire format is HealthKit-native (Apple’s own identifier vocabulary, no invented schema), and the companion MCP server is open-source under MIT — paste the config into Claude Code, Codex, Cursor, or any MCP-aware tool and ask your agent direct questions about your workouts, sleep, and vitals.
Ask an agent about your day
Drop the MCP config into your agent. Then ask things like “How did I sleep last week?” or “Was my Sunday tempo run faster at the same heart rate than last week’s?” — the agent calls the LAN endpoints and answers.
Share a workout to ChatGPT
Tap any workout → Share → ChatGPT. The receiving app gets the full columnar JSON, ~80 KB for a 30-minute run, byte-identical to what the LAN server returns.
POST workouts to a webhook
Configure a push endpoint in Settings. Tapping a workout’s Send to Endpoint POSTs the same JSON to your Home Assistant, n8n, or custom server.
Bulk export a date range
The Export tab packages workouts, sleep sessions, quantity series, and daily snapshots between two dates into one JSON file, then hands it to the iOS share sheet.
Apple HealthKit has no Apple-hosted API. If you want your data off the phone — for analysis, an agent, a coach, a backup, a dashboard — you need an app to read HealthKit and emit it. Most apps in this space invent their own JSON schema and convert units to user preference, which is lossy and not portable.
HealthKite MCP’s design rules:
HKQuantityTypeIdentifierHeartRate, HKWorkoutActivityTypeRunning, HKMetadataKeyHeartRateMotionContext). Look them up in Apple’s docs; no app-specific vocabulary.unit + parallel t and v arrays) that’s ~10x smaller than per-sample-dict JSON without losing a single value.Three pieces:
NWListener HTTP/1.1 endpoint protected by TLS-PSK. The pairing secret is never sent as a bearer token.healthkite-mcp — Rust MCP server, MIT-licensed, public on GitHub. Stdio transport, installed with Cargo on the same machine as your agent.[ Claude Code / Codex / Cursor / ... ] │ stdio (JSON-RPC) ▼ healthkite-mcp (Rust, MIT) │ Bonjour discovery + TLS-PSK ▼ HealthKite MCP iOS app (LAN) │ HealthKit ▼ Apple HealthKitQuickstart
Toggle on the LAN server, install the MCP, and ask your first agent question — in under 3 minutes.
Wire format
The design rules behind the JSON shape: HealthKit-native vocabulary, columnar samples, hoisted provenance.
API reference
Every endpoint with request shape and response shape.
MCP integration
The canonical config block for Claude Code, Codex, Cursor, and other MCP-aware harnesses.