Chia Health MCP Server
officielServeur MCP Chia Health — Intégration du flux de travail patient pour une plateforme de télésanté agréée aux États-Unis. Parcourez les médicaments GLP-1 (sémaglutide, tirzepatide), les thérapies peptidiques (sermoréline, NAD+, glutathion) et les traitements de longévité. Vérifiez l'éligibilité, complétez l'admission, signez les consentements et gérez les plans de traitement. 30 outils, conforme HIPAA. Toutes les prescriptions sont évaluées par des professionnels de santé agréés aux États-Unis et délivrées par des pharmacies réglementées par la FDA dans les 50 États + DC.
Que pouvez-vous faire avec Chia Health MCP ?
-
Parcourir les médicaments et vérifier l’éligibilité — Demandez à votre IA de lister les traitements disponibles avec
medications.list, de vérifier les prix viamedications.pricing, et de pré-vérifier votre éligibilité à l’aide deeligibility.check. -
Compléter le bilan médical — Laissez votre IA vous guider à travers le questionnaire médical (
intake.questions) et soumettre vos réponses pour examen par le prestataire avecintake.submit. -
Examiner et signer les documents de consentement — Votre IA peut récupérer le texte de consentement via
consent.textet enregistrer votre accord à l’aide deconsent.submitpour tous les documents requis. -
Passer une commande et payer — Utilisez
order.createpour passer une commande de médicaments, puischeckout.createpour générer un lien de paiement ou effectuer le paiement directement dans la conversation aveccheckout.complete. -
Suivre votre traitement dans le portail patient — Enregistrez votre poids avec
portal.log_weight, consultez votre plan de soins viaportal.care_plan, échangez avec votre prestataire ou demandez un renouvellement. -
Répondre aux suivis du prestataire — Récupérez et répondez aux questions de votre prestataire en utilisant
provider.questionsetprovider.respond.
Documentation
Serveur MCP Chia Health
Serveur MCP (Model Context Protocol) pour la plateforme de prescription en télésanté Chia Health. Permet aux assistants IA (ChatGPT, Claude, Gemini, OpenClaw, Copilot et agents personnalisés) d’aider les patients à parcourir les médicaments, remplir le dossier médical, signer les documents de consentement, passer commande, payer et gérer leur traitement — le tout par conversation naturelle.
Les traitements disponibles incluent les médicaments GLP-1 (sémaglutide, tirzépatide, y compris en comprimés), les thérapies peptidiques (sermoreline, NAD+, glutathion) et les programmes de longévité. Toutes les prescriptions sont évaluées par des professionnels de santé agréés aux États-Unis et délivrées par des pharmacies de préparation 503A réglementées par la FDA dans les 50 États américains + DC.
Mise en route
doctormcp est un serveur MCP distant — connexion via le réseau, aucune installation locale requise.
URL du serveur : https://mcp.chia.health/
Transport : HTTP Streamable
Métadonnées : https://mcp.chia.health/server.json
Claude Desktop
Ajouter à ~/Library/Application Support/Claude/claude_desktop_config.json :
{
"mcpServers": {
"chia-health": {
"url": "https://mcp.chia.health/"
}
}
}
Cursor
Ajouter à .cursor/mcp.json dans votre projet ou ~/.cursor/mcp.json globalement :
{
"mcpServers": {
"chia-health": {
"url": "https://mcp.chia.health/"
}
}
}
Cline / VS Code
Ajouter à vos paramètres Cline MCP :
{
"mcpServers": {
"chia-health": {
"url": "https://mcp.chia.health/"
}
}
}
Windsurf
Ajouter à ~/.codeium/windsurf/mcp_config.json :
{
"mcpServers": {
"chia-health": {
"serverUrl": "https://mcp.chia.health/"
}
}
}
Autres clients MCP
Tout client MCP prenant en charge le transport HTTP streamable peut se connecter :
- URL du serveur :
https://mcp.chia.health/ - Transport : HTTP Streamable
- Métadonnées du serveur :
https://mcp.chia.health/server.json
Vérifier la connexion
Une fois connecté, votre assistant IA peut immédiatement appeler ces outils publics (aucune authentification requise) :
medications.categories → medication categories
medications.list → all medications with pricing
medications.availability → check if a medication ships to your state
eligibility.check → pre-screen age, state, BMI
Que peut faire votre assistant IA ?
| Catégorie | Outils | Auth |
|---|---|---|
| Auth — vérification OTP, gestion de session, détection de paiement | 4 | Non* |
| Découverte — parcourir les médicaments, prix, disponibilité | 5 | Non |
| Éligibilité — vérifications d’éligibilité, questionnaires médicaux | 4 | Partielle |
| Consentement — présenter et signer les documents de consentement | 4 | Invité |
| Commande — passer commande, téléverser une pièce d’identité | 4 | Invité |
| Paiement — paiements Stripe ACP ou liens de paiement authentifiés | 5 | Invité |
| Portail patient — enregistrer le poids, envoyer un message au professionnel, renouvellements | 6 | Complète |
| Professionnel — répondre aux questions de suivi de votre professionnel de santé | 2 | Invité |
* Les outils d’authentification utilisent session_id (pas de jeton) sauf auth.check_payment qui utilise un jeton porteur.
Important : Toutes les prescriptions sont évaluées et approuvées par des professionnels de santé agréés aux États-Unis. doctormcp facilite le parcours patient — il ne prend pas de décisions cliniques.
Authentification
Les patients peuvent naviguer librement sans authentification — la découverte, l’éligibilité et l’aperçu du questionnaire médical sont tous publics.
Lorsque le patient est prêt à poursuivre son dossier médical, il vérifie son adresse e-mail :
auth.start(email, phone, name)→ envoie un OTP par e-mail, renvoiesession_idauth.verify_otp(session_id, code)→ renvoie un jeton porteur à portée invité
Le jeton invité permet le dossier médical, le consentement, la commande et le paiement. Après le paiement, auth.check_payment étend le jeton à une portée complète pour l’accès au portail (plan de soins, messagerie, renouvellements).
Catalogue d’outils
Auth
| Outil | Auth | Description |
|---|---|---|
auth.start | Non | Envoyer un OTP à l’e-mail du patient, obtenir session_id |
auth.verify_otp | Non | Vérifier le code, obtenir un jeton porteur à portée invité |
auth.resend_otp | Non | Renvoyer l’OTP s’il a expiré ou n’a pas été reçu |
auth.check_payment | Invité | Interroger l’état du paiement, étendre le jeton à la portée complète |
Découverte (public, sans auth)
| Outil | Description |
|---|---|
medications.list | Lister tous les médicaments avec catégories, formes et prix |
medications.details | Informations détaillées sur un médicament spécifique (plans, prix, ce qui est inclus) |
medications.availability | Vérifier si un médicament est expédié dans un État donné |
medications.pricing | Détail du prix pour une combinaison médicament/forme/plan spécifique |
medications.categories | Lister les catégories de médicaments (Perte de poids, Peptides, Anti-âge, etc.) |
Éligibilité (public + invité)
| Outil | Auth | Description |
|---|---|---|
eligibility.check | Non | Pré-vérifier l’âge, l’État, l’IMC et les conditions médicales |
intake.questions | Non | Obtenir le questionnaire médical structuré pour un médicament |
intake.submit | Invité | Soumettre le dossier médical complété pour examen par le professionnel |
intake.status | Invité | Vérifier l’état d’examen du dossier (en cours, approuvé, refusé) |
Consentement (jeton invité requis)
| Outil | Description |
|---|---|
consent.list | Lister les 5 documents de consentement nécessaires pour un dossier |
consent.text | Obtenir le texte intégral d’un document de consentement |
consent.submit | Enregistrer la confirmation de consentement du patient avec piste d’audit |
consent.status | Vérifier quels consentements sont complets/en attente |
Commande (jeton invité requis)
| Outil | Description |
|---|---|
order.create | Créer une commande de médicament (nécessite tous les consentements complets) |
order.status | Vérifier l’état de la commande et les informations de suivi |
order.documents | Lister les documents d’identité requis pour une commande |
order.upload | Téléverser une photo d’identité ou un selfie pour vérification d’identité |
Paiement (jeton invité requis)
| Outil | Description |
|---|---|
checkout.create | Créer un paiement ; renvoie un lien de paiement authentifié (URL lien magique) |
checkout.update | Mettre à jour un paiement en attente (codes promo, livraison) |
checkout.complete | Finaliser le paiement avec un jeton de paiement partagé Stripe (chemin ACP) |
checkout.status | Interroger l’état du paiement après l’envoi d’un lien de paiement (chemin de secours) |
checkout.cancel | Annuler un paiement en cours |
Portail patient (jeton complet requis — après paiement)
| Outil | Description |
|---|---|
portal.log_weight | Enregistrer le poids pour le suivi de progression |
portal.log_side_effects | Signaler des effets secondaires (graves = signalement automatique au professionnel) |
portal.message | Envoyer un message au professionnel de santé |
portal.care_plan | Obtenir le médicament actuel, la posologie et la progression du poids |
portal.refill | Demander un renouvellement de médicament |
portal.support | Créer un ticket de support client |
Professionnel (jeton invité requis)
| Outil | Description |
|---|---|
provider.questions | Obtenir les questions de suivi du professionnel |
provider.respond | Soumettre les réponses aux questions du professionnel |
Exemples de flux d’agent
1. Parcourir les médicaments (sans auth)
User: "What weight loss medications do you offer?"
Agent calls: medications.list
→ Returns categories with semaglutide, tirzepatide, etc.
Agent calls: medications.details(medication="semaglutide-injectable")
→ Returns plans (1-month $349, 4-month $299/mo, 6-month $249/mo)
Agent calls: medications.availability(medication="semaglutide-injectable", state="TX")
→ { "available": true }
Agent calls: eligibility.check(age=35, state="TX", bmi=31.2)
→ { "eligible": true, "available_medications": [...] }
2. Flux de commande complet (auth → dossier → consentement → commande → paiement)
== VERIFY IDENTITY ==
1. auth.start(email="patient@example.com", phone="5551234567", first_name="Jane")
→ { "session_id": "abc123...", "otp_sent": true }
2. auth.verify_otp(session_id="abc123...", code="847293")
→ { "guest_token": "mcp_...", "scope": "guest" }
== MEDICAL INTAKE ==
3. intake.questions(medication="semaglutide-injectable")
→ Structured questionnaire (demographics, vitals, medical history, etc.)
→ Agent asks patient each question conversationally
4. intake.submit(patient_email, patient_name, answers, bearer_token)
→ { "intake_id": "42", "next_step": "get_required_consents" }
5. consent.list(intake_id="42", bearer_token)
→ 5 consent documents (telehealth, treatment, pharmacy, HIPAA, AI disclosure)
6. For each consent:
a. consent.text(consent_id, bearer_token)
→ Full text the agent MUST present verbatim
b. Patient confirms: "I agree"
c. consent.submit(intake_id, consent_id, "I agree", bearer_token)
== ORDER & PAY ==
7. order.create(intake_id, medication, form, plan_months, shipping_address, bearer_token)
→ { "order_id": "99", "total": "1079.39", "next_step": "create_checkout" }
8. checkout.create(order_id="99", bearer_token)
→ { "checkout_id": "7", "payment_url": "https://chia.health/checkout/aBc-_xyz" }
→ Agent shares link with patient; also sent via email+SMS
9a. (ACP path) checkout.complete(checkout_id="7", shared_payment_token="spt_...", bearer_token)
→ { "payment_status": "success", "confirmation_number": "CHIA-000099" }
9b. (Fallback) Patient opens payment_url in browser, pays on Chia checkout page
10. auth.check_payment(bearer_token)
→ { "paid": true, "scope": "full" } // token upgraded, portal unlocked
3. Portail patient (jeton complet, après paiement)
1. portal.log_weight(patient_id, weight_lbs=195.5, date="2026-06-15", bearer_token)
→ { "recorded": true }
2. portal.care_plan(patient_id, bearer_token)
→ Current medication, phase, dosing schedule, recent weights
3. portal.log_side_effects(patient_id, effects=["nausea"], severity="mild", bearer_token)
→ { "recorded": true, "flagged_for_review": false }
4. portal.message(patient_id, message="Nausea improving", bearer_token)
→ { "sent": true, "estimated_response_time": "24-48 hours" }
Intégration Stripe ACP
doctormcp utilise le protocole de commerce agentique (ACP) de Stripe pour le traitement des paiements :
- Création de commande —
order.createcalcule le total et crée un enregistrement de commande pré-paiement. - Initialisation du paiement —
checkout.createcrée unPaymentIntentStripe (pour ACP) et génère un lien de paiement authentifié. Le lien authentifie automatiquement les patients dans le navigateur et atterrit sur la page de paiement Chia Health. Également envoyé par e-mail et SMS. - Finalisation du paiement — Deux chemins :
- ACP :
checkout.completeaccepte un jeton de paiement partagé (SPT) de la plateforme IA et confirme lePaymentIntent. Paiement instantané, dans la conversation. - Secours : L’agent partage le
payment_url(lien magique authentifié) avec le patient. Le patient l’ouvre dans son navigateur, s’authentifie automatiquement et paie sur la page de paiement Chia Health. L’agent interrogeauth.check_paymentpour détecter la finalisation.
- ACP :
- Post-paiement — En cas de succès (quel que soit le chemin), un
Subscriptionet unEnrollmentsont créés automatiquement.auth.check_paymentétend le jeton de l’agent à la portée complète pour l’accès au portail.
Conformité HIPAA
- Journalisation d’audit — Chaque accès aux informations de santé protégées (PHI) est journalisé avec l’identité de l’acteur, le type d’action, la ressource, l’adresse IP et l’horodatage. Les journaux sont conservés pendant 10 ans.
- Enregistrements de consentement — Toutes les confirmations de consentement du patient incluent le texte de confirmation textuel, la méthode (conversationnelle par agent IA), la plateforme, l’ID de session et l’adresse IP. Les enregistrements de consentement sont immuables.
- Assainissement des entrées — Toutes les entrées sont validées et assainies. Les caractères de contrôle sont supprimés, les longueurs appliquées et les formats spécifiques au domaine (e-mail, État, téléphone, code postal) sont validés.
- Authentification OTP d’abord — Propriété de l’e-mail vérifiée via un OTP à 6 chiffres avant tout accès aux données du patient. Jetons hachés SHA-256 avec accès limité (invité/complet). Aucun jeton délivré sans vérification d’e-mail.
- Limitation de débit — Limitation de débit par compartiment de jetons adossée à Redis par utilisateur et catégorie de point de terminaison (public : 100/min, auth : 5/min, authentifié : 30/min, consentement : 10/min, paiement : 5/min).
- Exposition minimale des données — Les outils renvoient uniquement les données nécessaires à l’étape en cours. Les champs sensibles (détails de paiement, SSN complet) ne sont jamais renvoyés.
Support
- Problèmes : github.com/chia-health/chia-mcp/issues
- Site web : chia.health
- E-mail : engineering@chia.health
Licence
Licence Apache 2.0 — voir LICENSE pour plus de détails.
Copyright 2026 Chia Health, Inc.