Connect Apple Health to Hermes Agent with read-only MCP.

Health Bridge for AI connects user-authorized Apple Health data to Hermes Agent by running a read-only, same-host stdio MCP process beside the receiver's private database. Hermes can query the bounded tool surface after explicit registration; Health Bridge does not expose a remote MCP endpoint or move the SQLite database to Hermes.

Local MCP does not guarantee a local model. The Health Bridge MCP process and SQLite database stay on the receiver host. If Hermes uses a remote model provider, the requests and selected tool results needed to answer your prompt may be sent to that provider under your Hermes configuration and provider terms.

What this integration does

Health Bridge for AI. Open-source Apple Health sync for local AI agents. The iPhone companion sends permitted observations to a receiver you control. Hermes, running on the same receiver host, can then invoke a bounded read-only MCP process over stdio.

The stdio process is local to that host. It is not a network service, it does not make the private database a Hermes-owned store, and it does not change how your chosen model provider handles context.

Prerequisites

  • An iPhone running iOS 18+ with the Health Bridge companion.
  • The Health Bridge receiver release pinned by the install guide, installed on macOS or Linux.
  • Hermes Agent installed on the same receiver host.
  • A chosen, phone-reachable receiver route. Prefer the private HTTPS routes in the site install guide; use Route C only for a deliberate same-LAN evaluation.
  • Apple Health categories that the user has explicitly authorized the companion to read.

Foreground and background delivery are best-effort and may be delayed by iOS and network conditions. Complete receiver routing and pairing before expecting Hermes queries to return synced data.

Configure Hermes during receiver setup

For the normal private-HTTPS path, use the receiver URL prepared by the pinned route guide and add the explicit Hermes flag:

health-bridge setup \
 --receiver-url \
 "$HEALTH_BRIDGE_RECEIVER_URL" \
 --configure-client hermes

For Route C, repeat the required non-loopback bind and fixed receiver port. Route C is HTTP only on the same trusted LAN:

health-bridge setup \
 --receiver-url \
 "$HEALTH_BRIDGE_RECEIVER_URL" \
 --receiver-host 0.0.0.0 \
 --receiver-port 8765 \
 --configure-client hermes

Explicit configuration boundary: The pinned setup flow can detect installed MCP clients, but it modifies none by default. Setup does not configure Hermes unless --configure-client hermes is present.

What setup registers and verifies

The built-in registrar derives the installed receiver command and absolute private database path from the local setup. It then runs a registration with this shape, using those generated values rather than a fixed executable or database location:

hermes mcp add health-bridge \
 --command <generated receiver command> \
 --args mcp start --db <absolute private database path>

After registration, setup runs hermes mcp test health-bridge. That test verifies that Hermes can start and speak to the registered MCP process. It does not prove that the phone can reach the receiver or that an upload has completed.

The resulting connection remains same-host stdio. It does not expose a remote MCP endpoint, and it does not move the SQLite database to Hermes.

The read-only MCP surface

The pinned receiver source used by this guide exposes exactly nine tools:

  • get_bridge_status — inspect receiver and sync status.
  • get_bridge_context_markdown — request source-grounded bridge context.
  • list_supported_timeseries_types — list time-series categories the receiver understands.
  • list_synced_metrics — list metrics that have actually reached this receiver.
  • get_timeseries — query bounded time-series observations.
  • get_workouts — query synced workout records.
  • get_sleep_summary — request a bounded sleep summary.
  • get_daily_summary — request a bounded daily summary.
  • explain_sources — inspect provenance and source limitations.

What you can ask

Use prompts that stay within the data and provenance the tools return:

  • Which metric categories have reached this receiver?
  • Summarize the available workout records and identify gaps.
  • What sleep information is available for the period I selected?
  • Explain which sources support this daily summary.

Missing means unknown, not zero. A denied category, no record, source gap, or sync gap can look the same from the available data. Health Bridge does not provide diagnosis, medical advice, or clinical interpretation.

Privacy and operational boundaries

Receiver boundary

The MCP process and database remain on infrastructure you control. Protect the receiver account, route, database, backups, and local Hermes configuration.

Model-provider boundary

Hermes decides which model receives the conversation and tool context. Review the remote model provider's handling, retention, and disclosure terms before enabling private health-data access.

Read the full privacy architecture for the device, route, receiver, agent, revocation, and deletion boundaries, and the Privacy Policy for the legal data-handling statement.

Troubleshooting

Hermes CLI is missing

Install and verify Hermes on the receiver host first. The registrar cannot add or test a client command that is not available there.

The registration test fails

Run hermes mcp test health-bridge directly and use its output to inspect the generated command, arguments, local permissions, and receiver installation.

Metrics are empty before the first upload

Finish pairing, authorize Apple Health access, and confirm the physical iPhone can reach the receiver. An empty receiver before the first upload is expected.

Missing data

Check authorization, source coverage, receiver reachability, and sync status. Do not substitute zero for absent observations or assume which boundary caused the gap.

For receiver routing, pairing, upload, and support checks, use the support guide.

Remove Hermes access without deleting health data

Run hermes mcp remove health-bridge to remove the Hermes registration. This does not delete the receiver database or Apple Health data, and it does not revoke the companion's HealthKit permissions. Use the separate controls described in the privacy architecture and support pages for those boundaries.

Sources and related pages

Set up the receiver route and pairing path before registering Hermes.