Model Context Protocol, or MCP, is not an Apple protocol and it does not grant access to Apple Health. An app must first use HealthKit under Apple's entitlement, privacy, and authorization model. An MCP-compatible service can only expose information that the authorized app deliberately prepares for that interface.
That distinction matters because a technically convenient bridge can create a much broader disclosure surface than the original in-app feature. The architecture below keeps collection, interpretation, disclosure, and transport as separate control points. All examples are synthetic; no real health records are used.
At a glance
What to keep in view
- HealthKit authorization remains the source permission boundary; MCP does not replace it.
- Expose purpose-limited summaries or capabilities, not an unrestricted mirror of the Health store.
- Bind the service locally where possible and require explicit enablement, authentication, logs, and revocation.
- Represent missing, stale, denied, and unavailable states instead of manufacturing an answer.
Keep four layers separate
The first layer is HealthKit authorization. Apple requires an app to request access to specific data types, and the person can decide what to share. The second layer is a local domain model that records provenance, units, timestamps, coverage, and authorization-aware availability.
The third layer calculates a narrowly defined summary, such as synthetic daily coverage or a personal trend. The fourth layer exposes selected outputs through an MCP-compatible server. Each transition should minimize data again rather than assuming that permission at one layer authorizes every downstream use.
- HealthKit store → explicitly authorized records.
- Local domain model → typed, provenance-preserving values and availability states.
- Analysis layer → documented calculations with coverage and uncertainty.
- MCP layer → allowlisted, purpose-specific tools returning minimized results.
Design narrow tool contracts
A tool named get_everything encourages over-collection. Prefer contracts that state purpose, time window, fields, aggregation, and maximum response size. A synthetic example might request a seven-day coverage summary and return dates, availability, and source categories without emitting individual samples.
Tool descriptions should say what is measured, what is derived, and what remains interpretation. Errors should distinguish permission denied, no record, stale data, invalid query, and internal failure. Those states have different meanings and should not collapse into zero.
- Default to read-only tools and the shortest useful time range.
- Reject open-ended queries and unsupported health-data types.
- Return provenance and freshness with any calculated value.
Treat transport as a new disclosure decision
A local server reduces some network exposure but is not automatically safe. Bind to loopback or an intentionally selected local interface, authenticate callers, constrain origins or clients where applicable, and make service status visible. Never assume that being on the same Wi-Fi establishes trust.
Cloud-model use is another separate decision. Before content leaves the device, show which fields and date range will be sent, why they are needed, and which provider will receive them. Log the disclosure event without copying sensitive payloads into logs.
- Off by default; explicit enablement and one-action revocation.
- Short-lived credentials and rate limits for every caller.
- No raw health values in URLs, analytics events, crash reports, or ordinary logs.
Test the failure cases, not only the happy path
A privacy review should test whether a newly connected client can enumerate tools, widen a date range, infer denied categories, or obtain data after consent is revoked. It should also inspect caches, backups, debug output, prompt history, and error traces because data can escape through secondary channels.
The safe response to insufficient evidence is a structured unavailable state. An assistant may explain what is missing, but it should not substitute a plausible health reading or produce a medical conclusion. Human-readable evidence and machine-readable status should agree.
Use boundary
Information, not medical advice
This article explains data and research methods. It does not diagnose a condition, prescribe treatment, establish a universal normal range, or replace qualified professional care. If symptoms or a medical decision concern you, use an appropriate clinical service.