healthcloud-cli 2.0.0__tar.gz → 2.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,7 @@ build/
25
25
  # test time (scripts/copy-manifest.cjs) — that copy is generated, not source.
26
26
  packages/cli/npm/contracts/
27
27
  coverage/
28
+ report/
28
29
  *.tsbuildinfo
29
30
 
30
31
  # Python / pip
@@ -79,3 +80,6 @@ temp/
79
80
  .cache/
80
81
  .parcel-cache/
81
82
  .turbo/
83
+
84
+ # Disposable OpenAPI Generator staging and C#/Java sanity outputs
85
+ .generated/
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: healthcloud-cli
3
- Version: 2.0.0
3
+ Version: 2.0.1
4
4
  Summary: Command-line interface for the HealthCloud MCP gateway, generated from the shared MCP tool manifest.
5
5
  Author: Healthcheck Systems Inc
6
6
  License-Expression: MIT
@@ -25907,7 +25907,7 @@
25907
25907
  "defaultBaseUrl": "https://dev-api-fieldagent.health.cloud",
25908
25908
  "name": "fieldagent",
25909
25909
  "path": "/fieldagent",
25910
- "toolCount": 14,
25910
+ "toolCount": 18,
25911
25911
  "tools": [
25912
25912
  {
25913
25913
  "cliCommand": "confirm-field-agent-password-reset",
@@ -26085,6 +26085,72 @@
26085
26085
  },
26086
26086
  "requiredRoles": []
26087
26087
  },
26088
+ {
26089
+ "cliCommand": "get-patient-photo",
26090
+ "description": "Retrieve a patient's FHIR Binary photo resource.",
26091
+ "descriptionSource": "mcp-authored",
26092
+ "destructive": false,
26093
+ "httpMethod": "GET",
26094
+ "httpPath": "/patients/{patient_id}/photo",
26095
+ "inputSchema": {
26096
+ "properties": {
26097
+ "binary_id": {
26098
+ "description": "Optional binary_id returned by upload_patient_photo. If omitted, the stored patient photo is used.",
26099
+ "type": "string"
26100
+ },
26101
+ "patient_id": {
26102
+ "description": "FHIR Patient ID",
26103
+ "type": "string"
26104
+ }
26105
+ },
26106
+ "required": [
26107
+ "patient_id"
26108
+ ],
26109
+ "type": "object"
26110
+ },
26111
+ "name": "get_patient_photo",
26112
+ "operationId": "fieldagent.getPatientPhoto",
26113
+ "parameters": {
26114
+ "body": [],
26115
+ "path": [
26116
+ "patient_id"
26117
+ ],
26118
+ "query": [
26119
+ "binary_id"
26120
+ ]
26121
+ },
26122
+ "requiredRoles": []
26123
+ },
26124
+ {
26125
+ "cliCommand": "get-patient-photo-upload-url",
26126
+ "description": "Get a pre-signed Wasabi S3 PUT URL to upload a patient photo captured by the field agent (valid 10 minutes).",
26127
+ "descriptionSource": "mcp-authored",
26128
+ "destructive": false,
26129
+ "httpMethod": "GET",
26130
+ "httpPath": "/patients/{patient_id}/photo/upload-url",
26131
+ "inputSchema": {
26132
+ "properties": {
26133
+ "patient_id": {
26134
+ "description": "FHIR Patient ID",
26135
+ "type": "string"
26136
+ }
26137
+ },
26138
+ "required": [
26139
+ "patient_id"
26140
+ ],
26141
+ "type": "object"
26142
+ },
26143
+ "name": "get_patient_photo_upload_url",
26144
+ "operationId": "fieldagent.patientPhotoUploadUrl",
26145
+ "parameters": {
26146
+ "body": [],
26147
+ "path": [
26148
+ "patient_id"
26149
+ ],
26150
+ "query": []
26151
+ },
26152
+ "requiredRoles": []
26153
+ },
26088
26154
  {
26089
26155
  "cliCommand": "list-encounters",
26090
26156
  "description": "List FHIR encounters visible to the field agent.",
@@ -26221,6 +26287,56 @@
26221
26287
  },
26222
26288
  "requiredRoles": []
26223
26289
  },
