Skip to main content

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.

Server Information

PropertyValue
Server URLhttps://mcp.arlohealth.ai
TransportStreamable HTTP
AuthenticationOAuth 2.1 with PKCE
Server Card/.well-known/mcp.json

Tool Categories

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

Tool Annotations

Each tool includes MCP annotations that hint at its behavior:
AnnotationMeaning
readOnlyHintTool only reads data, does not modify state
destructiveHintTool may cause irreversible changes
idempotentHintMultiple identical calls produce same result
openWorldHintTool interacts with external systems

Read-Only vs Write Tools

Read-Only Tools

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

Write Tools

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

When to Use Arlo Tools

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:
CodeMeaning
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
  1. Call init_signup to get a fresh auth URL
  2. Direct user to complete OAuth flow
  3. Poll check_account_status until authenticated: true

Payment Issues

Error: subscription_required or payment_hold_failed
  1. Call get_subscription_status to check current billing state
  2. If no payment method: call create_payment_setup and direct user to Stripe checkout
  3. If card declined: advise user to update payment method in their Arlo account
  4. Retry confirm_provider_connection after payment is resolved

Consultation Stuck in MATCHING

If a consultation stays in MATCHING status for an extended period:
  1. Call get_consultation_status to confirm current state
  2. Inform user that providers are being matched (typically resolves within minutes)
  3. If stuck for >15 minutes, consider calling cancel_consultation and starting fresh

Triage Timing Out

If AI triage stops responding:
  1. Call get_consultation_status to check for pending questions
  2. Ensure webhook is configured to receive triage responses
  3. If no response after sending a message, retry with send_message

Webhook Not Receiving Notifications

  1. Call get_webhook_status to verify configuration
  2. Ensure webhookUrl is publicly accessible (no localhost)
  3. Verify webhookToken matches your server’s expected token
  4. 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.