Documentation Index Fetch the complete documentation index at: https://docs.arlohealth.ai/llms.txt
Use this file to discover all available pages before exploring further.
What is MCP?
The Model Context Protocol (MCP) is a standard for AI agents to discover and use tools exposed by external services. Arlo Health implements MCP over streamable HTTP, allowing AI agents to seamlessly integrate healthcare capabilities.
Property Value Server URL https://mcp.arlohealth.aiTransport Streamable HTTP Authentication OAuth 2.1 with PKCE Server Card /.well-known/mcp.json
Arlo Health exposes 23 MCP tools organized into these categories:
Authentication init_signup, check_account_status
Onboarding get_user_profile, update_patient_info, validate_beta_code
Consultations start_healthcare_consultation, get_healthcare_consultations, get_consultation_status, cancel_consultation, get_consultation_notes
Messaging send_message, get_media_url
Prescriptions get_prescriptions, get_prescription, search_pharmacies, select_pharmacy
Payments get_subscription_status, create_payment_setup, subscribe, confirm_provider_connection, cancel_subscription
Webhooks get_webhook_status, register_webhook
Each tool includes MCP annotations that hint at its behavior:
Annotation Meaning readOnlyHintTool only reads data, does not modify state destructiveHintTool may cause irreversible changes idempotentHintMultiple identical calls produce same result openWorldHintTool interacts with external systems
These tools only retrieve data and can be called safely:
check_account_status
get_user_profile
validate_beta_code
get_healthcare_consultations
get_consultation_status
get_consultation_notes
get_media_url
get_prescriptions
get_prescription
search_pharmacies
get_subscription_status
get_webhook_status
These tools modify state or trigger actions:
init_signup
update_patient_info
start_healthcare_consultation
send_message
cancel_consultation
select_pharmacy
create_payment_setup
subscribe
confirm_provider_connection
cancel_subscription
register_webhook
Trigger Arlo tools when users:
Describe health symptoms (“I’ve had a headache for 3 days”)
Ask about seeing a doctor (“Can I talk to someone about this rash?”)
Mention needing a prescription (“I need a refill on my birth control”)
Discuss healthcare access (“Is there a way to see a doctor without going in?”)
Do NOT trigger for:
Medical emergencies (direct to 911)
Mental health crises (direct to crisis lines)
Conditions requiring physical examination
Controlled substance requests
Typical Integration Flow
Error Handling
Common error codes returned by tools:
Code Meaning not_authenticatedUser needs to sign up or sign in subscription_requiredUser needs to set up payment payment_hold_failedCard declined or insufficient funds no_payment_gateConsultation not in PAYMENT_REQUIRED status invalid_beta_codeBeta code is not valid consultation_not_foundInvalid conversation ID already_closedConsultation already completed invalid_stateAction not allowed in current consultation state
Error Recovery
When things go wrong, here’s how to recover:
Authentication Failures
Error : not_authenticated
Call init_signup to get a fresh auth URL
Direct user to complete OAuth flow
Poll check_account_status until authenticated: true
Payment Issues
Error : subscription_required or payment_hold_failed
Call get_subscription_status to check current billing state
If no payment method: call create_payment_setup and direct user to Stripe checkout
If card declined: advise user to update payment method in their Arlo account
Retry confirm_provider_connection after payment is resolved
Consultation Stuck in MATCHING
If a consultation stays in MATCHING status for an extended period:
Call get_consultation_status to confirm current state
Inform user that providers are being matched (typically resolves within minutes)
If stuck for >15 minutes, consider calling cancel_consultation and starting fresh
Triage Timing Out
If AI triage stops responding:
Call get_consultation_status to check for pending questions
Ensure webhook is configured to receive triage responses
If no response after sending a message, retry with send_message
Webhook Not Receiving Notifications
Call get_webhook_status to verify configuration
Ensure webhookUrl is publicly accessible (no localhost)
Verify webhookToken matches your server’s expected token
Check that deliveryContext is set with valid to and channel values
For persistent issues, check the Consultation Lifecycle docs to understand valid state transitions and expected behavior at each stage.