Query 190 Apple Health metrics from any MCP agent — zero-dependency, read-only, local-first.
Health MCP server exists for a simple reason — assistants are far more useful when they can act on Health directly instead of describing what you should do. Query 190 Apple Health metrics from any MCP agent — zero-dependency, read-only, local-first.
It's an MCP server that turns your Apple Health export into a tool your AI agent can query in natural language — HRV, sleep, resting heart rate, steps, workouts, VO₂ max, and 180+ more.
Once Health is connected, these are the calls the assistant has available:
get_mcp_status — Health check — source, metric/workout counts, latest data date. Call first.list_metrics — Every available metric with unit, day count, and date rangeget_health_metrics — Daily values for a metric (or all) over a date range + an aggregate (avg/sum/min/max/latest)get_trends — Recent N-day window vs the prior N days — change, % change, directioncompare_periods — A metric across two arbitrary date periods (A vs B)get_structured_export — Clean JSON for chosen metrics/range — drop straight into contextquery_health_data — Natural-language convenience: "average HRV last month" → routed structured resultsBeing a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.
You will need 3 environment variables: HEALTH_DATA_DIR, REPLACE_WITH_ABSOLUTE_PATH, PAIRING_SECRET. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
node -v). - A folder containing a .health-cache.json exported by Health Export AI — or run npm test to generate a sample one. - An MCP-compatible client (Claude Desktop, Cursor, opencode, OpenClaw, Hermes, VS Code) — or any tool that can read the webhook export. ---This sits in the developer tooling group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Health's toolset — get_mcp_status, list_metrics, get_health_metrics and 4 more — is a fair guide to whether it matches your workflow. It is maintained by PhilipAD; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Health's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| get_mcp_status | Health check — source, metric/workout counts, latest data date. **Call first.** |
| list_metrics | Every available metric with unit, day count, and date range. |
| get_health_metrics | Daily values for a metric (or all) over a date range + an aggregate (avg/sum/min/max/latest). |
| get_trends | Recent N-day window vs the prior N days — change, % change, direction. |
| compare_periods | A metric across two arbitrary date periods (A vs B). |
| get_structured_export | Clean JSON for chosen metrics/range — drop straight into context. |
| query_health_data | Natural-language convenience: *"average HRV last month"* → routed structured results. |
{
"mcpServers": {
"health-export": {
"command": "npx",
"args": ["-y", "health-export-mcp"],
"env": {
"HEALTH_DATA_DIR": "your-value",
"REPLACE_WITH_ABSOLUTE_PATH": "your-value",
"PAIRING_SECRET": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
node -v). - A folder containing a .health-cache.json exported by Health Export AI — or run npm test to generate a sample one. - An MCP-compatible client (Claude Desktop, Cursor, opencode, OpenClaw, Hermes, VS Code) — or any tool that can read the webhook export. ---| Variable | Description | Required |
|---|---|---|
| HEALTH_DATA_DIR | Filesystem location the server is allowed to use. | Optional |
| REPLACE_WITH_ABSOLUTE_PATH | Filesystem location the server is allowed to use. | Optional |
| PAIRING_SECRET | Credential the server authenticates with. | Yes |
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.