Developers / MCP

The HealthOS MCP server

HealthOS speaks the Model Context Protocol, so an AI agent can read and write a person’s own HealthOS data with the scopes that person picked. Each tool calls one /api/v1 operation, so the same scope checks apply.

With a personal token

Create a token in the HealthOS iPhone app under Settings → Account → API access, pick its scopes, and send it as a bearer header. Tokens cannot be created on the web yet. Any MCP client that can send a header works this way.

MCP
POST https://api.healthosx.com/api/mcp
Authorization: Bearer hos_…

With OAuth

Claude, ChatGPT and other assistants connect with OAuth 2.1: the person signs in to HealthOS, ticks what to share, and the assistant gets a token for that grant only.

MCP + OAuth 2.1
https://mcp.healthosx.com/mcp

GET https://mcp.healthosx.com/.well-known/oauth-protected-resource/mcp
GET https://mcp.healthosx.com/.well-known/oauth-authorization-server
POST https://mcp.healthosx.com/oauth/register    (RFC 7591)
GET  https://mcp.healthosx.com/oauth/authorize   (PKCE S256)
POST https://mcp.healthosx.com/oauth/token
POST https://mcp.healthosx.com/oauth/revoke
  • Discovery: 401 with WWW-Authenticate → /.well-known/oauth-protected-resource/mcp → /.well-known/oauth-authorization-server.
  • Clients: dynamic client registration (RFC 7591) or a client ID metadata document. PKCE with S256 is required.
  • Tokens: access tokens last 1 hour; refresh tokens rotate on every use. A connection lasts up to 365 days, then the person approves again.
  • Scopes: grouped into families on the consent screen. Reading is on by default; writes, DNA, Ask, community, export and account changes are off until ticked.
  • Limits: 60 calls a minute and 2,000 tool calls a day (UTC) per connection.
  • No raw genome: over OAuth, DNA tools return findings and lookups, never the whole genome.
  • Revoke: POST /oauth/revoke, or the person disconnects in Settings → Connected apps.
  • No payments: over OAuth, assistants get no checkout or payment tools. Buying stays in the HealthOS app and on personal tokens.

Rules every client gets

  • Confirm first. Destructive, payment and sharing tools refuse to run without confirm: true, so the agent has to ask the person.
  • Rate limit. 60 calls a minute per token.
  • Idempotency. Tools that create entries take an idempotency_key argument. Send the same one on a retry and the entry is created once.
  • Freshness. Health data carries meta.phone_last_sync_at: the API serves what the iPhone last synced.

Set up a developer tool

Replace hos_… with your token. Claude Code takes the command below; clients configured with an mcp.json that accepts a URL and headers take the second form.

Claude Code
claude mcp add --transport http healthos https://api.healthosx.com/api/mcp \
  --header "Authorization: Bearer hos_…"
mcp.json
{
  "mcpServers": {
    "healthos": {
      "url": "https://api.healthosx.com/api/mcp",
      "headers": { "Authorization": "Bearer hos_…" }
    }
  }
}

Tools

Generated from the tool list the live server returns. Every tool is listed; a call only succeeds when the token holds the tool’s scope. (225 tools)

