Reported issues for Apple Health
Pod holds 8 of 8 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to Apple Health.
Most discussed
Catalogue is never rescanned and loadedTables always reports 0, so a working server looks empty
Two related issues in FileCatalog / HealthSchemaTool make a working server look empty. Both are easy to hit and produce silent wrong answers rather than errors.
1. The file catalogue is scanned once and never refreshed
main() calls catalog.initialize() -> scanDirectory() exactly once at start-up. Nothing ever rescans.
If the MCP client starts the server before HEALTH_DATA_DIR is populated — which is the normal case when you are still converting/exporting your data, or when the
Read the thread · 2026-07-31 · closed · external user · 1 comment
Workout data can never be loaded: catalog regex requires a literal 'TypeIdentifier'
Summary
The file catalog only matches filenames containing a literal TypeIdentifier, so workout data can never be catalogued. As a result health_report's workout section always fails, and workouts are unreachable from health_query.
Cause
dist/server.js (src/db/catalog.ts):
const match = file.match(/^(HK\w+TypeIdentifier\w+).*\.csv$/);
Workout files are named HKWorkoutActivityType.csv — no TypeIdentifier — so the regex never matches and no `hkworkoutactivitytype
Read the thread · 2026-07-31 · closed · external user · 0 comments
health_report returns empty sections on a cold server: HealthReportTool never loads its tables
Summary
HealthReportTool is constructed without a TableLoader, so health_report queries tables that were never loaded. On a freshly started server every section fails and the report comes back empty.
Reproduce
Start the server against a data directory and call health_report as the very first tool call:
{ "name": "health_report", "arguments": { "report_type": "monthly" } }
Result:
{ "title": "Monthly Health Report (...)", "sections": [], "summary": "" }
Read the thread · 2026-07-31 · closed · external user · 0 comments
Sleep analysis always reports zero: stage labels are cast away and the report filters on the wrong column
Summary
Sleep data is unusable in the current version. Two separate problems combine:
- The loader casts
valuetoDOUBLE, which destroys the sleep stage labels (asleepCore,asleepDeep,asleepREM,inBed) — they all becomeNULL. The information is not exposed anywhere else, so an LLM writing its own SQL throughhealth_querycannot recover it either. generateSleepSection()filters onWHERE type LIKE '%Asleep%', buttypeisHKCategoryTypeIdentifierSleepAnalysis
Read the thread · 2026-07-31 · closed · external user · 0 comments
health_schema silently truncates every table to 100 rows, causing wrong results in all later queries
Summary
health_schema loads each table with LIMIT 100 and then marks it as fully loaded in the catalog. Because TableLoader.ensureTableLoaded() returns early for tables the catalog reports as loaded, the full data is never loaded. Every subsequent health_query and health_report call silently runs against only the first 100 rows.
This is a silent correctness bug rather than a crash: the server returns confident, well-formed answers computed from a small fraction of the dat
Read the thread · 2026-07-31 · closed · external user · 0 comments
HKCategoryType and Workout tables fail — hardcoded unit column reference
Bug Summary
All 8 HKCategoryType tables and all 13 workout-type tables fail to load with "Referenced column 'unit' not found" because cleanAndOptimizeTable() and loadTableSample() hardcode a unit column reference that only exists in quantity-type CSVs.
Environment
- Apple Health data exported via Simple Health Export iOS app (96 CSV files)
- apple-health-mcp running on macOS with DuckDB
Root Cause
The CSV export from Apple Health has three distinct table schemas
Read the thread · 2026-02-09 · closed · external user · 1 comment
Node version compatibility issues
Leaving a breadcrumb here if anyone runs across this. Not sure if the apple health mcp server can make this experience any better (Claude Desktop certainly doensn't make it easy), but if you have nvm installed it seems to conflict with how Claude Desktop loads the system version of node on macOS.
This can be overridden in the claude_desktop_config.json via these steps
https://github.com/anthropics/claude-code/issues/539#issuecomment-3166366708
Read the thread · 2025-08-08 · closed · external user · 2 comments
Add unit hints: The SQL queries it generates sometimes assume units - e.g. a short bike ride I had (0.87km) was reported as 0.87 metres!
Wonder if there is a way to prompt/hint/transform the fields so it sees distance_in_km or something to help it correctly work it out?
Read the thread · 2025-07-29 · closed · external user · 1 comment
Most recent
The remaining reports are on the project's issue tracker.