Skip to main content

Choose an integration

MCP

Connect an MCP client to https://mcp.arlohealth.ai.

Claude and ChatGPT

Use the hosted connector guides for Claude and ChatGPT.

REST API

Use authenticated HTTP endpoints with the same patient and conversation workflows.

Follow a care conversation

1. Read the profile

Call get_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. Use list_conversations to find a relevant thread and continue it with send_message; otherwise start one with contextMessage and the ISO 3166-2 region.
Write health concerns in the patient’s first-person voice. The patient can share relevant details before you call.

4. Exchange messages and await replies

Call send_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 reaches PAYMENT_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

During WITH_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 call init_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.