Choose an integration
MCP
Connect an MCP client to
https://mcp.arlohealth.ai.REST API
Use authenticated HTTP endpoints with the same patient and conversation workflows.
Follow a care conversation
1. Read the profile
Callget_user_profile to review the patient’s tier, capabilities, patients, connections, and health-record counts. capabilities describes what is ready and which inputs can come from call parameters, the profile, an insurance link, or the visit payment page.
Use update_patient_info to save demographics, contact information, or medical history. A provider visit needs the patient’s name, date of birth, gender, and home address. capabilities.visit.atPayment lists identity fields the Stripe page will ask for if they are not saved.
2. Connect insurance when useful
connect_insurance returns a URL for the patient to open. Relay its notice first. Each call adds a connection: use patientId for a dependent, connect another insurer with another call, or ask the patient to re-consent to a connection with expired or failed status. Read the connection state in get_user_profile.connections; records import in the background.
3. Start or resume a conversation
Confirm the patient’s current physical location. Uselist_conversations to find a relevant thread and continue it with send_message; otherwise start one with contextMessage and the ISO 3166-2 region.
4. Exchange messages and await replies
Callsend_message with the conversation ID and one or more first-person messages. It waits for a reply by default. Set waitForReply: false to send without waiting, then call wait_for_reply.
send_message requires current conversation state: read with get_conversation or wait_for_reply, or pass the latest lastSeenMessageId. If a wait returns stillWaiting, resume with wait_for_reply; do not send the same message again. On agent hosts, idempotencyKey is available for start_conversation, send_message, and create_care_job.
If the patient moves, pass their current ISO 3166-2 code as region on send_message. It applies to the next provider request, not one already in flight.
Connector hosts support about 55 seconds per wait call. Agent runtimes default to 240 seconds and allow up to 600 seconds with maxWaitSeconds; without a progress token or logging capability, a call is capped at 300 seconds.
5. Hand off the payment gate
When triage reachesPAYMENT_REQUIRED, relay the paymentGate.consultationSummary and offer the patient paymentGate.paymentUrl. The patient reviews the visit details and approves a temporary hold on the Stripe page. There is no card setup. The hold is captured only if a doctor joins and released otherwise.
After approval, the conversation moves to MATCHING; use wait_for_reply for provider activity. cancel_request can dismiss a payment gate or cancel a matching request while keeping the conversation open.
6. Continue the provider visit
DuringWITH_PROVIDER, messaging is asynchronous. Use send_message to respond and wait_for_reply to await the provider. Use get_conversation with includeNotes: true to read provider notes for visits that have them. Read prescriptions with get_prescriptions.
Other capabilities
Health records
Connect insurance sources and read coverage, claims, and clinical records.
Care pricing
Find nearby options, check a named provider, and read public evidence.
Care jobs
Request referral or appointment work on a patient-approved hosted sheet.
Authentication and events
Claude, ChatGPT, and Grok connector interfaces manage OAuth. Agent clients can use OAuth discovery; a stdio or local client without a bearer token can callinit_signup and poll check_account_status. Those tools and register_webhook are not advertised on connector hosts.
Agent runtimes that need notifications between turns can call register_webhook with a public HTTPS URL. See Authentication and Webhook Tools.