Health MCP Server

Query 190 Apple Health metrics from any MCP agent — zero-dependency, read-only, local-first.

Remote serverstreamable-http

What is the Health MCP server?

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.

What you get

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.

What the assistant can call

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 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

Setting it up

Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.

Configuration and credentials

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.js ≥ 18 (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. ---

Choosing this one

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.

Before you rely on it

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the health mcp server does with a few real requests.

Available tools

ToolWhat it does
get_mcp_statusHealth check — source, metric/workout counts, latest data date. **Call first.**
list_metricsEvery available metric with unit, day count, and date range.
get_health_metricsDaily values for a metric (or all) over a date range + an aggregate (avg/sum/min/max/latest).
get_trendsRecent N-day window vs the prior N days — change, % change, direction.
compare_periodsA metric across two arbitrary date periods (A vs B).
get_structured_exportClean JSON for chosen metrics/range — drop straight into context.
query_health_dataNatural-language convenience: *"average HRV last month"* → routed structured results.

How to install the Health MCP server

{
  "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.

Configuration

  • Node.js ≥ 18 (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. ---
VariableDescriptionRequired
HEALTH_DATA_DIRFilesystem location the server is allowed to use.Optional
REPLACE_WITH_ABSOLUTE_PATHFilesystem location the server is allowed to use.Optional
PAIRING_SECRETCredential the server authenticates with.Yes

Example prompts to try

  • Use Health to get mcp status.
  • Use Health to list metrics.
  • Use Health to get health metrics.

Frequently asked questions

It connects Health to MCP-compatible AI assistants such as Claude and Cursor, exposing 7 tools (get_mcp_status, list_metrics, get_health_metrics, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Health directly.