access-grants6
ToolScopeKind
sharing_grant_accept
Accept someone's invitation to see their data. Accept a share (the invitee). Needs scope sharing:write. Ask the user before calling it.
sharing:writeshares
sharing_grant_invite
Share my data with someone by email. Share my data with someone. Needs scope sharing:write. Ask the user before calling it.
sharing:writeshares
sharing_grant_list
See who can see my data and whose data I can see. People I share with, and who shares with me. Needs scope sharing:read.
sharing:readread
sharing_grant_renew
Keep sharing my data with someone for another 30 days. Keep sharing for 30 more days (the owner). Needs scope sharing:write. Ask the user before calling it.
sharing:writeshares
sharing_grant_revoke
Stop sharing my data, or leave someone's shared data. Stop sharing (either person). Needs scope sharing:write.
sharing:writewrite
sharing_view_as_switch
View an account shared with me, or stop viewing it. Read what someone shares with me. Needs scope sharing:read.
sharing:readread
account1
ToolScopeKind
account_delete
Delete my account. Delete own account. Needs scope account:write. Ask the user before calling it.
account:writedeletes
assistant12
ToolScopeKind
assistant_answer_feedback
Give an answer a thumbs up or thumbs down. Rate an answer: thumbs up or down. Needs scope assistant:chat.
assistant:chatwrite
assistant_consent_read
Check whether I allowed Ask to use my health data. Read the assistant consent. Needs scope assistant:chat.
assistant:chatread
assistant_consent_withdraw
Withdraw Ask's permission to use my health data. Withdraw the assistant consent. Needs scope assistant:chat. Ask the user before calling it.
assistant:chatdeletes
assistant_conversation_delete
Delete a conversation. Delete an assistant conversation. Needs scope assistant:chat. Ask the user before calling it.
assistant:chatdeletes
assistant_conversation_list
Open my chat history. List assistant conversations. Needs scope assistant:chat.
assistant:chatread
assistant_conversation_read
Open an old conversation, or reopen the one I had open. Read one assistant conversation. Needs scope assistant:chat.
assistant:chatread
assistant_conversation_reply
Ask the assistant (JSON). Use it to: Ask what HealthOS doesn't know about me yet; Log a whole meal by describing it to Ask; Ask a question (typed, a suggested question, a reply button, or a retry). Needs scope assistant:chat.
assistant:chatwrite
assistant_upload_create
Attach a photo, lab report or DNA file to a question. Upload a file for the assistant. Needs scope assistant:chat.
assistant:chatwrite
assistant_upload_delete
Remove an attachment before sending. Delete an assistant upload. Needs scope assistant:chat. Ask the user before calling it.
assistant:chatdeletes
assistant_upload_list
List the files I gave Ask. List assistant uploads. Needs scope assistant:chat.
assistant:chatread
assistant_conversation_start
Start an assistant conversation. Use it to: Log a whole meal by describing it to Ask; Ask a question (typed, a suggested question, a reply button, or a retry). Needs scope assistant:chat.
assistant:chatwrite
assistant_conversation_reply_stream
Ask a question (typed, a suggested question, a reply button, or a retry). Ask the assistant (server-sent events). Needs scope assistant:chat.
assistant:chatwrite
blood-pressure4
ToolScopeKind
bp_readings_list
My blood-pressure readings, sessions and averages. Use it to: See my latest blood-pressure session (average of readings within 10 min), its category band and caption; See my 7-day and 30-day blood-pressure averages and the systolic/diastolic trend charts. Needs scope health:metrics:read.
health:metrics:readread
bp_reading_delete
Delete a blood-pressure reading I logged. Delete a logged blood-pressure reading. Needs scope health:logs:write. Ask the user before calling it.
health:logs:writedeletes
bp_reading_edit
Change a blood-pressure reading I logged (systolic, diastolic, pulse). Change a logged blood-pressure reading. Needs scope health:logs:write.
health:logs:writewrite
bp_reading_log
Log a blood-pressure reading (SYS, DIA, optional pulse), quick sheet or guided flow, including the second reading of a session. Log a blood-pressure reading. Needs scope health:logs:write.
health:logs:writewrite
challenges8
ToolScopeKind
challenges_challenge_accept
Accept a challenge. Needs scope community:write.
community:writewrite
challenges_challenge_cancel
Call off a challenge I started. Needs scope community:write.
community:writewrite
challenges_challenge_checkin
Tick off today's promise. I did it today (honour system). Needs scope community:write.
community:writewrite
challenges_challenge_create
Challenge friends. Needs scope community:write. Ask the user before calling it.
community:writeshares
challenges_challenge_decline
Decline a challenge. Needs scope community:write.
community:writewrite
challenges_friends_read
See who I can challenge. People I can challenge. Needs scope community:read.
community:readread
challenges_list
See my challenges. My challenges. Needs scope community:read.
community:readread
challenge_read
See my challenges. One challenge. Needs scope community:read.
community:readread
changes2
ToolScopeKind
list_changes
Sync change feed since a revision.
—read
sync_changes_read
Follow what changed in my data since a revision. Sync change feed. Needs scope health:summary:read.
health:summary:readread
community15
ToolScopeKind
community_challenge_end
End the circle's challenge. Needs scope community:write. Ask the user before calling it.
community:writedeletes
community_challenge_set
Set the circle's weekly challenge. Set the circle's challenge. Needs scope community:write.
community:writewrite
community_circle_create
Create a circle (duo, group, family) and choose what I share. Create a circle. Needs scope ['community:write', 'sharing:write']. Ask the user before calling it.
community:write, sharing:writeshares
community_circle_join
Join a circle from an invite and choose what I share. Join a circle from its invite link. Needs scope ['community:write', 'sharing:write']. Ask the user before calling it.
community:write, sharing:writeshares
community_circle_leave
Leave a circle. Needs scope community:write. Ask the user before calling it.
community:writedeletes
community_circle_read
Open one circle's settings. One circle. Needs scope community:read.
community:readread
community_circle_rename
Rename my circle. Rename a circle (owner). Needs scope community:write.
community:writewrite
community_circles_read
See my circles, members' rings and streaks, and share an invite link. My circles and what each member shares. Needs scope community:read.
community:readread
community_circle_visibility_set
What I share with this circle. Use it to: Let a circle member see all my health data, or stop it; Change what a circle sees of me (streak, rings). Needs scope ['community:write', 'sharing:write']. Ask the user before calling it.
community:write, sharing:writeshares
community_invite_rotate
Replace the circle's invite link. Replace the invite link (owner). Needs scope community:write.
community:writewrite
community_member_full_view
Open everything a friend lets me see. Everything a member lets you see (full view; never DNA). Needs scope community:read.
community:readread
community_member_remove
Remove a member from my circle. Remove a member (owner). Needs scope community:write. Ask the user before calling it.
community:writedeletes
community_nudge_send
Nudge or cheer a friend. Nudge or cheer a member. Needs scope community:write. Ask the user before calling it.
community:writeshares
community_nudges_mark_seen
Dismiss the nudges banner. Mark my nudges as seen. Needs scope community:write.
community:writewrite
community_nudges_read
See the nudges and cheers friends sent me. Nudges and cheers sent to me. Needs scope community:read.
community:readread
consents2
ToolScopeKind
consent_read
See which consents I gave (health data processing, meal photo, blood report, AI reads). Read a consent. Needs scope consents:read.
consents:readread
account_ai_consent_revoke
Withdraw a consent (health data processing or an AI feature). Withdraw a consent. Needs scope consents:write. Ask the user before calling it.
consents:writedeletes
devices1
ToolScopeKind
qingping_readings_read
See my room air: temperature, humidity, CO2, PM2.5, refreshed from the monitor's cloud. My room air: fresh readings from the monitor. Needs scope health:metrics:read.
health:metrics:readread
discovery7
ToolScopeKind
discovery_hypotheses_read
See the hypotheses the engine is testing about me. Hypotheses the engine tracks. Needs scope discovery:read.
discovery:readread
discovery_observation_add
Log or confirm an observation. Needs scope discovery:write.
discovery:writewrite
discovery_observation_delete
Delete an observation. Delete one observation. Needs scope discovery:write. Ask the user before calling it.
discovery:writedeletes
discovery_observations_read
See my logged observations. Observations with no other home. Needs scope discovery:read.
discovery:readread
discovery_signals_read
See the signals the discovery engine can use. Signal vocabulary. Needs scope discovery:read.
discovery:readread
discovery_run_start
"Run now": look for new patterns in my data now (also queues an open exploration). Queue a discovery run now. Needs scope discovery:write.
discovery:writewrite
discovery_explore_start
"Run now": look for new patterns in my data now (also queues an open exploration). Queue an open Opus exploration of your data (Tier C). Needs scope discovery:write.
discovery:writewrite
dna25
ToolScopeKind
dna_ancestry_read
Explore my ancestry: regions, map, zoom, pins, questions, ancient matches. Read my ancestry. Needs scope health:dna:read.
health:dna:readread
dna_ancestry_start
Unlock my ancestry (signed in). Run ancestry on the stored genome. Needs scope health:dna:write.
health:dna:writewrite
dna_calculator_run
Run a genetics calculator on my DNA (genotype frequency, relationship from shared cM, population distance, why a variant isn't covered, carrier odds for a couple, child traits). Run a genetics calculator on the account's DNA. Needs scope health:dna:read.
health:dna:readread
dna_data_delete
Delete my DNA: the account's kept file, report and ancestry, ancestry jobs, the Ask copy, and this device's copy. Delete the account's DNA. Needs scope health:dna:write. Ask the user before calling it.
health:dna:writedeletes
dna_deep_time_read
See how my ancestry splits between ancient sources. How my ancestry splits between ancient sources. Needs scope health:dna:read.
health:dna:readread
dna_family_accept
Accept a relative's invite to compare DNA. Accept a family invite. Needs scope health:dna:write. Ask the user before calling it.
health:dna:writeshares
dna_family_insights
See what my linked relatives tell me together. What my linked relatives tell me together. Needs scope health:dna:read.
health:dna:readread
dna_family_invite
Invite a relative to compare DNA. Needs scope health:dna:write. Ask the user before calling it.
health:dna:writeshares
dna_family_list
See my family DNA links. My family links. Needs scope health:dna:read.
health:dna:readread
dna_family_parents_related
See whether my parents share an ancestor. Whether my parents share an ancestor. Needs scope health:dna:read.
health:dna:readread
dna_family_read
See one family DNA link in full. One family link in full. Needs scope health:dna:read.
health:dna:readread
dna_family_relative_ancestry
Run ancestry on a relative's uploaded file. Run ancestry on an uploaded relative's file. Needs scope health:dna:write.
health:dna:writewrite
dna_family_remove
Remove a relative from my family (erases the comparison and any file I uploaded for them). End a family link. Needs scope health:dna:write. Ask the user before calling it.
health:dna:writedeletes
dna_family_update
Change what I share with a relative. Change what I share, or what they are to me. Needs scope health:dna:write. Ask the user before calling it.
health:dna:writeshares
dna_gene_read
Ask what my DNA says about one gene (its findings, medicines, and my genotypes at the positions HealthOS reads for it). What my DNA says about one gene. Needs scope health:dna:read.
health:dna:readread
dna_hla_read
Read my HLA type: immune genes and the medicine, coeliac and B27 findings. Read my HLA type (immune genes). Needs scope health:dna:read.
health:dna:readread
dna_hla_start
Type my immune genes (HLA) now, or retry after a failure. Type my immune genes (HLA) now. Needs scope health:dna:read.
health:dna:readwrite
dna_knowledge_lookup
Look up a variant, gene, position, condition, drug or trait against my own DNA. Look up a variant, gene, position, condition, drug or trait. Needs scope health:dna:read.
health:dna:readread
dna_medicines_read
Read my medicine genes: star alleles and how I process common drugs. Read my medicine genes (star alleles). Needs scope health:dna:read.
health:dna:readread
dna_medicines_start
Call my medicine genes (star alleles) now, or retry after a failure. Call my medicine genes now. Needs scope health:dna:read.
health:dna:readwrite
dna_painting_findings_read
See which painted stretch each DNA finding sits on. Which painted stretch each DNA finding sits on. Needs scope health:dna:read.
health:dna:readread
dna_painting_read
See my chromosome painting. Chromosome painting of my genome. Needs scope health:dna:read.
health:dna:readread
dna_report_read
Read my DNA report: story, summary, traits wall, chapters by tone, medication findings, ClinVar panel screen, drug table, genome numbers, deep genome, maternal and paternal line. Read my DNA report. Needs scope health:dna:read.
health:dna:readread
dna_story_share
Share my DNA story (just the fun parts or everything) by link or to WhatsApp, X, Telegram, Facebook, Reddit. Get a link to share my DNA story. Needs scope health:dna:read.
health:dna:readread
dna_variants_lookup
Look up specific rsIDs in my stored genome. Look up rsIDs in the stored genome. Needs scope health:dna:read.
health:dna:readread
documents2
ToolScopeKind
memory_document_fact_delete
Delete one fact taken from a document. Delete one extracted document fact. Needs scope memory:write. Ask the user before calling it.
memory:writedeletes
memory_document_facts_read
See the facts HealthOS took from a document I uploaded. Facts extracted from an uploaded document. Needs scope memory:read.
memory:readread
experiments3
ToolScopeKind
insights_experiment_control
Start or stop a self-experiment. Use it to: Stop a running experiment; Start a self-experiment from an insight. Needs scope insights:write.
insights:writewrite
insights_experiments_read
See my running and finished experiments with results (before vs during). Self-experiments. Needs scope insights:read.
insights:readread
insights_experiment_start
Start a self-experiment from an insight. Propose a self-experiment. Needs scope insights:write.
insights:writewrite
export4
ToolScopeKind
export_jobs_list
List my data exports. List export jobs. Needs scope health:export:read.
health:export:readread
health_export_start
Export my Apple Health data (date range, interval, CSV or JSON). Create an export job. Needs scope health:export:read.
health:export:readwrite
health_export_status
Export my Apple Health data (date range, interval, CSV or JSON). Export job status. Needs scope health:export:read.
health:export:readread
health_export_download
Export my Apple Health data (date range, interval, CSV or JSON). Download a finished export. Needs scope health:export:read.
health:export:readread
feedback2
ToolScopeKind
feedback_report_list
See the bug reports and ideas I sent. My reports. Needs scope account:read.
account:readread
feedback_report_send
Report a problem or send feedback. Report a problem or send an idea. Needs scope feedback:write.
feedback:writewrite
foods7
ToolScopeKind
food_barcode_lookup
Look up a product by its barcode. Look up a barcode. Needs scope health:nutrition:read.
health:nutrition:readread
food_catalogue_detail
Open a food and see its nutrients and portions. A food: portions and every nutrient. Needs scope health:nutrition:read.
health:nutrition:readread
food_catalogue_full_match
Fill in vitamins and minerals for a product that only has label values. Full nutrients for a label-only food. Needs scope health:nutrition:read.
health:nutrition:readread
food_catalogue_recommendations
See popular foods when I have no history yet. Foods to log now. Needs scope health:nutrition:read.
health:nutrition:readread
food_catalogue_search
Search for a food by name. Search foods (catalogue + your own, personally ranked). Needs scope health:nutrition:read.
health:nutrition:readread
food_history_list
See my recent, frequent, favorite and usual-at-this-hour foods. Your foods: recent, frequent, favourites, usual now. Needs scope health:nutrition:read.
health:nutrition:readread
food_custom_create
Log what I ate (one food, my plate, or my usual portion with a long-press). Create a custom food. Needs scope health:nutrition:write.
health:nutrition:writewrite
glucose2
ToolScopeKind
get_glucose_readings
CGM glucose readings (canonical mg/dL).
—read
glucose_readings_read
Glucose readings. Use it to: Export my glucose data as CSV, each reading tagged sleeping / workout / standard; See my glucose timeline (current value, trend, delta), scroll back for earlier days, and the glucose during a workout. Needs scope health:glucose:read.
health:glucose:readread
goals4
ToolScopeKind
goals_goal_clear
Go back to the derived target for a metric. Clear a goal override. Needs scope goals:write. Ask the user before calling it.
goals:writedeletes
goals_goal_set
Set my own target for a metric. Set a goal override. Needs scope goals:write.
goals:writewrite
goals_list_read
See my goals (derived targets and my overrides). Read goals (derived + overrides). Needs scope goals:read.
goals:readread
goals_progress_read
See today's progress against my goals. Today's progress against goals. Needs scope goals:read.
goals:readread
health18
ToolScopeKind
get_health_summary
One-day health summary (activity, vitals, sleep, workouts).
—read
activity_body_composition_read
See my body fat % and muscle-mass % trends. Projected metric series. Needs scope health:metrics:read.
health:metrics:readread
workouts_list
Projected workouts. Use it to: See my recent workouts (name, time, duration, kcal); See one workout: type, time, duration, kcal and average heart rate. Needs scope health:workouts:read.
health:workouts:readread
get_health_archive_coverage
Coverage: counts, range and sync sources. Use it to: See my Apple Health sync status, background sync status and missing permissions; See All health data: sample and event counts per type, sources and when each was last seen, and the date range. Needs scope health:metrics:read.
health:metrics:readread
health_archive_ecg
Read ECG recordings. Canonical ECG records. Needs scope health:metrics:read.
health:metrics:readread
health_archive_events
Read the raw Apple Health category events. Canonical category events. Needs scope health:metrics:read.
health:metrics:readread
health_archive_routes
Read workout routes. Canonical workout routes. Needs scope health:metrics:read.
health:metrics:readread
health_archive_samples
Read the raw Apple Health samples. Canonical samples. Needs scope health:metrics:read.
health:metrics:readread
health_archive_workout_series
Read workout series (heart rate, pace, …). Canonical workout series. Needs scope health:metrics:read.
health:metrics:readread
health_archive_workouts
Read full-fidelity workouts. Canonical workouts. Needs scope health:workouts:read.
health:workouts:readread
health_catalog_read
List every Apple Health type HealthOS supports. Supported Apple Health types. Needs scope health:summary:read.
health:summary:readread
health_summary_range
Read daily summaries over a date range. Summary over a date range. Needs scope health:summary:read.
health:summary:readread
sleep_stages_read
Projected sleep stages. Use it to: See the sleep-stages hypnogram for the night; See the night tiles: deep, REM and sleeping heart rate, each against my usual. Needs scope health:sleep:read.
health:sleep:readread
workout_insight_read
Read the AI take on this workout (headline, analysis, suggestion). The AI read of a workout. Needs scope health:workouts:read.
health:workouts:readread
workout_comparison_read
See "vs your usual": duration, kcal, burn rate and average HR against my recent workouts of the same kind. A workout vs your usual. Needs scope health:workouts:read.
health:workouts:readread
sleep_nights_list
See the night tiles: deep, REM and sleeping heart rate, each against my usual. A night's deep sleep, REM and sleeping heart rate vs usual. Needs scope health:sleep:read.
health:sleep:readread
workout_detail_read
See one workout: type, time, duration, kcal and average heart rate. One workout with its average heart rate. Needs scope health:workouts:read.
health:workouts:readread
health_summary_read
See the four Home rings: activity, nutrition, sleep and glucose. One-day summary. Needs scope health:summary:read.
health:summary:readread
home4
ToolScopeKind
home_headline_read
See today's headline (how I slept, what kind of day it is, illness or raised-HR warning). Today's headline: last night and the recovery verdict. Needs scope health:summary:read.
health:summary:readread
get_home_next_actions
My Next actions (things worth doing today). Use it to: See my Next actions (data-derived to-dos: glucose, sleep, workouts, meals logged, BP overdue or high, resting HR, HRV, out-of-range lab markers); See my lab-marker findings (flagged markers from my latest blood report). Needs scope health:summary:read.
health:summary:readread
home_streak_read
Tap the flame to see my logging streak. My logging streak (the flame on Home). Needs scope health:summary:read.
health:summary:readread
morning_review_read
See my morning review: time asleep, bedtime, sleep score, recovery verdict, last night's snoring, yesterday's activity and steps. My morning review. Needs scope health:summary:read.
health:summary:readread
insights6
ToolScopeKind
insights_card_answer
Answer an insight: True / Not true / Already knew / Tell me more. Feedback on an insight. Needs scope insights:write.
insights:writewrite
insights_card_dismiss
Dismiss (hide) an insight. Hide an insight. Needs scope insights:write.
insights:writewrite
insights_digest_read
Read today's morning digest. Today's morning digest. Needs scope insights:read.
insights:readread
insights_seen_mark
Go through my new insights (Home "N waiting", the story) and have them marked seen. Mark an insight card seen. Needs scope insights:write.
insights:writewrite
insights_list
See my insight cards by shelf (Heads-up, Findings, Discovery, Worth checking, Hunches, Trends) with evidence, mechanism and sources; the top one on Home; the story one card at a time. Published insight cards. Needs scope insights:read.
insights:readread
insight_read
See my insight cards by shelf (Heads-up, Findings, Discovery, Worth checking, Hunches, Trends) with evidence, mechanism and sources; the top one on Home; the story one card at a time. One insight with evidence and test history. Needs scope insights:read.
insights:readread
labs9
ToolScopeKind
get_labs_reports
Blood lab reports with markers and reference ranges.
—read
blood_marker_list
Browse the blood markers HealthOS reads: what each one is, what moves it, and the healthy range for my age and sex. The blood marker catalogue with ranges for my age and sex. Needs scope health:labs:read.
health:labs:readread
blood_marker_read
See one marker: my value against the optimal and normal range for my age and sex, and what it means. One blood marker: my values against my ranges, and what it means. Needs scope health:labs:read.
health:labs:readread
blood_report_create
Save a blood report (name, draw date, markers), also when I bring the report I read on healthosx.com/blood into my account. Create a blood lab report. Needs scope health:labs:write.
health:labs:writewrite
blood_report_delete
Delete a blood report and all its values. Delete a blood lab report. Needs scope health:labs:write. Ask the user before calling it.
health:labs:writedeletes
blood_report_parse_inline
Read the markers from a lab report file an assistant sends (base64, up to 3 MB). Read the markers from a lab report sent as base64 (for AI assistants). Needs scope health:labs:write.
health:labs:writewrite
blood_report_update
Rename a blood report, fix its draw date, or correct, add or remove a marker's value. Edit a blood lab report. Needs scope health:labs:write.
health:labs:writewrite
blood_summary_read
See my blood overview: latest report, how many markers are optimal, borderline or out of range, what needs attention, and my report history. Blood overview: marker status, blood age, needs attention, trends. Needs scope health:labs:read.
health:labs:readread
blood_reports_list
Blood lab reports. Use it to: See my 25(OH)D blood results over time on the vitamin D page; See my lab-marker findings (flagged markers from my latest blood report). Needs scope health:labs:read.
health:labs:readread
logs9
ToolScopeKind
custom_metric_log
Log a custom metric (e.g. blood pressure). Use it to: Tell Ask a fact about me to remember; Log a free-text "other" entry. Needs scope health:logs:write.
health:logs:writewrite
logs_entry_delete
Delete a manual log entry (medication, sleep factor, blood pressure or other custom metric); API only, the app has no delete UI yet. Delete a manual log entry (weight, medications, hydration, nicotine, custom-metrics, sleep-factors). Needs scope health:logs:write. Ask the user before calling it.
health:logs:writedeletes
logs_entry_edit
Edit a manual log entry (medication, sleep factor, blood pressure or other custom metric); API only, the app has no edit UI yet. Edit a manual log entry (weight, medications, hydration, nicotine, custom-metrics, sleep-factors). Needs scope health:logs:write.
health:logs:writewrite
logs_hydration_add
Log a drink of water. Log a hydration entry. Needs scope health:logs:write.
health:logs:writewrite
logs_medication_log
Log a medication (name, dose like "500mg", notes) or insulin units. Log a medication dose. Needs scope health:logs:write.
health:logs:writewrite
logs_nicotine_add
Log nicotine. Log a nicotine event. Needs scope health:logs:write.
health:logs:writewrite
logs_sleep_factor_log
Log a sleep factor (e.g. alcohol, "2 glasses"); API only, no screen opens the log for sleep factors yet. Log a sleep factor. Needs scope health:logs:write.
health:logs:writewrite
logs_weight_add
Log a weight. Log a weight measurement. Needs scope health:logs:write.
health:logs:writewrite
sun_session_save
Finish a sun session ("Done"), or log time in the sun by hand, and save the vitamin D I made. Log time in the sun (vitamin D). Needs scope health:logs:write.
health:logs:writewrite
media3
ToolScopeKind
nutrition_meal_photo_upload
Save a photo-logged meal with its name, times, food order, notes and photos. Attach photo to a meal. Needs scope ['health:nutrition:write', 'media:write'].
health:nutrition:write, media:writewrite
media_file_read
Open a meal: name, time, foods, nutrients, notes and photo. Serve own media. Needs scope ['health:nutrition:read', 'media:read'].
health:nutrition:read, media:readread
snore_audio_read
Play the snoring highlights back to back, or jump to one moment on the night chart. Play a recorded snore clip. Needs scope health:sleep:read.
health:sleep:readread
memory3
ToolScopeKind
insights_memory_forget
Forget a memory fact. Needs scope memory:write. Ask the user before calling it.
memory:writedeletes
insights_memory_read
See "What HealthOS knows about you" (memory facts). What HealthOS knows about you. Needs scope memory:read.
memory:readread
memory_fact_set
Tell HealthOS a fact to remember about me. Set a memory fact. Needs scope memory:write.
memory:writewrite
notifications10
ToolScopeKind
set_notifications_prefs
Change my notification settings. Use it to: Turn a kind of notification on or off; Set how many notifications I get per day; Let friends nudge and cheer me; Turn notifications back on after they paused; Set my quiet hours; Allow trash talk in challenges; Pick the tone (gentle, cheeky, savage); Change my time zone. Needs scope notifications:write.
notifications:writewrite
notifications_inbox_mark_read
Mark my notifications as read. Mark notifications as read (all when no ids). Needs scope notifications:write.
notifications:writewrite
notifications_inbox_read
See my notifications and the unread count. My notification inbox. Needs scope notifications:read.
notifications:readread
notifications_item_open
Open a notification (in the inbox or from the lock screen). A push was tapped. Needs scope notifications:write.
notifications:writewrite
notifications_prefs_read
See my notification settings. My notification settings. Needs scope notifications:read.
notifications:readread
notifications_reminder_add
Add a reminder (kind, time, label, weekdays). Add a reminder. Needs scope notifications:write.
notifications:writewrite
notifications_reminder_delete
Delete a reminder. Remove a reminder. Needs scope notifications:write. Ask the user before calling it.
notifications:writedeletes
notifications_reminder_toggle
Turn a reminder on or off. Change a reminder. Needs scope notifications:write.
notifications:writewrite
notifications_test_send
Send me a test notification. Send me a test push in my tone. Needs scope notifications:write.
notifications:writewrite
notifications_tones_read
See example lines for each tone. Example lines for each tone. Needs scope notifications:read.
notifications:readread
nutrition25
ToolScopeKind
get_nutrition_meals
Logged meals with items and totals.
—read
meal_detected_dismiss
Dismiss a detected meal. Not a meal: dismiss a detected rise. Needs scope health:nutrition:write.
health:nutrition:writewrite
meal_detected_list
See meals detected from my glucose spikes. Meals detected from glucose rises. Needs scope health:glucose:read.
health:glucose:readread
meal_glucose_response_read
See how my glucose responded to a meal, and my meal-score trend. How glucose responded to a meal. Needs scope health:glucose:read.
health:glucose:readread
meal_insight_read
Read the AI take on a meal. A plain-language read of a meal. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_food_preview_score
See a food's score and how today's nutrition changes if I eat it. What logging these foods would do to today. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_meal_analyze
Have the AI find the foods and amounts in my meal photo or description. Identify a meal from photos or a description. Needs scope health:nutrition:write.
health:nutrition:writewrite
nutrition_meal_delete
Delete a meal (or undo the one I just logged). Delete a meal and its items. Needs scope health:nutrition:write. Ask the user before calling it.
health:nutrition:writedeletes
nutrition_saved_meal_delete
Delete a saved meal. Needs scope health:nutrition:write. Ask the user before calling it.
health:nutrition:writedeletes
nutrition_suggestion_read
See today's food suggestion for my lowest-covered nutrient. The food to eat next for today's gaps. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_meals_list
See the meals I logged. Meals with nutrient totals. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_daily_read
See the meals I logged. Per-day nutrient totals. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_meal_log
Create a meal. Use it to: Log what I ate (one food, my plate, or my usual portion with a long-press); Save a photo-logged meal with its name, times, food order, notes and photos. Needs scope health:nutrition:write.
health:nutrition:writewrite
nutrition_meal_read
Open a meal: name, time, foods, nutrients, notes and photo. One meal with its foods and nutrients. Needs scope ['health:nutrition:read', 'media:read'].
health:nutrition:read, media:readread
nutrition_meal_update
Give an unnamed meal a short name (done automatically by AI). Edit a meal. Needs scope health:nutrition:write.
health:nutrition:writewrite
nutrition_meal_name_suggest
Give an unnamed meal a short name (done automatically by AI). An AI name for a meal. Needs scope health:nutrition:write.
health:nutrition:writewrite
nutrition_saved_meal_create
Save a meal or my plate as a named meal. Save a meal. Needs scope health:nutrition:write.
health:nutrition:writewrite
nutrition_saved_meal_update
Save a meal or my plate as a named meal. Rename or change a saved meal. Needs scope health:nutrition:write.
health:nutrition:writewrite
nutrition_saved_meals_list
See my saved meals and recent meals. Your saved meals. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_recent_meals_list
Recent meals to log again. Use it to: See my saved meals and recent meals; Log a recent or saved meal again. Needs scope health:nutrition:read.
health:nutrition:readread
nutrition_favorite_add
Star or unstar a food as a favorite. Star a food. Needs scope ['health:nutrition:write', 'health:nutrition:read'].
health:nutrition:write, health:nutrition:readwrite
nutrition_favorite_remove
Star or unstar a food as a favorite. Unstar a food. Needs scope ['health:nutrition:write', 'health:nutrition:read']. Ask the user before calling it.
health:nutrition:write, health:nutrition:readdeletes
nutrition_favorites_list
Star or unstar a food as a favorite. Your starred foods. Needs scope ['health:nutrition:write', 'health:nutrition:read'].
health:nutrition:write, health:nutrition:readread
nutrition_meal_copy
Log a recent or saved meal again. Log a past meal again. Needs scope ['health:nutrition:write', 'health:nutrition:read'].
health:nutrition:write, health:nutrition:readwrite
nutrition_saved_meal_log
Log a recent or saved meal again. Log a saved meal. Needs scope ['health:nutrition:write', 'health:nutrition:read'].
health:nutrition:write, health:nutrition:readwrite
orders8
ToolScopeKind
orders_catalog_read
See a product's price and whether it can be ordered in my country. Products you can order, with prices. Needs scope orders:read.
orders:readread
orders_list_read
See my orders and their status, and refresh them. Your orders. Needs scope orders:read.
orders:readread
orders_order_create
Order a device or book a test (CGM, scale, blood pressure monitor, room monitor, blood test), or buy more DNA questions or DNA API credits: details, shipping address, country, booking notes, review, continue to payment. Place an order to pay with the saved card. Needs scope orders:pay. Ask the user before calling it.
orders:paytakes a payment
orders_order_pay
Pay for my order (card, Apple Pay) and confirm it. Pay for an order with the saved card. Needs scope orders:pay. Ask the user before calling it.
orders:paytakes a payment
orders_order_read
See one order: status, shipping address, tracking number. One of your orders, with tracking. Needs scope orders:read.
orders:readread
orders_waitlist_join
Join the waitlist for a coming-soon test (microbiome, bio-age, hormones, allergy) or for hardware (CGM, scale, blood pressure, room monitor). Join a waitlist. Needs scope orders:write.
orders:writewrite
orders_waitlist_leave
Leave a waitlist. Needs scope orders:write. Ask the user before calling it.
orders:writedeletes
orders_waitlist_list
See which tests and devices I'm on the waitlist for. Waitlists I am on. Needs scope orders:read.
orders:readread
profile4
ToolScopeKind
update_profile
Update own profile. Use it to: "I don't do strength training": leave strength out of my activity score, or count it again; Set my low and high glucose alarm thresholds; Turn glucose alarms on or off; Set my date of birth; Set my height and weight; Set my first name; Set my pregnancy status; Set my biological sex; Change my country; Change the app language; Answer the setup quiz and tap Start; Change my time zone. Needs scope profile:write.
profile:writewrite
get_profile
Read own profile. Use it to: See my name, email and profile photo; See my health profile. Needs scope profile:read.
profile:readread
update_profile_onboarding
Update my setup-quiz answers. Use it to: Set my activity level; Change my main goal; Change a health-profile answer (focus areas, skin type, glucose sensor, diet, fasting, sleep, wearables); Set my metabolic health (healthy, prediabetic, type 1, type 2); Answer the setup quiz and tap Start. Needs scope profile:write.
profile:writewrite
profile_photo_set
Change my profile photo. Upload profile photo. Needs scope profile:write.
profile:writewrite
records2
ToolScopeKind
list_records
Raw rows of one synced table.
—read
synced_records_read
See my room air: temperature, humidity, CO2, PM2.5, refreshed from the monitor's cloud. Synced table records. Needs scope health:metrics:read.
health:metrics:readread
scores9
ToolScopeKind
activity_score_read
See my activity score for a day or range, its parts (steps, exercise, strength), the goal it is scored for and the next-step tip. Server-computed derived scores. Always sends kind=activity, order=desc. Needs scope health:summary:read.
health:summary:readread
daily_nutrition_score_read
Server-computed derived scores. Use it to: See the day's nutrition score, highlighted gaps, summary rings, macros, vitamins and minerals; See my energy, macro and micronutrient targets against today's intake. Needs scope health:summary:read.
health:summary:readread
recovery_score_read
Server-computed derived scores. Use it to: See this morning's recovery score, band, headline, illness / raised-HR flag, what moved it, and the 30-day history; See my HRV trend with my normal band, and my sleeping heart-rate trend. Needs scope health:summary:read.
health:summary:readread
sleep_score_read
See last night's (or a chosen night's) sleep score and its parts, and the sleep-score trend (last 7 or 30 nights). Server-computed derived scores. Always sends kind=sleep, order=desc. Needs scope health:summary:read.
health:summary:readread
sun_today_read
Server-computed derived scores. Use it to: See today's vitamin D (total IU vs requirement, split into sun / food / supplements) and how well the model fits me (dose-response, IU needed for my target, ceiling warning); See "Go outside for N min" or "Take your supplement today" in Next actions. Needs scope health:summary:read.
health:summary:readread
bp_trends_read
See my 7-day and 30-day blood-pressure averages and the systolic/diastolic trend charts. Server-computed derived scores. Always sends kind=blood_pressure, order=desc. Needs scope ['health:metrics:read', 'health:summary:read'].
health:metrics:read, health:summary:readread
get_scores_days
Every ring per day, as Home and Daily show them. Use it to: See the week strip and month calendar of mini rings (one score per day for the current pillar) and the week average; See today's glucose score and its breakdown (mean, variability, max spike); See the four Home rings: activity, nutrition, sleep and glucose. Needs scope health:summary:read.
health:summary:readread
get_scores
Server-computed derived scores. Use it to: See the week strip and month calendar of mini rings (one score per day for the current pillar) and the week average; See the four Home rings: activity, nutrition, sleep and glucose. Needs scope health:summary:read.
health:summary:readread
glucose_score_read
See today's glucose score and its breakdown (mean, variability, max spike). Server-computed derived scores. Always sends kind=glucose, order=desc. Needs scope health:summary:read.
health:summary:readread
sensors1
ToolScopeKind
sensors_cgm_status_read
See my CGM sensor status. My CGM sensor status. Needs scope health:glucose:read.
health:glucose:readread
sessions3
ToolScopeKind
sessions_all_revoke
Sign out everywhere. Needs scope account:write. Ask the user before calling it.
account:writedeletes
sessions_list_read
See where I am signed in. List active sessions. Needs scope account:read.
account:readread
sessions_one_revoke
Sign out one device. Revoke one session. Needs scope account:write. Ask the user before calling it.
account:writedeletes
sleep3
ToolScopeKind
snore_night_delete
Delete a night: its score, snores and recorded moments. Delete a snore night, its snores and clips. Needs scope health:logs:write. Ask the user before calling it.
health:logs:writedeletes
snore_night_read
One snore night with its chart and clips. Use it to: Play the snoring highlights back to back, or jump to one moment on the night chart; See a night's snoring report (score, band, time snoring of time recorded, epochs with pauses), last night on the Sleep page, or a past night. Needs scope health:sleep:read.
health:sleep:readread
snore_nights_list
See a night's snoring report (score, band, time snoring of time recorded, epochs with pauses), last night on the Sleep page, or a past night. Snore nights: score, band, time snoring. Needs scope health:sleep:read.
health:sleep:readread
sun1
ToolScopeKind
sun_advice_read
See "Go outside for N min" or "Take your supplement today" in Next actions. Go outside for N minutes, or take the supplement today. Needs scope health:summary:read.
health:summary:readread