MCP server that lets LLMs query your Apple Health export via SQL
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"apple-health-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# apple-health-mcp MCP server that loads your Apple Health export into an in-memory SQLite database and exposes it to LLMs via the [Model Context Protocol](https://modelcontextprotocol.io/). ## Quick start ```bash uvx apple-health-mcp --input ~/Downloads/export.zip ``` Or install it permanently: ```bash uv tool install apple-health-mcp apple-health-mcp --input ~/Downloads/export.zip ``` ## Exporting your data from Apple Health 1. Open the **Health** app on your iPhone 2. Tap your profile picture (top-right) 3. Scroll down and tap **Export All Health Data** 4. Confirm — this may take a few minutes 5. Save or AirDrop the resulting `export.zip` to your Mac ## Claude Desktop integration Add this to your `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`): ```json { "mcpServers": { "apple-health": { "command": "uvx", "args": [ "apple-health-mcp", "--input", "/absolute/path/to/export.zip" ] } } } ``` Restart Claude Desktop. The tools will appear in the tools menu. ## MCP tools ### `list_metrics()` Returns every distinct record type and its count. ### `list_workout_types()` Returns every distinct workout activity type and its count. ### `summary(metric, period)` Aggregates a metric by `day`, `week`, or `month`. Returns count, avg, min, max, and sum. ``` summary("StepCount", "week") summary("HeartRate", "month") ``` ### `query(sql)` Run arbitrary read-only SQL against the database. Only `SELECT` statements are allowed. **Schema:** ```sql records(type, source_name, unit, value, start_date, end_date) workouts(activity_type, source_name, duration, duration_unit, total_energy_kcal, total_distance, distance_unit, start_date, end_date) ``` **Examples:** ```sql -- Daily step totals for the last 30 days SELECT substr(start_date, 1, 10) AS day, sum(CAST(value AS REAL)) AS steps FROM records WHERE type = 'StepCount' GROUP BY day ORDER BY day DES…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.