apple-health-export-mcp
Allows querying Apple Health data including sleep, heart rate, steps, body mass, workouts, and other metrics by ingesting an exported health archive into a local SQLite database.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apple-health-export-mcpshow my sleep stages for last night"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
apple-health-export-mcp
An MCP server that lets an AI assistant query your Apple Health data — sleep, heart rate, steps, body mass, workouts, and any other metric in your export.
Apple has no live export API, so this works on a snapshot: you export your health archive once, ingest it into a local SQLite database, then the server answers queries against it. See docs/adr.md for why.
Privacy: your health data never leaves your machine and is never committed to git (
.gitignoreexcludes*.zip/*.db).
How it works
export.zip ──(ingest, one-time ~1-3 min)──► health.db (SQLite) ──◄── MCP server queriesRelated MCP server: Apple Health MCP
Setup
Export your data on iPhone: Settings → Health → tap your photo → Export All Health Data. AirDrop/save the resulting
export.zip.Install with uv. Installing once (rather than
uvxon every launch) keeps the process tree shallow, which matters for clean shutdown — see Shutdown & process model.uv tool install apple-health-export-mcp # …or from source: uv tool install git+https://github.com/burakdirin/apple-health-export-mcpThis puts two commands on your PATH:
apple-health-export-mcp(the server) andapple-health-export-mcp-ingest.Ingest the archive (one time per new export):
AH_DB_PATH=~/.local/share/apple-health-export-mcp/health.db \ apple-health-export-mcp-ingest ~/Downloads/export.zipAdd to your MCP client (e.g. Claude Code
.mcp.json). The bare command starts the stdio server; point it at the DB you just built.Installed (recommended) — invoke the binary directly (no wrapper process):
{ "mcpServers": { "apple-health": { "command": "apple-health-export-mcp", "env": { "AH_DB_PATH": "/Users/you/.local/share/apple-health-export-mcp/health.db" } } } }Use an absolute path to the binary (
which apple-health-export-mcp) if your client doesn't inherit yourPATH.Or via
uvx(no install; the bare package name runs the server):{ "mcpServers": { "apple-health": { "command": "uvx", "args": ["apple-health-export-mcp"], "env": { "AH_DB_PATH": "/Users/you/.local/share/apple-health-export-mcp/health.db" } } } }claude mcp addequivalent:claude mcp add apple-health --env AH_DB_PATH=~/.local/share/apple-health-export-mcp/health.db \ -- apple-health-export-mcp
Shutdown & process model
The server is a single process that shuts down on stdin EOF — the MCP
spec's primary shutdown signal — so closing your client terminates it cleanly.
Avoid extra wrapper layers (uv run … fastmcp run …): uv/uvx stay in the
process tree as a parent and only conditionally forward signals, so a wrapped
server can be orphaned when the client exits or you press Ctrl+C. Installing the
tool and launching the binary directly (config above) gives the shallowest tree
and the most reliable cleanup. fastmcp run fastmcp.json is for local dev only.
Tools
Tool | Returns |
| Which metrics exist in your data + row counts and date spans (discovery) |
| Which devices/apps wrote a metric (counts, date spans) |
| Per day/week/month/all aggregate for a numeric metric (steps, HR, weight…) |
| Per-night sleep stage durations |
| Workout summary per activity type in the range |
All query tools require a date range and return aggregates only — never raw rows (ADR-0008).
get_quantity with agg="sum" auto-deduplicates parallel devices (Watch + iPhone + apps) so totals
aren't inflated (ADR-0010); pass source (see list_sources) to force one device.
Prompts
Reusable coaching workflows the client can invoke (they orchestrate the tools and reply in your language):
Prompt | Purpose |
| One day's snapshot |
| Calendar week (Mon–Sun): load vs recovery + advice |
| A month in review (YYYY-MM) |
| A year's fitness trajectory (YYYY) |
| Train hard today? From sleep + recovery markers |
| Sleep duration, stages, consistency |
Arguments are optional — they default to today / this week / this month / this year.
Development
uv sync
uv run pytest
uv run ruff checkLicense
MIT
This server cannot be installed
Maintenance
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/burakdirin/apple-health-export-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server