# One MCP server, eight AI clients: Apple Health setup that works everywhere

> Source: <https://dev.to/philipad/one-mcp-server-eight-ai-clients-apple-health-setup-that-works-everywhere-4lcp>
> Published: 2026-08-18 13:25:01+00:00

Most Apple Health MCP guides are per-client. Claude today, Cursor tomorrow, ChatGPT next week. That's the wrong abstraction. MCP is a protocol. The server command is identical across every client. Only the config file path and JSON shape change.

Eight read-only tools, all local:

| Tool | What it returns |
|---|---|
`get_mcp_status` |
Health check: data source, metric count, most recent data date |
`list_metrics` |
Every available metric with unit, day count, date range |
`get_health_metrics` |
Values for a metric over a date range with aggregation |
`get_trends` |
Compare recent N-day window against prior N |
`compare_periods` |
A/B two arbitrary date windows for a single metric |
`get_structured_export` |
Clean structured JSON, paginated |
`get_intraday` |
Hour-by-hour window, live within-day view |
`query_health_data` |
Natural-language convenience query |

190 Apple Health metrics. 84 kB npm package. Zero dependencies. Zero network calls.

Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json`

):

```
{
  "mcpServers": {
    "health-export": {
      "command": "node",
      "args": ["/Users/you/.health-export-mcp/server.mjs"],
      "env": {
        "HEALTH_DATA_DIR": "/Users/you/Library/Mobile Documents/iCloud~ai~healthexport~app/Documents"
      }
    }
  }
}
```

Cursor uses the same shape at `~/.cursor/mcp.json`

. Windsurf uses it at `~/.codeium/windsurf/mcp_config.json`

. ChatGPT Desktop takes the inner block in Settings > MCP Servers. Codex CLI reads `.mcp.json`

. opencode uses `mcp`

+ `environment`

+ array `command`

instead of `mcpServers`

+ `env`

.

The server command never changes. Only the file path does.

```
You: What is my HRV trend over the last 14 days?
Agent: [calls get_trends] Your HRV averaged 58 ms, up 5.5% vs prior 14 days.

You: Compare my sleep this week to last week.
Agent: [calls compare_periods] Deep sleep up 17%, total sleep up 6%.

You: How does my RHR change on days I sleep less than 6 hours?
Agent: [calls query_health_data] RHR averages 58 bpm after &lt;6h sleep, 53 bpm after &gt;7h.
```

No CSV, no copy-paste, no screenshots. Live data from your iPhone, answered locally.

Full config blocks for all eight clients, troubleshooting, and FAQ: [complete guide on healthexport.dev](https://www.healthexport.dev/blog/query-apple-health-with-any-ai-agent?utm_source=devto&utm_medium=social&utm_campaign=exp-20260818-hea80-multiclient)
