Chia Health MCP Server — Patient workflow integration for a licensed US telehealth platform. Browse GLP-1 medications (semaglutide, tirzepatide), peptide therapies (sermorelin, NAD+, glutathione), and longevity treatments. HIPAA-compliant. 30 tools.
Chia Health MCP Server
MCP (Model Context Protocol) server for the Chia Health telehealth prescription platform. Enables AI assistants (ChatGPT, Claude, Gemini, Copilot, and custom agents) to help patients browse medications, complete medical intake, sign consent documents, place orders, pay via Stripe ACP, and manage their treatment — all through natural conversation.
Available treatments include GLP-1 medications (semaglutide, tirzepatide including tablets), peptide therapies (sermorelin, NAD+, glutathione), and longevity programs. All prescriptions are evaluated by licensed US healthcare providers and delivered from FDA-regulated 503A compounding pharmacies across all 50 US states + DC.
Getting Started
doctormcp is a remote MCP server — connect over the network, no local installation required.
Server URL: https://mcp.chia.health/
Transport: Streamable HTTP
Metadata: https://mcp.chia.health/server.json
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"chia-health": {
"url": "https://mcp.chia.health/"
}
}
}
Cursor
Add to .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"chia-health": {
"url": "https://mcp.chia.health/"
}
}
}
Cline / VS Code
Add to your Cline MCP settings:
{
"mcpServers": {
"chia-health": {
"url": "https://mcp.chia.health/"
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"chia-health": {
"serverUrl": "https://mcp.chia.health/"
}
}
}
Other MCP Clients
Any MCP client that supports streamable HTTP transport can connect:
- Server URL:
https://mcp.chia.health/ - Transport: Streamable HTTP
- Server metadata:
https://mcp.chia.health/server.json
Verify Connection
Once connected, your AI assistant can immediately call these public tools (no auth required):
doctormcp_list_categories → medication categories
doctormcp_list_medications → all medications with pricing
doctormcp_check_availability → check if a medication ships to your state
What Can Your AI Assistant Do?
| Category | Tools | Auth | |----------|-------|------| | Discovery — browse medications, pricing, availability | 5 | No | | Qualification — eligibility checks, intake questionnaires | 4 | Partial | | Consent — present and sign consent documents | 4 | Yes | | Ordering — place orders, upload ID verification | 4 | Yes | | Checkout — Stripe ACP payments or payment links | 5 | Yes | | Patient Portal — log weight, message provider, refills | 6 | Yes | | Provider — answer follow-up questions from your provider | 2 | Yes |
Important: All prescriptions are evaluated and approved by licensed US healthcare providers. doctormcp facilitates the patient workflow — it does not make clinical decisions.
Authentication
Discovery tools are public. Patient-specific tools require a bearer token issued during the intake flow. See the Tool Catalog for per-tool auth requirements.
Tool Catalog
Discovery (public, no auth)
| Tool | Description |
|---|---|
| doctormcp_list_medications | List all medications with categories, forms, and pricing |
| doctormcp_get_medication_details | Detailed info for a specific medication (plans, pricing, what's included) |
| doctormcp_check_availability | Check if a medication ships to a given state |
| doctormcp_get_pricing | Price breakdown for a specific medication/form/plan combo |
| doctormcp_list_categories | List medication categories (Weight Loss, Peptides, Anti-Aging, etc.) |
Qualification (public + auth)
| Tool | Auth | Description |
|---|---|---|
| doctormcp_check_eligibility | No | Pre-screen age, state, BMI, and medical conditions |
| doctormcp_get_intake_questions | No | Get the structured intake questionnaire for a medication |
| doctormcp_submit_intake | Yes | Submit completed intake for provider review |
| doctormcp_get_intake_status | Yes | Check intake review status (under review, approved, denied) |
Consent (auth required)
| Tool | Description |
|---|---|
| doctormcp_get_required_consents | List all 5 consent documents needed for an intake |
| doctormcp_get_consent_text | Get full verbatim text of a consent document |
| doctormcp_submit_consent | Record patient's consent confirmation with audit trail |
| doctormcp_get_consent_status | Check which consents are complete/pending |
Ordering (auth required)
| Tool | Description |
|---|---|
| doctormcp_create_order | Create a medication order (requires all consents complete) |
| doctormcp_get_order_status | Check order status and tracking info |
| doctormcp_get_required_documents | List required ID documents for an order |
| doctormcp_upload_document | Upload photo ID or selfie for identity verification |
Checkout / Stripe ACP (auth required)
| Tool | Description |
|---|---|
| doctormcp_create_checkout | Create checkout session; returns ACP details + fallback payment_url |
| doctormcp_update_checkout | Update a pending checkout (promo codes, shipping) |
| doctormcp_complete_checkout | Complete payment with a Stripe Shared Payment Token (ACP path) |
| doctormcp_get_checkout_status | Poll payment status after sending a payment link (fallback path) |
| doctormcp_cancel_checkout | Cancel an in-progress checkout |
Patient Portal (auth required)
| Tool | Description |
|---|---|
| doctormcp_log_weight | Log weight for progress tracking |
| doctormcp_log_side_effects | Report side effects (severe = auto-flagged for provider) |
| doctormcp_message_provider | Send a message to the healthcare provider |
| doctormcp_get_care_plan | Get current medication, dosing, and weight progress |
| doctormcp_request_refill | Request a medication refill |
| doctormcp_contact_support | Create a customer support ticket |
Provider (auth required)
| Tool | Description |
|---|---|
| doctormcp_get_provider_questions | Get follow-up questions from the provider |
| doctormcp_submit_provider_response | Submit answers to provider questions |
Example Agent Flows
1. Discovery Flow (browse medications)
User: "What weight loss medications do you offer?"
Agent calls: doctormcp_list_medications
→ Returns categories with semaglutide, tirzepatide, etc.
Agent calls: doctormcp_get_medication_details(medication="semaglutide")
→ Returns plans (1-month $349, 4-month $299/mo, 6-month $249/mo)
Agent calls: doctormcp_check_availability(medication="semaglutide", state="TX")
→ { "available": true }
Agent calls: doctormcp_check_eligibility(age=35, state="TX", bmi=31.2)
→ { "eligible": true, "available_medications": [...] }
2. Full Ordering Flow (intake → consent → order → checkout → payment)
1. doctormcp_get_intake_questions(medication="semaglutide")
→ Structured questionnaire (demographics, vitals, medical history, etc.)
2. doctormcp_submit_intake(patient_email, patient_name, answers, bearer_token)
→ { "intake_id": "42", "next_step": "get_required_consents" }
3. doctormcp_get_required_consents(intake_id="42", bearer_token)
→ 5 consent documents (telehealth, treatment, pharmacy, HIPAA, AI disclosure)
4. For each consent:
a. doctormcp_get_consent_text(consent_id, bearer_token)
→ Full text the agent MUST present verbatim
b. Patient confirms: "I agree"
c. doctormcp_submit_consent(intake_id, consent_id, "I agree", bearer_token)
5. doctormcp_create_order(intake_id, medication, form, plan_months, shipping_address, bearer_token)
→ { "order_id": "99", "total": "1096.00", "next_step": "create_checkout" }
6. doctormcp_create_checkout(order_id="99", bearer_token)
→ { "checkout_id": "7", "total": "$1,096.00", "payment_url": "https://checkout.stripe.com/..." }
7a. (ACP path) doctormcp_complete_checkout(checkout_id="7", shared_payment_token="spt_...", bearer_token)
→ { "payment_status": "success", "confirmation_number": "CHIA-000099" }
7b. (Fallback) Present payment_url to patient, then poll:
doctormcp_get_checkout_status(checkout_id="7", bearer_token)
→ { "payment_status": "paid", "confirmation_number": "CHIA-000099" }
3. Patient Portal Flow (log weight, check care plan)
1. doctormcp_log_weight(patient_id, weight_lbs=195.5, date="2026-06-15", bearer_token)
→ { "recorded": true }
2. doctormcp_get_care_plan(patient_id, bearer_token)
→ Current medication, phase, dosing schedule, recent weights
3. doctormcp_log_side_effects(patient_id, effects=["nausea"], severity="mild", bearer_token)
→ { "recorded": true, "flagged_for_review": false }
4. doctormcp_message_provider(patient_id, message="Nausea improving", bearer_token)
→ { "sent": true, "estimated_response_time": "24-48 hours" }
Stripe ACP Integration
doctormcp uses Stripe's Agentic Commerce Protocol (ACP) for payment processing:
- Order Creation —
create_ordercalculates the total and creates a pre-payment order record. - Checkout Initiation —
create_checkoutcreates a StripePaymentIntent(for ACP) and a StripeCheckout Session(for fallback). Returns line items, totals, and apayment_url. - Payment Completion — Two paths:
- ACP:
complete_checkoutaccepts a Shared Payment Token (SPT) from the AI platform and confirms thePaymentIntent. Instant, in-conversation payment. - Fallback: The agent presents the
payment_url(Stripe-hosted checkout page) to the patient. After the patient pays in their browser, the agent callsget_checkout_statuswhich detects the payment and triggers fulfillment.
- ACP:
- Post-Payment — On success (either path), a
SubscriptionandEnrollmentare created automatically, triggering the pharmacy fulfillment pipeline.
Checkout sessions expire after 30 minutes and can be canceled at any time before completion.
HIPAA Compliance
- Audit Logging — Every access to protected health information (PHI) is logged with actor identity, action type, resource, IP address, and timestamp. Logs are retained for 10 years.
- Consent Records — All patient consent confirmations include verbatim confirmation text, method (AI agent conversational), platform, session ID, and IP address. Consent records are immutable.
- Input Sanitization — All inputs are validated and sanitized. Control characters are stripped, lengths enforced, and domain-specific formats (email, state, phone, ZIP) are validated.
- Bearer Token Auth — Patient-scoped API tokens with SHA-256 hashing. Tokens expire after a configurable TTL. Deactivated and expired tokens are rejected.
- Rate Limiting — Redis-backed token-bucket rate limiting per user and endpoint category (public: 100/min, authenticated: 30/min, consent: 10/min, checkout: 5/min).
- Minimal Data Exposure — Tools return only the data needed for the current step. Sensitive fields (payment details, full SSN) are never returned.
Support
- Issues: github.com/chia-health/chia-mcp/issues
- Website: chia.health
- Email: engineering@chia.health
License
Apache License 2.0 — see LICENSE for details.
Copyright 2026 Chia Health, Inc.