Apple Health AI Bridge provides read-only local MCP access for Health Bridge for AI.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally
This server runs on your machine over stdio, but its source registry didn't list a distribution package. Check the source repository for setup instructions.
Download on the App Store · Set up your bridge · Supported health data · Website
Apple Health AI Bridge connects your Apple Health history to the AI you already use. Ask how your sleep has changed over the past month or compare this week's workouts with last week's. Automatic sync brings in new records, so you can keep asking without exporting another file each time.
The iPhone app syncs the records you allow to a macOS or Linux computer you control. From there, a read-only MCP server gives your chosen AI access to your history.
You need:
uv for the receiver package.Enable Automatic Sync once you have paired the app. iOS controls background scheduling, so delivery timing is best-effort rather than real-time or guaranteed at a specific moment.
Download the iPhone app from the App Store on your iPhone. TestFlight remains available for beta builds and prerelease testing through the official install page.
The project does not give you a receiver URL. The URL is the private address by which the iPhone reaches your receiver computer, and it must exist before core setup can create pairing material.
Do not copy a sample hostname, expose receiver port 8765 directly to the public internet, or publish the pairing page. Follow the complete receiver setup guide to produce and verify the real route.
Install the current signed receiver release:
uv tool install "git+https://github.com/roian6/apple-health-ai-bridge.git@receiver-v1.1.2"
The route-specific guide sets HEALTH_BRIDGE_RECEIVER_URL to the exact configured /v1/batches URL. Only then run:
health-bridge setup --receiver-url "$HEALTH_BRIDGE_RECEIVER_URL"
For the deliberate Route C local-network-only fallback, use the same real LAN URL and the required non-loopback bind:
health-bridge setup \
--receiver-url "$HEALTH_BRIDGE_RECEIVER_URL" \
--receiver-host 0.0.0.0 \
--receiver-port 8765
health-bridge setup creates the private SQLite database and single-use pairing page, prepares the receiver command, emits a canonical same-host stdio MCP descriptor, verifies the local MCP server, and detects client adapters without modifying them.
A successful local MCP check does not prove receiver readiness or phone reachability. Put the printed receiver command under the host's approved service manager, start it, require {"status":"ok"} from the printed local /health URL, and then require the same response from the exact phone-facing /health URL on the physical iPhone. Routes A and B use HTTPS; Route C uses HTTP only on the same trusted LAN.
Adding a client creates another process that can read the private health database, so setup never does that automatically. Use an explicit --configure-client <name> only after choosing the client.
Direct is the default transport, including direct private HTTPS and trusted-LAN setups. Encrypted iCloud Mailbox is an explicit opt-in, Mac-only Beta; a Direct failure never switches transports automatically.
The Beta applies application-layer encryption and signatures before an envelope reaches the user's iCloud container. The user's Mac receiver decrypts and commits accepted batches, then returns an encrypted, signed ACK; the app advances committed local progress only after validating a committed ACK. The iCloud container and receiver remain user-owned. Mailbox ACK publication also requires the exact signed, notarized macOS helper published with Receiver/CLI 1.1.2; users verify and explicitly install it before the optional per-user LaunchAgent. Follow the mailbox service guide.
The companion requests every HealthKit type that is both implemented by the app and available on the current iOS runtime. Unsupported or unavailable types remain absent rather than being fabricated.
See the versioned supported health data reference.
The MCP server is read-only and exposes bounded, source-grounded tools:
It does not expose raw SQL, token material, cursor values, or clinical recommendations.
Do not expose the receiver's loopback port or pairing page to the public internet. For continuous sync away from home, use an existing private-network HTTPS route such as Tailscale Serve or an agent-assisted private HTTPS ingress reviewed for the receiver paths. LAN-only access is a limited fallback.
Report vulnerabilities through GitHub’s private vulnerability reporting flow described in SECURITY.md.
Public policies and help: Privacy · Support
Stop the receiver, then inspect the exact deletion scope with the default dry-run:
health-bridge receiver purge --db ~/.local/share/health-bridge/health.sqlite
Run the same command with --confirm only after reviewing the listed database and SQLite sidecars. Confirmation is refused while the receiver is still using the database. This removes the local bridge copy and does not delete Apple Health data. Empty private .lifecycle.lock and .access.lock coordination files and a private .purge-* directory containing zero-byte tomb files may remain; they contain no health records.
If the command returns recovery-required, do not restart the receiver. Review the structured source, quarantine, and truncated path lists; the command deliberately keeps the private quarantine instead of claiming a rollback after an irreversible partial purge.
The repository contains independently released components. Always include the component label rather than referring to an unlabeled “repo version.”
| Surface | Current version | Identifier |
|---|---|---|
| Receiver/CLI | 1.1.2 | signed tag receiver-v1.1.2 |
| iOS Companion | 1.1.1 | App Store build 50 |
| Batch Protocol | 1.0.0 | health_bridge.batch.v1 |
These numbers do not need to match. Receiver-only fixes must not force an unchanged iOS Companion update, and compatible product patches must not bump the Batch Protocol. The canonical machine-readable mapping is component-versions.json; see the complete versioning and compatibility policy.
User installs are pinned to a signed Receiver/CLI release tag instead of the moving main branch. Each GitHub Release publishes the exact-tag wheel and source archive together with the signed mailbox helper and its public manifest, SHA-256 checksums, build provenance, and metadata that ties the Receiver/CLI, compatible iOS Companion, helper source tree, Git tree, and Batch Protocol together. Existing v1.0.0, v1.0.1, and receiver-v1.1.0 releases remain immutable; current and future receiver releases use component-scoped tags such as receiver-v1.1.2.
The App Store is the normal iPhone installation path. TestFlight is reserved for beta builds. Contributors and advanced users can build with Xcode 16 or later by following docs/self-build.md.
uv sync --all-extras --dev --locked
uv run pytest -q
uv run ruff check .
uv run basedpyright
Synthetic fixtures and smoke commands are contributor tools, not part of user onboarding. See CONTRIBUTING.md.
Apple Health AI Bridge is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Apple Inc.
Apache-2.0. See LICENSE.