Health Export MCP
About
Query 190 Apple Health / HealthKit metrics from any MCP agent — zero-dependency, read-only, local-first
Explore
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Health Export MCPCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
The companion iOS app](https://apps.apple.com/app/id6784185201)MetricBridgeexports your Apple Health data, read-only, automatic, private. For this MCP server, export to a destination it can read:
Using a non-MCP tool (ChatGPT, n8n, Home Assistant)? The app can also POST to awebhookthose tools read directly, seeWorks with.
git clone https://github.com/PhilipAD/health-export-mcp.git cd health-export-mcp node apply-mcp-config.mjs # detects installed clients and writes the config for you
Manual, Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json):
{ "mcpServers": { "health-export": { "command": "npx", "args": ["-y", "health-export-mcp"], "env": { "HEALTH_DATA_DIR": "~/Library/Mobile Documents/iCloud~ai~healthexport~app/Documents" } } } }
npxfetches the published package at run time (npm verifies package integrity), it runs anywhere, no clone or absolute path needed. Prefer to pin a vetted local checkout instead? Use"command": "node", "args": ["REPLACE_WITH_ABSOLUTE_PATH/server.mjs"], get the path withnode -e "console.log(process.cwd()+'/server.mjs')"inside the repo. Or skip JSON entirely, draghealth-export.mcpbintoClaude Desktop → Settings → Extensions.
Cursor / VS Code:node gen-deeplinks.mjsprints one-click install links.opencode / OpenClaw / Hermes:see[AGENTS.mdfor the exact block, same shape, one per client.
"Use health-export: what's my average HRV this week vs last week?"
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"health export mcp": {
"server": {
"command": "npx",
"args": [
"-y",
"health-export-mcp"
]
}
}
}
}
McpServers
{
"server": {
"command": "npx",
"args": [
"-y",
"health-export-mcp"
]
}
}
Transport
"stdio"
Package
"health-export-mcp"
Registry
"npm"
Query your Apple Health data from Claude, ChatGPT, Cursor, OpenClaw, Hermes, and any other AI agent.
health-export-mcpis an open-source,zero-dependencyModel Context Protocol (MCP)server that lets any MCP-compatible AI agent query yourApple Health / HealthKitdata,190 metricsas clean JSON, in plain language. Local-first, read-only, no accounts, and no developer server in the path. It's the open-source server for theMetricBridgeiOS app,[available on the App Store.
Ask your agent:"Compare my HRV this week vs last week and tell me if I'm recovering.", it calls the tools and answers from youractual numbers.
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.
- Who it's for:anyone who wants their AI to reason over theirrealhealth data instead of a stale CSV.
- What it isn't:a cloud service. There's no developer server in the path, your data goes only whereyoupoint it.
- Setup:point the server at your exported data and add it to your AI client.
Just exported and the Mac has not seen it yet?iCloud can take a few minutes to sync the file across, so a check 60 seconds after tapping Run in the app can still show the old timestamp.get_mcp_statusreportslastDataDateand the intradaylastWrite, which is the quickest way to tell "still syncing" from "never arrived".
Try it with no iPhone needed:node server.mjs --demoserves a deterministic synthetic dataset (400 days, workouts, events, sleep sessions) with every answer watermarked as synthetic. Or runnpm testto write a sample cache and exercise every tool.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



