Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

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:

  1. The loader casts value to DOUBLE, which destroys the sleep stage labels (asleepCore, asleepDeep, asleepREM, inBed) — they all become NULL. The information is not exposed anywhere else, so an LLM writing its own SQL through health_query cannot recover it either.
  2. generateSleepSection() filters on WHERE type LIKE '%Asleep%', but type is HKCategoryTypeIdentifierSleepAnalysis

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.