Skip to main content
Arlo Health exposes tools over streamable HTTP at https://mcp.arlohealth.ai. The server uses OAuth 2.1 with PKCE and supports continuous conversations that can include multiple provider visits.

Tool categories

Authentication

init_signup, check_account_status

Profile

get_user_profile, update_patient_info

Health Records

connect_insurance, disconnect_connection, get_health_records

Conversations

list_conversations, start_conversation, get_conversation, cancel_request

Messaging

send_message, wait_for_reply, get_media_url

Prescriptions

get_prescriptions

Care Pricing

search_care_prices, check_network_status, get_provider_evidence

Care Jobs

create_care_job, get_care_jobs, respond_to_care_job

Webhooks

register_webhook

Tool access by host

Connector hosts such as Claude, ChatGPT, and Grok manage OAuth in their interface. They do not advertise init_signup, check_account_status, or register_webhook. Agent runtimes can use the full tool set; init_signup is for clients that connect before obtaining a bearer token. The arlo.health/idempotencyKey call metadata can carry a retry key on any host. Use the same key only to retry the same intended action.

Read-only and state-changing tools

These lists follow each tool’s annotations.readOnlyHint. Read-only: check_account_status, get_user_profile, get_health_records, list_conversations, get_conversation, wait_for_reply, get_media_url, get_prescriptions, search_care_prices, check_network_status, get_provider_evidence, get_care_jobs. State-changing: init_signup, update_patient_info, connect_insurance, disconnect_connection, start_conversation, cancel_request, send_message, register_webhook, create_care_job, respond_to_care_job.

Typical flow

  1. Read get_user_profile for tier, capabilities, patient profiles, insurance connections, and health-record counts.
  2. Gather a first-person description and the patient’s current physical region, then call start_conversation with contextMessage and an ISO 3166-2 region.
  3. Answer triage with send_message. It waits for the reply by default; use waitForReply: false when the agent will call wait_for_reply separately.
  4. When the conversation reaches PAYMENT_REQUIRED, relay the summary and offer the Stripe page at paymentGate.paymentUrl. The patient approves a temporary hold there; it is captured only if a doctor joins, and released otherwise. No card setup is required.
  5. Use wait_for_reply during an active turn, or configure a webhook for notifications between turns.
Insurance connections, pricing tools, prescriptions, and care jobs are described in their linked references. These capabilities can be used independently of a provider conversation. Any successful tool result can carry an updates array: care-job events since your last call, such as the care team asking the patient a question. Act on each item’s agentInstructions. See Care Jobs.

Conversation states

A conversation remains available after a request finishes or is canceled. A visit is a provider engagement within that conversation.