HealthLoom documentation
HealthLoom syncs the data in Android Health Connect to a private, encrypted server, so an AI app like Claude can answer questions about your own health data. It works with any MCP client that supports OAuth.
Before you start
You need three things.
- An Android phone with Health Connect. Newer versions of Android include it. On older ones the app offers to install it.
- The HealthLoom app. HealthLoom for Android is currently in testing. To get access, email [email protected].
- An AI app that can connect to a remote MCP server: Claude, ChatGPT or another app that supports MCP connectors.
Set up the app
- Install HealthLoom and open it.
- Sign in with Google, or with an email address and password or an email link.
- When asked, choose what HealthLoom may read from Health Connect. Allow everything, including health data history and background reads. Your AI can only answer about data it can see.
- Save your recovery key when the app shows it. It is the only way to restore your data on a new phone without Google backup. The app also keeps a copy in Google's Block Store where available.
- Optionally, turn on notifications and exempt the app from battery saving. Both help background syncs and approval requests arrive on time.
- Let the first sync finish. After that, syncing runs in the background.
Connect Claude
The app has an Add to Claude button that opens HealthLoom in Claude’s connector directory. The listing currently opens in your browser. You can also open the listing yourself: claude.ai/directory/connectors/healthloom.
- On the HealthLoom page, tap Connect to Claude. Claude may remind you that a community connector hasn’t been reviewed in depth. That is expected for now.
- Claude opens a HealthLoom page that shows a connection code in the form XXXX-XXXX. Tap Open HealthLoom, or open the app, choose Enter a connection code and type it.
- Check the request in the app, then tap Approve. If you started from Claude’s website, the connection page may continue by itself. Otherwise tap Continue when it appears. HealthLoom sends a “Claude is connected” notification that takes you back to the app.
While you do this, the app shows “Waiting for Claude” and finishes by itself once the connection is approved, as soon as the notification arrives.
If you would rather add it by hand, use this server URL as a custom connector:
https://api.healthloom.link/mcp
In Claude, open the Connectors screen and tap +, name it “HealthLoom”, paste the URL, choose Sign in now and Register automatically, then Continue. The steps after that are the same.
The sign-in page also shows a separate four-character code. The approval screen in the app shows the same four characters. Check that they match before you approve. Only approve if you started connecting on your own screen just now.
The page says which app is asking and that it will be able to read the health data you have synced. The request can only be completed from your phone.
Connect ChatGPT and other apps
ChatGPT
- In ChatGPT, open Settings, then Apps & Connectors.
- Turn on Developer mode under Advanced if asked.
- Create a connector named “HealthLoom” and paste
https://api.healthloom.link/mcp. - Sign in when prompted, then approve the request in the HealthLoom app as above.
Other apps
Paste the same URL into any client that supports remote MCP servers with OAuth, such as Cursor or VS Code.
HealthLoom recognises some apps by name. If it does not recognise the app, the sign-in page and your phone show an “Unverified app” warning. An app can call itself anything when it registers, so HealthLoom does not trust the name. Only continue if you started the connection yourself and trust the address shown.
What you can ask
- “How did my sleep change in the weeks I trained hard?”
- “Is my resting heart rate trending up over the last two months?”
- “How close was my protein to my goal this week?”
- “Which lifts have stalled, and for how long?”
- “Show my squat progress over the last 90 days.”
- “Are there gaps in my data I should know about?”
- “My HRV was low yesterday. I had three drinks the night before. Log that.”
- “Am I recovered enough for a hard session today?”
Tools reference
HealthLoom gives your AI app 31 tools. 23 only read your data. 8 change what is stored in HealthLoom, and two of those, update and delete, are marked destructive, so Claude asks before it runs them. None of them write back to Health Connect on your phone.
Sleep and recovery
| Tool | What it does | Access |
|---|---|---|
Get sleep dataget_sleep_data | One row per night with optional stage breakdown (light, deep, REM, awake). Sessions from the same source that overlap or sit close together are merged so sleep is not double-counted. | Read |
Get HRVget_hrv | Heart rate variability (RMSSD) readings from any app that writes them to Health Connect. | Read |
Get readiness scoreget_readiness_score | A 0 to 100 recovery score for training decisions, based on sleep quality, resting heart rate, sleep debt and HRV when available. | Read |
Get anomaliesget_anomalies | Flags today's metrics that sit well away from your 30-day baseline, such as elevated resting heart rate or short sleep. | Read |
Heart and vitals
| Tool | What it does | Access |
|---|---|---|
Get heart rateget_heart_rate | Heart rate as raw samples, hourly averages or one summary per day. Averages are time-weighted so a workout sampled every second does not dominate. | Read |
Get blood oxygen (SpO2)get_spo2 | Blood oxygen readings, daily (the default) or per night, with average, minimum, maximum and a count of readings below 95%. | Read |
Get extended vitalsget_vitals_extended | Blood pressure, blood glucose, VO2 max and speed. Types with no data come back empty. | Read |
Activity
| Tool | What it does | Access |
|---|---|---|
Get stepsget_steps | Step counts as daily totals or as the raw Health Connect intervals. | Read |
Get daily activity summaryget_activity_summary | One daily overview across sleep, heart rate, SpO2, steps, calories, exercise and weight. Defaults to the last 7 days. | Read |
Get workout historyget_exercise_details | Workouts from Health Connect with exercise type, duration and session details. | Read |
Body
| Tool | What it does | Access |
|---|---|---|
Get body compositionget_body_composition | Weight, body fat percentage, lean mass and basal metabolic rate over time. | Read |
Get body measurementsget_measurements | Tape measurements per site over time, with the latest value and the change over the range. Defaults to the last 90 days. | Read |
Nutrition
| Tool | What it does | Access |
|---|---|---|
Get nutrition dataget_nutrition_data | Nutrition from Health Connect, per meal or as daily totals. | Read |
Training
| Tool | What it does | Access |
|---|---|---|
Get strength progressget_strength_progress | Per-exercise volume, top weight, estimated one-rep max and session history. Needs sessions with set detail, such as from a workout logging app. Defaults to the last 90 days. | Read |
Get training insightsget_training_insights | Stalled lifts, weekly sets per muscle group and muscle groups you have not trained recently, from structured set data. | Read |
Trends and comparisons
| Tool | What it does | Access |
|---|---|---|
Get metric trendsget_trends | Rolling averages, day-of-week patterns and trend direction for one metric over a period. | Read |
Get metric correlationget_correlations | The Pearson correlation between two daily metrics across a period. | Read |
Data quality and raw data
| Tool | What it does | Access |
|---|---|---|
Get data completenessget_data_completeness | A data-gap overview for the last 30 days by default: stale weigh-ins, food-logging coverage, missing sleep nights and the last record per source. | Read |
Get raw data rowsget_raw_data | Raw rows from one data table, newest first, for questions the other tools cannot answer. Returns up to 500 rows by default. | Read |
Get server statusget_status | Row counts per table and the time of the last sync. | Read |
Memory and context
| Tool | What it does | Access |
|---|---|---|
Get preferencesget_preferences | The saved analysis thresholds, profile facts and muted flags, with their current values. | Read |
Get goalsget_goals | The targets you have agreed, such as protein, weight or training volume. | Read |
Get events and observationsget_annotations | Logged context events and saved observations. Defaults to the last 30 days of events plus all observations. | Read |
Changes to your data
| Tool | What it does | Access |
|---|---|---|
Save preferenceset_preference | Saves a standing preference, such as how many sessions before a lift counts as stalled, so it applies in later conversations. | Write |
Set goalset_goal | Sets or clears a target you have agreed, such as daily protein or a weekly training amount. | Write |
Log context eventlog_event | Logs something your devices cannot see, such as alcohol, caffeine, illness or travel. | Write |
Save observationlog_observation | Saves a lasting finding about your patterns so it can be referred to later. | Write |
Log body measurementlog_measurement | Logs tape measurements (waist, chest, arm, thigh, hips, neck) or progress-photo references for one moment. | Write |
Import recordsimport_records | Adds records from outside sources such as CSV exports or manual entry. Records that match existing sessions are merged, and duplicates are skipped. | Write |
Update recordupdate_record | Edits or fills in an existing record by ID, for example adding sets to a workout. Replacing existing sets needs your confirmation. | Write, destructive |
Delete recorddelete_record | Permanently deletes one record, such as a duplicate or junk entry. It cannot be undone, and the next sync will not bring it back. | Write, destructive |
Data and sync
HealthLoom asks Health Connect for read access to 22 kinds of data:
- Heart: heart rate, resting heart rate, heart rate variability.
- Vitals: blood oxygen, respiratory rate, blood pressure, blood glucose, body temperature.
- Activity: steps, distance, speed, VO2 max, exercise sessions.
- Energy: active calories, total calories burned, basal metabolic rate.
- Sleep.
- Body: weight, height, body fat.
- Nutrition and hydration.
The app syncs about every 6 hours in the background, and you can sync at any time from the app. Without the health data history permission, only about the last 29 days are available. With it, older data can sync too.
Any data type you do not grant is skipped. The data comes from whatever apps and devices write to Health Connect, so HealthLoom only sees what those apps record.
Privacy and security
- Each user has their own encrypted database. Its key can only be unlocked with secrets held by your phone and the AI apps you approve, so stored data is ciphertext we cannot read.
- Every new AI connection has to be approved on your phone.
- What an AI app requests is sent to that AI provider and handled under its own terms and privacy policy.
- We do not sell your data, use it for advertising, or use your health data to train AI models.
Read the full Privacy Policy and Terms of Service.
Disconnect or delete
- Remove an AI app. In the HealthLoom app, open You, then Your AI, and tap Disconnect. That ends its access straight away. Disconnecting inside the AI app does not reach HealthLoom, so the app shows “Access approved” with when it was last used until you disconnect it here. Remove the connector in the AI app too.
- Stop syncing. Revoke Health Connect permissions for HealthLoom in Android settings. You can revoke them one at a time.
- Delete everything. Delete your account in the app or by email. See Delete your HealthLoom account.
Deleting your account does not delete data in Health Connect or an AI app's own chat history.
Troubleshooting
- My AI says it has no data, or some data is missing.
- Check that you allowed every Health Connect permission, including health data history. Without history only about 29 days are available. Then tap Sync now in the app and ask again. Syncs otherwise run about every 6 hours. If an app does not write to Health Connect, HealthLoom cannot see its data.
- I see an “Unverified app” warning.
- HealthLoom does not recognise the app asking for access. Continue only if you started the connection yourself and trust the address shown.
- The approval does not show on my phone.
- Open the HealthLoom app, choose Enter a connection code and type the XXXX-XXXX code from the sign-in page. Notifications can also be blocked or delayed by battery saving.
- I have a new phone.
- Sign in with the same account. If you do not have Google backup, the app asks for your recovery key. Do not tap Start fresh unless you accept losing access to your old data. Start fresh archives the old data for 7 days, then erases it.
- The connection stopped working.
- Remove the HealthLoom connector in your AI app and add it again. In the HealthLoom app, Add to Claude starts the connection again.
Support
Email [email protected]. HealthLoom is published by Loominate.