Unofficial local-first MCP server for Apple Health export data.
Apple MCP server exists for a simple reason — assistants are far more useful when they can act on Apple directly instead of describing what you should do. Unofficial local-first MCP server for Apple Health export data.
Once Apple is connected, these are the calls the assistant has available:
apple_health_connection_status — verify export path before reading dataapple_health_data_inventory — discover available record types, date coverage, sources count and stale export riskapple_health_daily_summary — daily wellness brief from export dataapple_health_weekly_summary — weekly comparison and habit signalsapple_health_list_records — bounded records by type (e.g. HKQuantityTypeIdentifierStepCount), start, end, limit. limit caps the returned list only: in the default summaryapple_health_list_workouts — bounded workouts by start, end, limit. Same contract: limit caps the returned list only, and in summary privacy mode the aggregate totalsapple_health_reimport — re-scan the watch folder (APPLE_HEALTH_WATCH_PATH) and promote the newest export, refreshing summaries; pass check_only: true to preview withoutdelx-wellness-hermes on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.
You will need 2 environment variables: APPLE_HEALTH_WATCH_PATH, APPLE_HEALTH_EXPORT_PATH. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Apple's toolset — apple_health_connection_status, apple_health_data_inventory, apple_health_daily_summary and 4 more — is a fair guide to whether it matches your workflow. It is maintained by davidmosiah; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| apple_health_connection_status | verify export path before reading data |
| apple_health_data_inventory | discover available record types, date coverage, sources count and stale export risk |
| apple_health_daily_summary | daily wellness brief from export data |
| apple_health_weekly_summary | weekly comparison and habit signals |
| apple_health_list_records | bounded records by type (e.g. HKQuantityTypeIdentifierStepCount), start, end, limit. limit caps the returned **list** only: in the default summary privacy mode the aggregate block (min/max/sum/average/count/date_range) i |
| apple_health_list_workouts | bounded workouts by start, end, limit. Same contract: limit caps the returned **list** only, and in summary privacy mode the aggregate totals (total_energy_kcal, total_duration_minutes, total_distance, count_by_activity, |
| apple_health_reimport | re-scan the watch folder (APPLE_HEALTH_WATCH_PATH) and promote the newest export, refreshing summaries; pass check_only: true to preview without promoting |
{
"mcpServers": {
"apple-health": {
"command": "npx",
"args": ["-y", "delx-wellness-hermes"],
"env": {
"APPLE_HEALTH_WATCH_PATH": "your-value",
"APPLE_HEALTH_EXPORT_PATH": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| APPLE_HEALTH_WATCH_PATH | Filesystem location the server is allowed to use. | Optional |
| APPLE_HEALTH_EXPORT_PATH | Filesystem location the server is allowed to use. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.