# Connect Apple Health to Claude with myself.md

[By Cody Bontecou](https://x.com/CodyBontecou) · 2026-10-19

myself.md lets Claude query the Apple Health records you choose to share from your iPhone. The app reads supported records through HealthKit; Claude connects to the myself.md MCP server. You select the data in a profile and approve agent access before a private read can succeed.

This walkthrough starts with steps and sleep for a short date range. You can use it to answer a question such as, "What do my selected sleep and step records show for one completed day?" The result depends on what your phone actually recorded and what you permit it to share.

## Before you start

You need an iPhone with an installed myself.md build, Apple Health records, a myself.md account for the hosted connection, and a Claude account that can add custom remote MCP connectors. Public App Store distribution is still coming soon. If you do not already have an installed development or test build, start with the [health dataset catalog](https://myself.md/datasets/health), or [source and build instructions](https://github.com/CodyBontecou/myself.md).

Check [current pricing](https://myself.md/pricing) before running queries. Export and query allowances apply; optional hosted storage has separate limits. Keep myself.md open and your phone online for the first live query so you can distinguish setup problems from phone availability.

## 1. Select a small Health profile

In the phone app, create or open an export profile. Give it a recognizable name, such as `Sleep and steps`.

Open **Data selection** and choose the supported HealthKit types you want Claude to read. Start with step count and sleep analysis if those records are available on your phone. Leave screen time, location and other health types unselected for this example. The [health catalog](https://myself.md/datasets/health) lists supported sources and limitations.

Tap **Permissions** beside Health to review iOS access. Allow only **Steps** and **Sleep** when the Health permission sheet appears; do not use Turn On All. If you previously denied access, iOS may not show the sheet again. Open **Settings → Privacy & Security → Health → myself.md** and enable only those two read permissions. Returning to the app and seeing “Health permissions reviewed” does not prove that either read permission is on. Your profile selection and Apple's permission controls both matter. Selecting a type in myself.md cannot override a denied iOS permission. Apple explains how to review app access in its [Health sharing guide](https://support.apple.com/guide/iphone/share-your-health-data-iph5ede58c3d/ios).

Save the profile. If you are also exporting files, **Destination & output** controls their destination, format and lookback. A live agent query separately supplies its requested time interval and must fit the profile's permissions and query limits.

## 2. Connect Claude to myself.md

In Claude, open **Customize → Connectors** and add a custom connector. Name it `myself.md` and use this remote MCP server URL:

```text
https://myself.md/mcp
```

If Claude says a connector with this URL already exists, open that existing connector instead of adding a duplicate. Check which myself.md account it uses before proceeding. Use your own account to share your Health records.

Choose the OAuth sign-in flow and complete the myself.md consent screen. Use the same personal myself.md account on the phone. Team or Enterprise workspaces may require an owner to add the connector before members can connect. Claude's [custom connector instructions](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) cover its current interface and account requirements.

Enable the connector in the conversation where you want to use it. For a remote connector, requests originate from Anthropic's infrastructure; reaching the endpoint in your own browser alone does not prove Claude can connect.

Signing in connects your account. The phone and profile still need their own setup and approval.

## 3. Pair the phone and approve Health access

You can ask your assistant to start setup with:

```text
Set up myself.md using https://myself.md/llms.txt
```

Complete the returned phone-pairing handoff on your iPhone if the phone is not already paired. Finish the on-device review; an opened link or displayed QR code is not confirmation that pairing succeeded. Ask Claude to check the connected phone again.

On the phone, open **Settings → Agent connection** and check the account and server. For this hosted walkthrough, the server must be `https://myself.md`, matching Claude’s connector. A connection to an isolated test server does not pair the phone with the public service.

Open your `Sleep and steps` profile in the phone app, expand **Agent permissions**, and enable **Health** after reading the approval dialog. Keep **Screen time**, **Location** and **Logs** off for this walkthrough.

The Health permission applies to agents you allow for this account, not exclusively to the Claude conversation in front of you. It permits reads of this profile's selected Health data when phone permissions allow them. After sync, it also controls access to eligible old cloud exports for the profile. Review the [privacy policy](https://myself.md/privacy) before enabling it; approved records can reach the assistant's provider.

Ask Claude to refresh the phone's data catalog. It should find the intended phone and saved profile, with the relevant Health types and agent permission. A profile name helps you recognize it; tool calls must use the identifiers returned by discovery.

## 4. Run a bounded first query

Try this prompt:

```text
Use myself.md to find my connected iPhone and the approved
"Sleep and steps" profile. Show the available Health types first.

Read only its selected step-count and sleep records for one
completed day, using my local timezone for day boundaries.
Tell me the exact date range and timezone you use.

Wait for every query to complete and follow all result pages.
Summarize the available records, name missing days and explain
any overlap or source limitations before calculating totals.
Do not read other health types, screen time, location or logs.
```

Start with one day. Native Health responses preserve detailed source fields and can be large; a week of steps and sleep may exceed a Claude chat’s working context. If that happens, report the incomplete interval and start a new query for a smaller range. Keep the original filters unchanged when following an existing pagination cursor.

An agent normally discovers the phone with `list_connected_phones`, reads `get_phone_data_catalog`, and uses `query_phone_data` for a supported type. Step count and sleep may require separate queries. It then polls `get_phone_request` until each request completes and follows returned pagination cursors. The [API reference](https://myself.md/docs/reference) describes the current schemas and limits.

Queued or running requests have not returned usable records yet. If a request fails, expires or disappears, Claude should report that outcome instead of producing an analysis from the request receipt. Your phone may need to remain open and reachable while it processes the read. If the service explicitly reports that a restart lost a request, retry that page with its original interval and cursor and a new request key. Continue polling an existing queued or running request instead of duplicating it.

## 5. Check the answer against the records

The following is a fictional example of an answer's supporting table. These are invented daily step totals for illustrating the arithmetic, not a myself.md tool response or records from an actual phone.

| Day       | Fictional step total |
| --------- | -------------------: |
| Monday    |                3,000 |
| Tuesday   |                4,500 |
| Wednesday |                6,000 |

For those three complete days, the total is 13,500 steps and the average is 4,500 steps per day. If the requested interval were seven days and the other four days had no returned records, the answer should identify that gap. It should not silently treat missing records as zero.

Actual HealthKit samples can come from multiple sources and overlap. myself.md preserves source data; it does not automatically deduplicate overlapping records or turn every query into a daily summary. Before accepting a total, ask which records, units, sources and day boundaries were used. For sleep, check how overlapping or staged intervals were handled before interpreting a duration.

Ask descriptive questions first: which days contain records, how the available values vary, and where gaps occur. A chart or apparent relationship between sleep and activity does not establish a cause or a medical diagnosis.

## If something does not work

| What you see                     | What to check                                                                                                                                               |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| No connected phone               | Complete pairing with the same account, then refresh discovery.                                                                                             |
| Profile missing or access denied | Save the profile, review its selected Health types and Health agent permission, and let the phone sync.                                                     |
| Empty Health results             | Check whether Health contains those records, review iOS read permissions and confirm the date range. An empty result does not prove permission was granted. |
| Query stays queued               | Bring myself.md to the foreground, check connectivity and poll the existing request. Avoid creating repeated queries while one is pending.                  |
| A type or tool is unavailable    | Read the returned catalog and live tool schemas. Use a supported selection or the documented owner handoff; do not guess a tool name or record type.        |
| Claude cannot connect            | Check the exact MCP URL, connector enablement and OAuth sign-in. Workspace policies can restrict custom connectors.                                         |

If you want Claude to read an export while the phone is offline, that is a separate path: create a cloud export and approve the relevant profile access, then use `list_cloud_exports` and `read_cloud_export`. A paired phone, a local file or a successful live query does not by itself mean a shared cloud export exists.

## Stop future access when you are done

Turn off **Health** under the profile's **Agent permissions** and let the phone sync. This blocks future reads of that selected Health data, including eligible old exports governed by the profile. You can also review and revoke agent access in the authenticated dashboard and disconnect the connector in Claude.

Revocation cannot recall records already delivered to an assistant or its provider. Review their own retention controls if you want to remove copies held there.

For another query, return to the [setup guide](https://myself.md/docs), choose the smallest profile that answers your question, and check the completed records before interpreting the result.