26290
+ {
26291
+ "cliCommand": "onboard-patient",
26292
+ "description": "Run the patient-onboarding workflow — register patient, create encounter, submit vitals, submit questionnaire responses — as one request, instead of four separate calls. Reuses the exact same underlying service calls as those individual endpoints; no business logic is duplicated. There is no cross-service transaction: only 'patient' is required, each of 'encounter', 'vitals' and 'questionnaire' is attempted independently when supplied (and reported 'skipped' when omitted), and the response reports every step's outcome — plus any id it produced — so a caller can resume from the first failed step instead of repeating everything. overall_status is 'completed' (all attempted steps succeeded), 'partial' (patient registered but a downstream step failed), or 'failed' (patient registration itself failed).",
26293
+ "descriptionSource": "mcp-authored",
26294
+ "destructive": false,
26295
+ "httpMethod": "POST",
26296
+ "httpPath": "/onboardpatients",
26297
+ "inputSchema": {
26298
+ "properties": {
26299
+ "encounter": {
26300
+ "description": "Encounter fields accepted by create_encounter / POST /encounters on the Patient API (status, encounter_class, type_code, reason_code, period_start, ...). patient_id and created_by are populated automatically from the newly-registered patient and the calling field agent.",
26301
+ "type": "object"
26302
+ },
26303
+ "patient": {
26304
+ "description": "first_name, last_name, email, date_of_birth required; password (auto-generated and not returned if omitted), phone, sex_at_birth optional. Same fields as register_patient / POST /auth/register on the Patient API.",
26305
+ "type": "object"
26306
+ },
26307
+ "questionnaire": {
26308
+ "description": "questionnaire_id (required), status, items[] — same shape as create_questionnaire_response / POST /questionnaires/{questionnaire_id}/responses on the Patient API.",
26309
+ "type": "object"
26310
+ },
26311
+ "tenant_id": {
26312
+ "description": "Defaults to the calling field agent's own tenant",
26313
+ "type": "string"
26314
+ },
26315
+ "vitals": {
26316
+ "description": "temperature, weight_kg, height_cm, heart_rate, systolic, diastolic, oxygen_saturation — same fields as POST /patients/{patient_id}/vitals on the Vitals API.",
26317
+ "type": "object"
26318
+ }
26319
+ },
26320
+ "required": [
26321
+ "patient"
26322
+ ],
26323
+ "type": "object"
26324
+ },
26325
+ "name": "onboard_patient",
26326
+ "operationId": "fieldagent.onboardPatient",
26327
+ "parameters": {
26328
+ "body": [
26329
+ "encounter",
26330
+ "patient",
26331
+ "questionnaire",
26332
+ "tenant_id",
26333
+ "vitals"
26334
+ ],
26335
+ "path": [],
26336
+ "query": []
26337
+ },
26338
+ "requiredRoles": []
26339
+ },
26224
26340
  {
26225
26341
  "cliCommand": "register-field-agent",
26226
26342
  "description": "Register a field agent and create the associated Cognito and FHIR Person records.",
@@ -26233,12 +26349,6 @@
26233
26349
  "address": {
26234
26350
  "type": "object"
26235
26351
  },
26236
- "addresses": {
26237
- "items": {
26238
- "type": "object"
26239
- },
26240
- "type": "array"
26241
- },
26242
26352
  "badge_number": {
26243
26353
  "type": "string"
26244
26354
  },
@@ -26309,7 +26419,6 @@
26309
26419
  "parameters": {
26310
26420
  "body": [
26311
26421
  "address",
26312
- "addresses",
26313
26422
  "badge_number",
26314
26423
  "date_of_birth",
26315
26424
  "department",
@@ -26492,6 +26601,48 @@
26492
26601
  },
26493
26602
  "requiredRoles": []
26494
26603
  },
26604
+ {
26605
+ "cliCommand": "upload-patient-photo",
26606
+ "description": "Store a base64-encoded photo, captured by the field agent, as a FHIR Binary resource for a patient.",
26607
+ "descriptionSource": "mcp-authored",
26608
+ "destructive": false,
26609
+ "httpMethod": "POST",
26610
+ "httpPath": "/patients/{patient_id}/photo",
26611
+ "inputSchema": {
26612
+ "properties": {
26613
+ "content_type": {
26614
+ "default": "image/png",
26615
+ "type": "string"
26616
+ },
26617
+ "data": {
26618
+ "description": "Base64-encoded image data",
26619
+ "type": "string"
26620
+ },
26621
+ "patient_id": {
26622
+ "description": "FHIR Patient ID",
26623
+ "type": "string"
26624
+ }
26625
+ },
26626
+ "required": [
26627
+ "patient_id",
26628
+ "data"
26629
+ ],
26630
+ "type": "object"
26631
+ },
26632
+ "name": "upload_patient_photo",
26633
+ "operationId": "fieldagent.uploadPatientPhoto",
26634
+ "parameters": {
26635
+ "body": [
26636
+ "content_type",
26637
+ "data"
26638
+ ],
26639
+ "path": [
26640
+ "patient_id"
26641
+ ],
26642
+ "query": []
26643
+ },
26644
+ "requiredRoles": []
26645
+ },
26495
26646
  {
26496
26647
  "cliCommand": "verify-field-agent-email",
26497
26648
  "description": "Verify a field agent's email OTP.",
@@ -28027,7 +28178,7 @@
28027
28178
  "defaultBaseUrl": "https://dev-api-patient.health.cloud",
28028
28179
  "name": "patient",
28029
28180
  "path": "/patient",
28030
- "toolCount": 83,
28181
+ "toolCount": 82,
28031
28182
  "tools": [
28032
28183
  {
28033
28184
  "cliCommand": "add-insurance",
@@ -28079,7 +28230,7 @@
28079
28230
  },
28080
28231
  {
28081
28232
  "cliCommand": "add-patient-dependent",
28082
- "description": "Create a FHIR RelatedPerson dependent for the authenticated patient.",
28233
+ "description": "Add a family member (dependent) for the authenticated patient.",
28083
28234
  "descriptionSource": "mcp-authored",
28084
28235
  "destructive": false,
28085
28236
  "httpMethod": "POST",
@@ -28087,39 +28238,35 @@
28087
28238
  "inputSchema": {
28088
28239
  "additionalProperties": true,
28089
28240
  "properties": {
28090
- "active": {
28091
- "type": "boolean"
28092
- },
28093
- "birthDate": {
28241
+ "dob": {
28242
+ "description": "YYYY-MM-DD",
28094
28243
  "format": "date",
28095
28244
  "type": "string"
28096
28245
  },
28097
- "gender": {
28246
+ "first_name": {
28098
28247
  "type": "string"
28099
28248
  },
28100
- "name": {
28101
- "items": {
28102
- "type": "object"
28103
- },
28104
- "type": "array"
28249
+ "last_name": {
28250
+ "type": "string"
28105
28251
  },
28106
28252
  "relationship": {
28107
- "items": {
28108
- "type": "object"
28109
- },
28110
- "type": "array"
28253
+ "description": "e.g. Spouse, Child, Parent, Other (case-insensitive)",
28254
+ "type": "string"
28111
28255
  }
28112
28256
  },
28257
+ "required": [
28258
+ "first_name",
28259
+ "last_name"
28260
+ ],
28113
28261
  "type": "object"
28114
28262
  },
28115
28263
  "name": "add_patient_dependent",
28116
28264
  "operationId": "patient.addDependent",
28117
28265
  "parameters": {
28118
28266
  "body": [
28119
- "active",
28120
- "birthDate",
28121
- "gender",
28122
- "name",
28267
+ "dob",
28268
+ "first_name",
28269
+ "last_name",
28123
28270
  "relationship"
28124
28271
  ],
28125
28272
  "path": [],
@@ -28129,7 +28276,7 @@
28129
28276
  },
28130
28277
  {
28131
28278
  "cliCommand": "add-patient-notification",
28132
- "description": "Create a FHIR Communication notification for the authenticated patient.",
28279
+ "description": "Add a notification for the authenticated patient.",
28133
28280
  "descriptionSource": "mcp-authored",
28134
28281
  "destructive": false,
28135
28282
  "httpMethod": "POST",
@@ -28137,24 +28284,25 @@
28137
28284
  "inputSchema": {
28138
28285
  "additionalProperties": true,
28139
28286
  "properties": {
28140
- "payload": {
28141
- "items": {
28142
- "type": "object"
28143
- },
28144
- "type": "array"
28287
+ "createdAt": {
28288
+ "format": "date-time",
28289
+ "type": "string"
28145
28290
  },
28146
- "priority": {
28291
+ "description": {
28147
28292
  "type": "string"
28148
28293
  },
28149
- "sent": {
28150
- "format": "date-time",
28294
+ "icon": {
28151
28295
  "type": "string"
28152
28296
  },
28153
- "status": {
28297
+ "read": {
28298
+ "type": "boolean"
28299
+ },
28300
+ "severity": {
28301
+ "description": "info, success, warning, urgent (case-insensitive)",
28154
28302
  "type": "string"
28155
28303
  },
28156
- "topic": {
28157
- "type": "object"
28304
+ "title": {
28305
+ "type": "string"
28158
28306
  }
28159
28307
  },
28160
28308
  "type": "object"
@@ -28163,11 +28311,12 @@
28163
28311
  "operationId": "patient.addNotification",
28164
28312
  "parameters": {
28165
28313
  "body": [
28166
- "payload",
28167
- "priority",
28168
- "sent",
28169
- "status",
28170
- "topic"
28314
+ "createdAt",
28315
+ "description",
28316
+ "icon",
28317
+ "read",
28318
+ "severity",
28319
+ "title"
28171
28320
  ],
28172
28321
  "path": [],
28173
28322
  "query": []
@@ -28445,52 +28594,6 @@
28445
28594
  },
28446
28595
  "requiredRoles": []
28447
28596
  },
28448
- {
28449
- "cliCommand": "create-communications-rtc-token",
28450
- "description": "Mint a short-lived Agora RTC token for a channel and contact ID.",
28451
- "descriptionSource": "mcp-authored",
28452
- "destructive": false,
28453
- "httpMethod": "POST",
28454
- "httpPath": "/communications/rtc-token",
28455
- "inputSchema": {
28456
- "properties": {
28457
- "channelName": {
28458
- "type": "string"
28459
- },
28460
- "role": {
28461
- "default": "publisher",
28462
- "enum": [
28463
- "publisher",
28464
- "subscriber"
28465
- ],
28466
- "type": "string"
28467
- },
28468
- "uid": {
28469
- "type": [
28470
- "string",
28471
- "integer"
28472
- ]
28473
- }
28474
- },
28475
- "required": [
28476
- "channelName",
28477
- "uid"
28478
- ],
28479
- "type": "object"
28480
- },
28481
- "name": "create_communications_rtc_token",
28482
- "operationId": "patient.commsRtcToken",
28483
- "parameters": {
28484
- "body": [
28485
- "channelName",
28486
- "role",
28487
- "uid"
28488
- ],
28489
- "path": [],
28490
- "query": []
28491
- },
28492
- "requiredRoles": []
28493
- },
28494
28597
  {
28495
28598
  "cliCommand": "create-encounter",
28496
28599
  "description": "Create a new FHIR Encounter for a patient.",
@@ -29882,7 +29985,7 @@
29882
29985
  },
29883
29986
  {
29884
29987
  "cliCommand": "list-patient-notifications",
29885
- "description": "List FHIR Communication notifications for the authenticated patient.",
29988
+ "description": "List notifications for the authenticated patient.",
29886
29989
  "descriptionSource": "mcp-authored",
29887
29990
  "destructive": false,
29888
29991
  "httpMethod": "GET",
@@ -30481,7 +30584,7 @@
30481
30584
  },
30482
30585
  {
30483
30586
  "cliCommand": "update-patient-dependent",
30484
- "description": "Update a FHIR RelatedPerson dependent of the authenticated patient.",
30587
+ "description": "Update a family member (dependent) of the authenticated patient.",
30485
30588
  "descriptionSource": "mcp-authored",
30486
30589
  "destructive": false,
30487
30590
  "httpMethod": "PUT",
@@ -30489,30 +30592,23 @@
30489
30592
  "inputSchema": {
30490
30593
  "additionalProperties": true,
30491
30594
  "properties": {
30492
- "active": {
30493
- "type": "boolean"
30595
+ "dependent_id": {
30596
+ "type": "string"
30494
30597
  },
30495
- "birthDate": {
30598
+ "dob": {
30599
+ "description": "YYYY-MM-DD",
30496
30600
  "format": "date",
30497
30601
  "type": "string"
30498
30602
  },
30499
- "dependent_id": {
30603
+ "first_name": {
30500
30604
  "type": "string"
30501
30605
  },
30502
- "gender": {
30606
+ "last_name": {
30503
30607
  "type": "string"
30504
30608
  },
30505
- "name": {
30506
- "items": {
30507
- "type": "object"
30508
- },
30509
- "type": "array"
30510
- },
30511
30609
  "relationship": {
30512
- "items": {
30513
- "type": "object"
30514
- },
30515
- "type": "array"
30610
+ "description": "e.g. Spouse, Child, Parent, Other (case-insensitive)",
30611
+ "type": "string"
30516
30612
  }
30517
30613
  },
30518
30614
  "required": [
@@ -30524,10 +30620,9 @@
30524
30620
  "operationId": "patient.updateDependent",
30525
30621
  "parameters": {
30526
30622
  "body": [
30527
- "active",
30528
- "birthDate",
30529
- "gender",
30530
- "name",
30623
+ "dob",
30624
+ "first_name",
30625
+ "last_name",
30531
30626
  "relationship"
30532
30627
  ],
30533
30628
  "path": [
@@ -30562,7 +30657,7 @@
30562
30657
  },
30563
30658
  {
30564
30659
  "cliCommand": "update-patient-notification",
30565
- "description": "Update a FHIR Communication notification for the authenticated patient.",
30660
+ "description": "Update a notification for the authenticated patient (partial merge — e.g. {\"read\": true}).",
30566
30661
  "descriptionSource": "mcp-authored",
30567
30662
  "destructive": false,
30568
30663
  "httpMethod": "PUT",
@@ -30570,27 +30665,28 @@
30570
30665
  "inputSchema": {
30571
30666
  "additionalProperties": true,
30572
30667
  "properties": {
30573
- "notification_id": {
30668
+ "createdAt": {
30669
+ "format": "date-time",
30574
30670
  "type": "string"
30575
30671
  },
30576
- "payload": {
30577
- "items": {
30578
- "type": "object"
30579
- },
30580
- "type": "array"
30672
+ "description": {
30673
+ "type": "string"
30581
30674
  },
30582
- "priority": {
30675
+ "icon": {
30583
30676
  "type": "string"
30584
30677
  },
30585
- "sent": {
30586
- "format": "date-time",
30678
+ "notification_id": {
30587
30679
  "type": "string"
30588
30680
  },
30589
- "status": {
30681
+ "read": {
30682
+ "type": "boolean"
30683
+ },
30684
+ "severity": {
30685
+ "description": "info, success, warning, urgent (case-insensitive)",
30590
30686
  "type": "string"
30591
30687
  },
30592
- "topic": {
30593
- "type": "object"
30688
+ "title": {
30689
+ "type": "string"
30594
30690
  }
30595
30691
  },
30596
30692
  "required": [
@@ -30602,11 +30698,12 @@
30602
30698
  "operationId": "patient.updateNotification",
30603
30699
  "parameters": {
30604
30700
  "body": [
30605
- "payload",
30606
- "priority",
30607
- "sent",
30608
- "status",
30609
- "topic"
30701
+ "createdAt",
30702
+ "description",
30703
+ "icon",
30704
+ "read",
30705
+ "severity",
30706
+ "title"
30610
30707
  ],
30611
30708
  "path": [
30612
30709
  "notification_id"
@@ -31319,12 +31416,6 @@
31319
31416
  "address": {
31320
31417
  "type": "object"
31321
31418
  },
31322
- "addresses": {
31323
- "items": {
31324
- "type": "object"
31325
- },
31326
- "type": "array"
31327
- },
31328
31419
  "date_of_birth": {
31329
31420
  "format": "date",
31330
31421
  "type": "string"
@@ -31402,7 +31493,6 @@
31402
31493
  "parameters": {
31403
31494
  "body": [
31404
31495
  "address",
31405
- "addresses",
31406
31496
  "date_of_birth",
31407
31497
  "email",
31408
31498
  "first_name",
@@ -31893,12 +31983,6 @@
31893
31983
  "address": {
31894
31984
  "type": "object"
31895
31985
  },
31896
- "addresses": {
31897
- "items": {
31898
- "type": "object"
31899
- },
31900
- "type": "array"
31901
- },
31902
31986
  "date_of_birth": {
31903
31987
  "format": "date",
31904
31988
  "type": "string"
@@ -32138,7 +32222,6 @@
32138
32222
  "parameters": {
32139
32223
  "body": [
32140
32224
  "address",
32141
- "addresses",
32142
32225
  "date_of_birth",
32143
32226
  "department",
32144
32227
  "education_credentials",
@@ -32448,7 +32531,7 @@
32448
32531
  "defaultBaseUrl": "https://dev-api-telehealth.health.cloud",
32449
32532
  "name": "telehealth",
32450
32533
  "path": "/telehealth",
32451
- "toolCount": 4,
32534
+ "toolCount": 3,
32452
32535
  "tools": [
32453
32536
  {
32454
32537
  "cliCommand": "create-channel",
@@ -32555,55 +32638,6 @@
32555
32638
  "query": []
32556
32639
  },
32557
32640
  "requiredRoles": []
32558
- },
32559
- {
32560
- "cliCommand": "fetch-rtc-token",
32561
- "description": "Mint an Agora RTC token through the legacy telehealth endpoint.",
32562
- "descriptionSource": "mcp-authored",
32563
- "destructive": false,
32564
- "httpMethod": "POST",
32565
- "httpPath": "/fetch_rtc_token",
32566
- "inputSchema": {
32567
- "properties": {
32568
- "channel_name": {
32569
- "description": "Agora channel name",
32570
- "type": "string"
32571
- },
32572
- "role": {
32573
- "description": "Agora RTC role value",
32574
- "type": "integer"
32575
- },
32576
- "uid": {
32577
- "anyOf": [
32578
- {
32579
- "type": "integer"
32580
- },
32581
- {
32582
- "type": "string"
32583
- }
32584
- ],
32585
- "description": "Agora user ID as an integer or numeric string"
32586
- }
32587
- },
32588
- "required": [
32589
- "channel_name",
32590
- "uid",
32591
- "role"
32592
- ],
32593
- "type": "object"
32594
- },
32595
- "name": "fetch_rtc_token",
32596
- "operationId": "telehealth.fetchRtcToken",
32597
- "parameters": {
32598
- "body": [
32599
- "channel_name",
32600
- "role",
32601
- "uid"
32602
- ],
32603
- "path": [],
32604
- "query": []
32605
- },
32606
- "requiredRoles": []
32607
32641
  }
32608
32642
  ]
32609
32643
  },
@@ -32612,7 +32646,7 @@
32612
32646
  "defaultBaseUrl": "https://dev-api-tenantadmin.health.cloud",
32613
32647
  "name": "tenantadmin",
32614
32648
  "path": "/tenantadmin",
32615
- "toolCount": 15,
32649
+ "toolCount": 17,
32616
32650
  "tools": [
32617
32651
  {
32618
32652
  "cliCommand": "confirm-tenant-admin-password-reset",
@@ -32761,6 +32795,26 @@
32761
32795
  },
32762
32796
  "requiredRoles": []
32763
32797
  },
32798
+ {
32799
+ "cliCommand": "list-admins",
32800
+ "description": "List Tenant Admin profiles for the authenticated administrator's own tenant; tenant identity is resolved from the Bearer JWT.",
32801
+ "descriptionSource": "mcp-authored",
32802
+ "destructive": false,
32803
+ "httpMethod": "GET",
32804
+ "httpPath": "/tenant-admins",
32805
+ "inputSchema": {
32806
+ "properties": {},
32807
+ "type": "object"
32808
+ },
32809
+ "name": "list_admins",
32810
+ "operationId": "tenantadmin.listAdmins",
32811
+ "parameters": {
32812
+ "body": [],
32813
+ "path": [],
32814
+ "query": []
32815
+ },
32816
+ "requiredRoles": []
32817
+ },
32764
32818
  {
32765
32819
  "cliCommand": "list-m2m-tokens",
32766
32820
  "description": "List M2M tokens created by the authenticated tenant administrator.",
@@ -32857,13 +32911,30 @@
32857
32911
  },
32858
32912
  {
32859
32913
  "cliCommand": "register-tenant",
32860
- "description": "Create a tenant/account and provision its Cognito pools (patient, provider, person, tenantadmin). Does not create a Tenant Admin user — that happens afterwards via register_tenant_admin.",
32914
+ "description": "Create a tenant/account, provision its Cognito pools (patient, provider, person, tenantadmin), and create the tenant's first (primary) Tenant Admin user. An email verification OTP is sent to the admin's email, same as register_tenant_admin.",
32861
32915
  "descriptionSource": "mcp-authored",
32862
32916
  "destructive": false,
32863
32917
  "httpMethod": "POST",
32864
32918
  "httpPath": "/tenants/register",
32865
32919
  "inputSchema": {
32866
32920
  "properties": {
32921
+ "admin_email": {
32922
+ "format": "email",
32923
+ "type": "string"
32924
+ },
32925
+ "admin_first_name": {
32926
+ "type": "string"
32927
+ },
32928
+ "admin_last_name": {
32929
+ "type": "string"
32930
+ },
32931
+ "admin_password": {
32932
+ "minLength": 8,
32933
+ "type": "string"
32934
+ },
32935
+ "admin_phone": {
32936
+ "type": "string"
32937
+ },
32867
32938
  "contact_email": {
32868
32939
  "format": "email",
32869
32940
  "type": "string"
@@ -32881,7 +32952,11 @@
32881
32952
  },
32882
32953
  "required": [
32883
32954
  "tenant_id",
32884
- "name"
32955
+ "name",
32956
+ "admin_first_name",
32957
+ "admin_last_name",
32958
+ "admin_email",
32959
+ "admin_password"
32885
32960
  ],
32886
32961
  "type": "object"
32887
32962
  },
@@ -32889,6 +32964,11 @@
32889
32964
  "operationId": "tenantadmin.registerTenant",
32890
32965
  "parameters": {
32891
32966
  "body": [
32967
+ "admin_email",
32968
+ "admin_first_name",
32969
+ "admin_last_name",
32970
+ "admin_password",
32971
+ "admin_phone",
32892
32972
  "contact_email",
32893
32973
  "contact_phone",
32894
32974
  "name",
@@ -32979,6 +33059,41 @@
32979
33059
  },
32980
33060
  "requiredRoles": []
32981
33061
  },
33062
+ {
33063
+ "cliCommand": "resend-verification-code",
33064
+ "description": "Issue a fresh email-verification OTP for a tenant administrator whose email is not yet verified.",
33065
+ "descriptionSource": "mcp-authored",
33066
+ "destructive": false,
33067
+ "httpMethod": "POST",
33068
+ "httpPath": "/auth/resend-verification-code",
33069
+ "inputSchema": {
33070
+ "properties": {
33071
+ "email": {
33072
+ "format": "email",
33073
+ "type": "string"
33074
+ },
33075
+ "tenant_id": {
33076
+ "type": "string"
33077
+ }
33078
+ },
33079
+ "required": [
33080
+ "email",
33081
+ "tenant_id"
33082
+ ],
33083
+ "type": "object"
33084
+ },
33085
+ "name": "resend_verification_code",
33086
+ "operationId": "tenantadmin.resendVerificationCode",
33087
+ "parameters": {
33088
+ "body": [
33089
+ "email",
33090
+ "tenant_id"
33091
+ ],
33092
+ "path": [],
33093
+ "query": []
33094
+ },
33095
+ "requiredRoles": []
33096
+ },
32982
33097
  {
32983
33098
  "cliCommand": "reset-tenant-admin-password",
32984
33099
  "description": "Initiate the Cognito password-reset flow for a tenant administrator.",
@@ -33314,7 +33429,7 @@
33314
33429
  "protocolVersion": "2024-11-05",
33315
33430
  "schemaVersion": 1,
33316
33431
  "source": {
33317
- "catalogSha256": "17c86a651a52b7407464defef84e0b7ca9bf17502029eea5620848db7666f8f8"
33432
+ "catalogSha256": "3b99d68b16a989e1c940986f0a59e7f64b00589b491ba07902f60ccc7d22e362"
33318
33433
  },
33319
- "toolCount": 1002
33434
+ "toolCount": 1006
33320
33435
  }
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "healthcloud-cli"
7
- version = "2.0.0"
7
+ version = "2.0.1"
8
8
  description = "Command-line interface for the HealthCloud MCP gateway, generated from the shared MCP tool manifest."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"