Unofficial local-first MCP server for Apple Health export data.
Unofficial local-first MCP server for Apple Health export data.
Apple Health MCP is a well-architected, local-first connector for reading Apple Health exports with proper permission scoping and security boundaries. The codebase demonstrates solid engineering practices: authentication is not required (appropriate for local file read), dangerous operations are avoided, and the server is read-only over user-provided export files. Minor findings around input validation and error handling are present but do not impact the core security model. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
7 files analyzed · 10 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: APPLE_HEALTH_EXPORT_PATH
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-davidmosiah-apple-health-mcp": {
"env": {
"APPLE_HEALTH_EXPORT_PATH": "your-apple-health-export-path-here"
},
"args": [
"-y",
"apple-health-mcp-unofficial"
],
"command": "npx"
}
}
}From the project's GitHub README.
Local-first MCP server that reads your Apple Health export and exposes it to AI agents.
Unofficial project. Not affiliated with, endorsed by or supported by Apple Inc. Apple Health is a trademark of Apple Inc. This package reads exports you generate yourself from the Apple Health app.
No live HealthKit access. This connector reads
export.xml/export.zipfiles exported from your iPhone. A native iOS HealthKit bridge is a separate future component.
Built by David Mosiah for people who use Claude, Cursor, Hermes, OpenClaw or other MCP-compatible agents to think about long-term health and activity trends — without copy-pasting numbers from the Health app.
Part of Delx Wellness, a registry of local-first wellness MCP connectors.
Apple Health is the most complete personal health dataset most people own — years of activity, heart rate, sleep, workouts, body measurements, even ECGs. But Apple does not expose a public cloud API. The data lives on the iPhone behind HealthKit, and the only practical way to bring it off-device today is the Health Export feature inside the Health app.
This package reads that export locally — either the raw export.xml, the unzipped folder, or the export.zip — and exposes Apple Health through the Model Context Protocol. No tokens, no OAuth, no cloud sync. The export never leaves your machine.
1. Export your Apple Health data on iPhone:
Health app → tap your profile picture → Export All Health Data
Wait a few minutes. AirDrop or transfer the zip to this machine.
2. Configure and verify:
npx -y apple-health-mcp-unofficial setup --export-path /path/to/export.zip
npx -y apple-health-mcp-unofficial doctor
Supported export paths:
/path/to/export.zip/path/to/apple_health_export/ (unzipped folder)/path/to/export.xml (raw export file)Then add this to your MCP client config:
{
"mcpServers": {
"apple_health": {
"command": "npx",
"args": ["-y", "apple-health-mcp-unofficial"]
}
}
}
For Claude Desktop, run setup --client claude --export-path /path/to/export.zip and the snippet is written for you.
Three things to ask first:
Use apple_health_connection_status to check setup, then run apple_health_daily_summary.
Give me a 5-line wellness brief for today.
Call apple_health_weekly_summary with response_format=json. Compare steps,
sleep, workouts and heart signals across the last 7 days.
Use the apple_health_weekly_review prompt, days=14.
Find the biggest habit pattern and suggest one experiment.
This package parses Apple Health exports from the Health app. When this README says raw, it means the upstream XML record fields — not raw HealthKit data.
| Data | Available | Notes |
|---|---|---|
| Activity (steps, distance, energy, exercise) | ✓ | Standard HKQuantityType records |
| Heart rate (resting + samples) | ✓ | Recorded HR samples and resting HR |
| Sleep analysis + sleep stages | ✓ | When iPhone/Watch logs sleep |
| Workouts + sport metadata | ✓ | All HKWorkout entries |
| Body measurements (weight, BMI, body fat) | ✓ | When the user logs them |
| HRV (SDNN) + breathing rate | ✓ | When Watch supports them |
| ECG records | ✓ (metadata) | Apple Watch ECG events; raw waveform requires PDF export |
| Live HealthKit access | — | Apple does not expose a public live API |
| iCloud Health sync | — | Not exposed by export files |
Start with these:
apple_health_connection_status — verify export path before reading dataapple_health_daily_summary — daily wellness brief from export dataapple_health_weekly_summary — weekly comparison and habit signalsDiagnostics
apple_health_capabilities, apple_health_agent_manifest, apple_health_privacy_auditRecords
apple_health_list_records — bounded records by type (e.g. HKQuantityTypeIdentifierStepCount), start, end, limitapple_health_list_workouts — bounded workout recordsapple_health_daily_review — daily wellness review with non-medical framingapple_health_weekly_review — weekly habit signals and trend comparisonapple-health://capabilities, apple-health://agent-manifestapple-health://summary/daily, apple-health://summary/weeklyexport.xml / export.zip to GitHub, paste raw exports into chat, or upload them to issues.APPLE_HEALTH_PRIVACY_MODE defaults to summary for this connector (more conservative than other Delx Wellness connectors) since the dataset is rich and sensitive. Raw record dumps are opt-in.APPLE_HEALTH_EXPORT_PATH=/path/to/export.zip # or export.xml or apple_health_export/
APPLE_HEALTH_PRIVACY_MODE=summary # summary | structured | raw
setup writes both into ~/.apple-health-mcp/config.json with 0600 permissions.
npx -y apple-health-mcp-unofficial setup --client hermes --export-path /path/to/export.zip
npx -y apple-health-mcp-unofficial doctor --client hermes
hermes mcp test apple_health
After Hermes config changes, use /reload-mcp or hermes mcp test apple_health. Don't restart the gateway for normal export access.
If the Hermes server runs on a different machine than your iPhone, transfer the export there and point --export-path at it. The export file should be chmod 600.
git clone https://github.com/davidmosiah/apple-health-mcp.git
cd apple-health-mcp
npm install
npm test
npm run build
Test with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Optional local HTTP transport:
APPLE_HEALTH_MCP_TRANSPORT=http APPLE_HEALTH_MCP_PORT=3000 node dist/index.js
curl http://127.0.0.1:3000/health
MIT — see LICENSE.
This software is provided as-is. It is not a medical device, does not provide medical advice, and should not be used for diagnosis, treatment or emergency monitoring. Always consult qualified professionals for medical concerns.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by Taylorwilsdon · Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI