carrier-python 0.1.15__py3-none-any.whl

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.
carrier/data/cli.json ADDED
@@ -0,0 +1,3032 @@
1
+ [
2
+ {
3
+ "invocation": "carrier subscribers list",
4
+ "domain": "subscribers",
5
+ "summary": "List subscribers. With no filter, uses your default account (lowest-id account under your reseller).",
6
+ "write": false,
7
+ "transport": "mcp",
8
+ "tool": "list_subscribers",
9
+ "restMethod": null,
10
+ "restPath": null,
11
+ "options": [
12
+ {
13
+ "flags": "--account-id <id>",
14
+ "description": "Filter by account ID",
15
+ "required": false
16
+ },
17
+ {
18
+ "flags": "--iccid <iccid>",
19
+ "description": "Filter by ICCID",
20
+ "required": false
21
+ },
22
+ {
23
+ "flags": "--msisdn <msisdn>",
24
+ "description": "Filter by MSISDN",
25
+ "required": false
26
+ },
27
+ {
28
+ "flags": "--imsi <imsi>",
29
+ "description": "Filter by IMSI",
30
+ "required": false
31
+ },
32
+ {
33
+ "flags": "--activation-code <code>",
34
+ "description": "Filter by eSIM activation code",
35
+ "required": false
36
+ },
37
+ {
38
+ "flags": "--status <status>",
39
+ "description": "Filter by status, e.g. ACTIVE",
40
+ "required": false
41
+ },
42
+ {
43
+ "flags": "--limit <n>",
44
+ "description": "Max rows to return",
45
+ "required": false
46
+ },
47
+ {
48
+ "flags": "--offset <n>",
49
+ "description": "Pagination offset",
50
+ "required": false
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "invocation": "carrier subscribers get",
56
+ "domain": "subscribers",
57
+ "summary": "Full record for one subscriber by ICCID or MSISDN.",
58
+ "write": false,
59
+ "transport": "mcp",
60
+ "tool": "get_subscriber",
61
+ "restMethod": null,
62
+ "restPath": null,
63
+ "options": [
64
+ {
65
+ "flags": "--iccid <iccid>",
66
+ "description": "Subscriber ICCID",
67
+ "required": false
68
+ },
69
+ {
70
+ "flags": "--msisdn <msisdn>",
71
+ "description": "Subscriber MSISDN",
72
+ "required": false
73
+ },
74
+ {
75
+ "flags": "--gz-counter",
76
+ "description": "Include the green-zone byte counter",
77
+ "required": false
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "invocation": "carrier subscribers location",
83
+ "domain": "subscribers",
84
+ "summary": "Last-known location from the most recent cell tower usage.",
85
+ "write": false,
86
+ "transport": "mcp",
87
+ "tool": "get_subscriber_location",
88
+ "restMethod": null,
89
+ "restPath": null,
90
+ "options": [
91
+ {
92
+ "flags": "--iccid <iccid>",
93
+ "description": "Subscriber ICCID",
94
+ "required": true
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ "invocation": "carrier subscribers usage",
100
+ "domain": "subscribers",
101
+ "summary": "Daily data, voice and SMS usage over a window of up to 7 days.",
102
+ "write": false,
103
+ "transport": "mcp",
104
+ "tool": "subscriber_usage",
105
+ "restMethod": null,
106
+ "restPath": null,
107
+ "options": [
108
+ {
109
+ "flags": "--iccid <iccid>",
110
+ "description": "Subscriber ICCID",
111
+ "required": true
112
+ },
113
+ {
114
+ "flags": "--start <date>",
115
+ "description": "Start date YYYY-MM-DD (default: 7 days ago)",
116
+ "required": false
117
+ },
118
+ {
119
+ "flags": "--end <date>",
120
+ "description": "End date YYYY-MM-DD, max 7 days from start (default: today)",
121
+ "required": false
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "invocation": "carrier subscribers events",
127
+ "domain": "subscribers",
128
+ "summary": "Network attach/detach events over a window of up to 7 days.",
129
+ "write": false,
130
+ "transport": "mcp",
131
+ "tool": "subscriber_network_events",
132
+ "restMethod": null,
133
+ "restPath": null,
134
+ "options": [
135
+ {
136
+ "flags": "--iccid <iccid>",
137
+ "description": "Subscriber ICCID",
138
+ "required": true
139
+ },
140
+ {
141
+ "flags": "--start <date>",
142
+ "description": "Start date YYYY-MM-DD (default: 7 days ago)",
143
+ "required": false
144
+ },
145
+ {
146
+ "flags": "--end <date>",
147
+ "description": "End date YYYY-MM-DD, max 7 days from start (default: today)",
148
+ "required": false
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "invocation": "carrier subscribers active-period",
154
+ "domain": "subscribers",
155
+ "summary": "First and last usage dates for one subscriber.",
156
+ "write": false,
157
+ "transport": "mcp",
158
+ "tool": "subscriber_active_period",
159
+ "restMethod": null,
160
+ "restPath": null,
161
+ "options": [
162
+ {
163
+ "flags": "--iccid <iccid>",
164
+ "description": "Subscriber ICCID",
165
+ "required": true
166
+ }
167
+ ]
168
+ },
169
+ {
170
+ "invocation": "carrier subscribers esim-status",
171
+ "domain": "subscribers",
172
+ "summary": "eSIM state counts per account: active, suspended, inventory.",
173
+ "write": false,
174
+ "transport": "mcp",
175
+ "tool": "esim_status_per_account",
176
+ "restMethod": null,
177
+ "restPath": null,
178
+ "options": [
179
+ {
180
+ "flags": "--account-id <id>",
181
+ "description": "Report on a single account",
182
+ "required": false
183
+ },
184
+ {
185
+ "flags": "--reseller-id <id>",
186
+ "description": "Reseller ID (omit for the token owner's reseller)",
187
+ "required": false
188
+ }
189
+ ]
190
+ },
191
+ {
192
+ "invocation": "carrier subscribers set-status",
193
+ "domain": "subscribers",
194
+ "summary": "Change a subscriber's status.",
195
+ "write": true,
196
+ "transport": "mcp",
197
+ "tool": "modify_subscriber_status",
198
+ "restMethod": null,
199
+ "restPath": null,
200
+ "options": [
201
+ {
202
+ "flags": "--iccid <iccid>",
203
+ "description": "Subscriber ICCID",
204
+ "required": true
205
+ },
206
+ {
207
+ "flags": "--status <status>",
208
+ "description": "New status, e.g. ACTIVE or SUSPENDED",
209
+ "required": true
210
+ }
211
+ ]
212
+ },
213
+ {
214
+ "invocation": "carrier subscribers set-balance",
215
+ "domain": "subscribers",
216
+ "summary": "Add to or replace a subscriber's balance.",
217
+ "write": true,
218
+ "transport": "mcp",
219
+ "tool": "modify_subscriber_balance",
220
+ "restMethod": null,
221
+ "restPath": null,
222
+ "options": [
223
+ {
224
+ "flags": "--iccid <iccid>",
225
+ "description": "Subscriber ICCID",
226
+ "required": true
227
+ },
228
+ {
229
+ "flags": "--amount <amount>",
230
+ "description": "Amount to add (adapt) or set to (set)",
231
+ "required": true
232
+ },
233
+ {
234
+ "flags": "--mode <mode>",
235
+ "description": "'adapt' adds or subtracts, 'set' replaces",
236
+ "required": true
237
+ }
238
+ ]
239
+ },
240
+ {
241
+ "invocation": "carrier subscribers sim-status show",
242
+ "domain": "subscribers",
243
+ "summary": "SIM/eSIM status at the SIM provider level, distinct from OCS status.",
244
+ "write": false,
245
+ "transport": "mcp",
246
+ "tool": "get_sim_provider_status",
247
+ "restMethod": null,
248
+ "restPath": null,
249
+ "options": [
250
+ {
251
+ "flags": "--iccid <iccid>",
252
+ "description": "Subscriber ICCID",
253
+ "required": true
254
+ }
255
+ ]
256
+ },
257
+ {
258
+ "invocation": "carrier subscribers sim-status set",
259
+ "domain": "subscribers",
260
+ "summary": "Change the SIM/eSIM status at the SIM provider level. ENABLED and DISABLED map to OCS Affected and Free.",
261
+ "write": true,
262
+ "transport": "mcp",
263
+ "tool": "change_sim_status",
264
+ "restMethod": null,
265
+ "restPath": null,
266
+ "options": [
267
+ {
268
+ "flags": "--iccid <iccid>",
269
+ "description": "Subscriber ICCID",
270
+ "required": true
271
+ },
272
+ {
273
+ "flags": "--status <status>",
274
+ "description": "New SIM status: ENABLED or DISABLED",
275
+ "required": true
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "invocation": "carrier subscribers phone-number set",
281
+ "domain": "subscribers",
282
+ "summary": "Assign a phone number (MSISDN) to a subscriber.",
283
+ "write": true,
284
+ "transport": "mcp",
285
+ "tool": "affect_subscriber_phone_number",
286
+ "restMethod": null,
287
+ "restPath": null,
288
+ "options": [
289
+ {
290
+ "flags": "--iccid <iccid>",
291
+ "description": "Subscriber ICCID",
292
+ "required": true
293
+ },
294
+ {
295
+ "flags": "--phone-number <e164>",
296
+ "description": "E.164 phone number to assign, e.g. +31612345678",
297
+ "required": true
298
+ },
299
+ {
300
+ "flags": "--phone-type <type>",
301
+ "description": "'fake' for test/dev MSISDNs, 'real' for production",
302
+ "required": true
303
+ }
304
+ ]
305
+ },
306
+ {
307
+ "invocation": "carrier subscribers contact set",
308
+ "domain": "subscribers",
309
+ "summary": "Update contact details on a subscriber. Omitted fields stay unchanged.",
310
+ "write": true,
311
+ "transport": "mcp",
312
+ "tool": "modify_subscriber_contact_info",
313
+ "restMethod": null,
314
+ "restPath": null,
315
+ "options": [
316
+ {
317
+ "flags": "--iccid <iccid>",
318
+ "description": "Subscriber ICCID",
319
+ "required": true
320
+ },
321
+ {
322
+ "flags": "--first-name <name>",
323
+ "description": "First name",
324
+ "required": false
325
+ },
326
+ {
327
+ "flags": "--last-name <name>",
328
+ "description": "Last name",
329
+ "required": false
330
+ },
331
+ {
332
+ "flags": "--company <name>",
333
+ "description": "Company name",
334
+ "required": false
335
+ },
336
+ {
337
+ "flags": "--email <email>",
338
+ "description": "Email address",
339
+ "required": false
340
+ },
341
+ {
342
+ "flags": "--phone-number <number>",
343
+ "description": "Phone number",
344
+ "required": false
345
+ }
346
+ ]
347
+ },
348
+ {
349
+ "invocation": "carrier subscribers mobile-plan set",
350
+ "domain": "subscribers",
351
+ "summary": "Change the mobile pricing plan a subscriber is billed under.",
352
+ "write": true,
353
+ "transport": "mcp",
354
+ "tool": "modify_subscriber_mobile_plan",
355
+ "restMethod": null,
356
+ "restPath": null,
357
+ "options": [
358
+ {
359
+ "flags": "--iccid <iccid>",
360
+ "description": "Subscriber ICCID",
361
+ "required": true
362
+ },
363
+ {
364
+ "flags": "--plan-id <id>",
365
+ "description": "Mobile pricing plan ID",
366
+ "required": true
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ "invocation": "carrier subscribers voip-plan set",
372
+ "domain": "subscribers",
373
+ "summary": "Change the VoIP pricing plan assigned to a subscriber.",
374
+ "write": true,
375
+ "transport": "mcp",
376
+ "tool": "modify_subscriber_voip_plan",
377
+ "restMethod": null,
378
+ "restPath": null,
379
+ "options": [
380
+ {
381
+ "flags": "--iccid <iccid>",
382
+ "description": "Subscriber ICCID",
383
+ "required": true
384
+ },
385
+ {
386
+ "flags": "--plan-id <id>",
387
+ "description": "VoIP pricing plan ID",
388
+ "required": true
389
+ }
390
+ ]
391
+ },
392
+ {
393
+ "invocation": "carrier subscribers traffic set",
394
+ "domain": "subscribers",
395
+ "summary": "Enable or disable data, calls and SMS per traffic type. Omit a flag to leave it unchanged.",
396
+ "write": true,
397
+ "transport": "mcp",
398
+ "tool": "set_subscriber_traffic_restrictions",
399
+ "restMethod": null,
400
+ "restPath": null,
401
+ "options": [
402
+ {
403
+ "flags": "--iccid <iccid>",
404
+ "description": "Subscriber ICCID",
405
+ "required": true
406
+ },
407
+ {
408
+ "flags": "--data <bool>",
409
+ "description": "Allow data traffic (true or false)",
410
+ "required": false
411
+ },
412
+ {
413
+ "flags": "--moc <bool>",
414
+ "description": "Allow outbound calls (true or false)",
415
+ "required": false
416
+ },
417
+ {
418
+ "flags": "--mtc <bool>",
419
+ "description": "Allow inbound calls (true or false)",
420
+ "required": false
421
+ },
422
+ {
423
+ "flags": "--sms <bool>",
424
+ "description": "Allow outbound SMS (true or false)",
425
+ "required": false
426
+ }
427
+ ]
428
+ },
429
+ {
430
+ "invocation": "carrier subscribers bitrate show",
431
+ "domain": "subscribers",
432
+ "summary": "Current HLR-level bandwidth cap for a subscriber.",
433
+ "write": false,
434
+ "transport": "mcp",
435
+ "tool": "hlr_get_bitrate",
436
+ "restMethod": null,
437
+ "restPath": null,
438
+ "options": [
439
+ {
440
+ "flags": "--iccid <iccid>",
441
+ "description": "Subscriber ICCID",
442
+ "required": true
443
+ }
444
+ ]
445
+ },
446
+ {
447
+ "invocation": "carrier subscribers bitrate set",
448
+ "domain": "subscribers",
449
+ "summary": "Set an HLR-level bandwidth cap. Bits per second are mapped onto the OCS KB_ enum.",
450
+ "write": true,
451
+ "transport": "mcp",
452
+ "tool": "hlr_set_bitrate",
453
+ "restMethod": null,
454
+ "restPath": null,
455
+ "options": [
456
+ {
457
+ "flags": "--iccid <iccid>",
458
+ "description": "Subscriber ICCID",
459
+ "required": true
460
+ },
461
+ {
462
+ "flags": "--bitrate <bps>",
463
+ "description": "Max bitrate in bits per second. 256000 is KB_256. 0 is UNLIMITED.",
464
+ "required": false
465
+ },
466
+ {
467
+ "flags": "--bitrate-string <level>",
468
+ "description": "OCS bitrate level, e.g. KB_256, KB_1024, UNLIMITED (instead of --bitrate)",
469
+ "required": false
470
+ }
471
+ ]
472
+ },
473
+ {
474
+ "invocation": "carrier subscribers greenzone reset",
475
+ "domain": "subscribers",
476
+ "summary": "Reset the Green Zone byte counter to zero. Irreversible.",
477
+ "write": true,
478
+ "transport": "mcp",
479
+ "tool": "reset_subscriber_gz_counter",
480
+ "restMethod": null,
481
+ "restPath": null,
482
+ "options": [
483
+ {
484
+ "flags": "--iccid <iccid>",
485
+ "description": "Subscriber ICCID",
486
+ "required": true
487
+ }
488
+ ]
489
+ },
490
+ {
491
+ "invocation": "carrier subscribers cell-location",
492
+ "domain": "subscribers",
493
+ "summary": "Resolve a raw cell tower tuple to coordinates (Bridge4IP GeoSense).",
494
+ "write": false,
495
+ "transport": "mcp",
496
+ "tool": "get_subscriber_location_by_cell_id",
497
+ "restMethod": null,
498
+ "restPath": null,
499
+ "options": [
500
+ {
501
+ "flags": "--radio-type <type>",
502
+ "description": "Radio type: 2G, 3G, 4G, 5G or NB-IoT",
503
+ "required": true
504
+ },
505
+ {
506
+ "flags": "--mcc <mcc>",
507
+ "description": "Mobile Country Code",
508
+ "required": true
509
+ },
510
+ {
511
+ "flags": "--mnc <mnc>",
512
+ "description": "Mobile Network Code",
513
+ "required": true
514
+ },
515
+ {
516
+ "flags": "--lac <lac>",
517
+ "description": "Location Area Code",
518
+ "required": true
519
+ },
520
+ {
521
+ "flags": "--cell-id <id>",
522
+ "description": "Cell tower ID (strongly recommended)",
523
+ "required": false
524
+ },
525
+ {
526
+ "flags": "--signal-strength <dbm>",
527
+ "description": "Signal strength in dBm, e.g. -89 (improves accuracy)",
528
+ "required": false
529
+ }
530
+ ]
531
+ },
532
+ {
533
+ "invocation": "carrier packages list",
534
+ "domain": "packages",
535
+ "summary": "Packages on one subscriber, with allowance and expiry.",
536
+ "write": false,
537
+ "transport": "mcp",
538
+ "tool": "list_subscriber_packages",
539
+ "restMethod": null,
540
+ "restPath": null,
541
+ "options": [
542
+ {
543
+ "flags": "--iccid <iccid>",
544
+ "description": "Subscriber ICCID",
545
+ "required": true
546
+ }
547
+ ]
548
+ },
549
+ {
550
+ "invocation": "carrier packages assign",
551
+ "domain": "packages",
552
+ "summary": "Assign a one-time package from a template.",
553
+ "write": true,
554
+ "transport": "mcp",
555
+ "tool": "assign_package",
556
+ "restMethod": null,
557
+ "restPath": null,
558
+ "options": [
559
+ {
560
+ "flags": "--iccid <iccid>",
561
+ "description": "Subscriber ICCID",
562
+ "required": false
563
+ },
564
+ {
565
+ "flags": "--template-id <id>",
566
+ "description": "Package template ID from `carrier templates list`",
567
+ "required": true
568
+ },
569
+ {
570
+ "flags": "--account-id <id>",
571
+ "description": "Issue from inventory through the authenticated Carrier API; requires --request-key; preserve it after unknown outcomes",
572
+ "required": false
573
+ },
574
+ {
575
+ "flags": "--request-key <key>",
576
+ "description": "Required stable inventory key (1–200 safe characters); preserved after unknown outcomes",
577
+ "required": false
578
+ },
579
+ {
580
+ "flags": "--start-date <date>",
581
+ "description": "Inventory package start date",
582
+ "required": false
583
+ },
584
+ {
585
+ "flags": "--end-date <date>",
586
+ "description": "Inventory package end date",
587
+ "required": false
588
+ },
589
+ {
590
+ "flags": "--validity-period <days>",
591
+ "description": "Inventory package validity period",
592
+ "required": false
593
+ },
594
+ {
595
+ "flags": "--business-kind <kind>",
596
+ "description": "Authorized reference kind: storefront_order",
597
+ "required": false
598
+ },
599
+ {
600
+ "flags": "--business-id <id>",
601
+ "description": "Existing API-authorized order ID",
602
+ "required": false
603
+ },
604
+ {
605
+ "flags": "--business-line <line>",
606
+ "description": "Authorized reference line: esim",
607
+ "required": false
608
+ },
609
+ {
610
+ "flags": "--business-verb <verb>",
611
+ "description": "Authorized reference verb: issue",
612
+ "required": false
613
+ }
614
+ ]
615
+ },
616
+ {
617
+ "invocation": "carrier packages set-status",
618
+ "domain": "packages",
619
+ "summary": "Activate or deactivate one package without deleting it.",
620
+ "write": true,
621
+ "transport": "mcp",
622
+ "tool": "modify_package_status",
623
+ "restMethod": null,
624
+ "restPath": null,
625
+ "options": [
626
+ {
627
+ "flags": "--iccid <iccid>",
628
+ "description": "Subscriber ICCID",
629
+ "required": true
630
+ },
631
+ {
632
+ "flags": "--package-id <id>",
633
+ "description": "Package ID from `carrier packages list`",
634
+ "required": true
635
+ },
636
+ {
637
+ "flags": "--status <status>",
638
+ "description": "New package status, e.g. ACTIVE or INACTIVE",
639
+ "required": true
640
+ }
641
+ ]
642
+ },
643
+ {
644
+ "invocation": "carrier packages set-expiry",
645
+ "domain": "packages",
646
+ "summary": "Move a package's expiry date. Pass an absolute date or a day count.",
647
+ "write": true,
648
+ "transport": "mcp",
649
+ "tool": "modify_package_expiry",
650
+ "restMethod": null,
651
+ "restPath": null,
652
+ "options": [
653
+ {
654
+ "flags": "--iccid <iccid>",
655
+ "description": "Subscriber ICCID",
656
+ "required": true
657
+ },
658
+ {
659
+ "flags": "--package-id <id>",
660
+ "description": "Package ID from `carrier packages list`",
661
+ "required": true
662
+ },
663
+ {
664
+ "flags": "--expires <date>",
665
+ "description": "Absolute expiry, ISO 8601 (e.g. 2026-06-01)",
666
+ "required": false
667
+ },
668
+ {
669
+ "flags": "--validity-days <n>",
670
+ "description": "Days from now until expiry (instead of --expires)",
671
+ "required": false
672
+ }
673
+ ]
674
+ },
675
+ {
676
+ "invocation": "carrier packages set-limits",
677
+ "domain": "packages",
678
+ "summary": "Change data, voice or SMS ceilings on an assigned package.",
679
+ "write": true,
680
+ "transport": "mcp",
681
+ "tool": "modify_package_limits",
682
+ "restMethod": null,
683
+ "restPath": null,
684
+ "options": [
685
+ {
686
+ "flags": "--iccid <iccid>",
687
+ "description": "Subscriber ICCID",
688
+ "required": true
689
+ },
690
+ {
691
+ "flags": "--package-id <id>",
692
+ "description": "Package ID from `carrier packages list`",
693
+ "required": true
694
+ },
695
+ {
696
+ "flags": "--limits <json>",
697
+ "description": "New limits as JSON, e.g. '{\"dataLimit\":5368709120}'",
698
+ "required": true
699
+ }
700
+ ]
701
+ },
702
+ {
703
+ "invocation": "carrier packages assign-recurring",
704
+ "domain": "packages",
705
+ "summary": "Assign an auto-renewing package from a recurring-enabled template.",
706
+ "write": true,
707
+ "transport": "mcp",
708
+ "tool": "assign_recurring_package",
709
+ "restMethod": null,
710
+ "restPath": null,
711
+ "options": [
712
+ {
713
+ "flags": "--iccid <iccid>",
714
+ "description": "Subscriber ICCID",
715
+ "required": true
716
+ },
717
+ {
718
+ "flags": "--template-id <id>",
719
+ "description": "Recurring package template ID from `carrier templates list`",
720
+ "required": true
721
+ },
722
+ {
723
+ "flags": "--activate-at-first-use",
724
+ "description": "Activate on first network usage (instead of --start-time)",
725
+ "required": false
726
+ },
727
+ {
728
+ "flags": "--start-time <iso>",
729
+ "description": "Scheduled activation, ISO 8601 UTC (instead of --activate-at-first-use)",
730
+ "required": false
731
+ }
732
+ ]
733
+ },
734
+ {
735
+ "invocation": "carrier packages recurring set",
736
+ "domain": "packages",
737
+ "summary": "Pause or restart the auto-renewal of a recurring package.",
738
+ "write": true,
739
+ "transport": "mcp",
740
+ "tool": "stop_resume_recurring_package",
741
+ "restMethod": null,
742
+ "restPath": null,
743
+ "options": [
744
+ {
745
+ "flags": "--iccid <iccid>",
746
+ "description": "Subscriber ICCID",
747
+ "required": true
748
+ },
749
+ {
750
+ "flags": "--package-id <id>",
751
+ "description": "Package ID from `carrier packages list`",
752
+ "required": true
753
+ },
754
+ {
755
+ "flags": "--action <action>",
756
+ "description": "'stop' halts future renewals, 'resume' re-enables them",
757
+ "required": true
758
+ }
759
+ ]
760
+ },
761
+ {
762
+ "invocation": "carrier packages active-period set",
763
+ "domain": "packages",
764
+ "summary": "Move the start and/or end of a package's active period.",
765
+ "write": true,
766
+ "transport": "mcp",
767
+ "tool": "modify_subscriber_package_active_period",
768
+ "restMethod": null,
769
+ "restPath": null,
770
+ "options": [
771
+ {
772
+ "flags": "--iccid <iccid>",
773
+ "description": "Subscriber ICCID",
774
+ "required": true
775
+ },
776
+ {
777
+ "flags": "--package-id <id>",
778
+ "description": "Package ID from `carrier packages list`",
779
+ "required": true
780
+ },
781
+ {
782
+ "flags": "--start <date>",
783
+ "description": "New start date, ISO 8601 (e.g. 2026-09-01)",
784
+ "required": false
785
+ },
786
+ {
787
+ "flags": "--end <date>",
788
+ "description": "New end date, ISO 8601 (e.g. 2026-09-30)",
789
+ "required": false
790
+ },
791
+ {
792
+ "flags": "--comment <text>",
793
+ "description": "Audit note stored on the package (OCS requires one; a default is sent)",
794
+ "required": false
795
+ }
796
+ ]
797
+ },
798
+ {
799
+ "invocation": "carrier packages clean",
800
+ "domain": "packages",
801
+ "summary": "Remove ALL packages from a subscriber. Irreversible.",
802
+ "write": true,
803
+ "transport": "mcp",
804
+ "tool": "clean_all_packages",
805
+ "restMethod": null,
806
+ "restPath": null,
807
+ "options": [
808
+ {
809
+ "flags": "--iccid <iccid>",
810
+ "description": "Subscriber ICCID",
811
+ "required": true
812
+ }
813
+ ]
814
+ },
815
+ {
816
+ "invocation": "carrier packages delete",
817
+ "domain": "packages",
818
+ "summary": "Permanently remove one package from a subscriber.",
819
+ "write": true,
820
+ "transport": "mcp",
821
+ "tool": "delete_subscriber_package",
822
+ "restMethod": null,
823
+ "restPath": null,
824
+ "options": [
825
+ {
826
+ "flags": "--iccid <iccid>",
827
+ "description": "Subscriber ICCID",
828
+ "required": true
829
+ },
830
+ {
831
+ "flags": "--package-id <id>",
832
+ "description": "Package ID from `carrier packages list`",
833
+ "required": true
834
+ }
835
+ ]
836
+ },
837
+ {
838
+ "invocation": "carrier templates list",
839
+ "domain": "templates",
840
+ "summary": "Browse package templates available for assignment.",
841
+ "write": false,
842
+ "transport": "mcp",
843
+ "tool": "list_package_templates",
844
+ "restMethod": null,
845
+ "restPath": null,
846
+ "options": []
847
+ },
848
+ {
849
+ "invocation": "carrier templates create",
850
+ "domain": "templates",
851
+ "summary": "Create a package template from a JSON configuration.",
852
+ "write": true,
853
+ "transport": "mcp",
854
+ "tool": "create_package_template",
855
+ "restMethod": null,
856
+ "restPath": null,
857
+ "options": [
858
+ {
859
+ "flags": "--template <json>",
860
+ "description": "Template config as JSON, e.g. '{\"name\":\"Europe 5GB\",\"dataLimit\":5368709120}'",
861
+ "required": true
862
+ }
863
+ ]
864
+ },
865
+ {
866
+ "invocation": "carrier templates set-core",
867
+ "domain": "templates",
868
+ "summary": "Change name, limits, cost, validity or zone on a template.",
869
+ "write": true,
870
+ "transport": "mcp",
871
+ "tool": "modify_template_core",
872
+ "restMethod": null,
873
+ "restPath": null,
874
+ "options": [
875
+ {
876
+ "flags": "--template-id <id>",
877
+ "description": "Template ID from `carrier templates list`",
878
+ "required": true
879
+ },
880
+ {
881
+ "flags": "--changes <json>",
882
+ "description": "Core fields as JSON, e.g. '{\"name\":\"Europe 5GB\"}'",
883
+ "required": true
884
+ }
885
+ ]
886
+ },
887
+ {
888
+ "invocation": "carrier templates set-recurring",
889
+ "domain": "templates",
890
+ "summary": "Change auto-renewal settings on a template.",
891
+ "write": true,
892
+ "transport": "mcp",
893
+ "tool": "modify_template_recurring",
894
+ "restMethod": null,
895
+ "restPath": null,
896
+ "options": [
897
+ {
898
+ "flags": "--template-id <id>",
899
+ "description": "Template ID from `carrier templates list`",
900
+ "required": true
901
+ },
902
+ {
903
+ "flags": "--changes <json>",
904
+ "description": "Recurring fields as JSON, e.g. '{\"recurringPeriodicityType\":2,\"nbOccurrence\":12}'",
905
+ "required": true
906
+ }
907
+ ]
908
+ },
909
+ {
910
+ "invocation": "carrier templates set-throttling",
911
+ "domain": "templates",
912
+ "summary": "Change throttling thresholds. Applies to existing packages too.",
913
+ "write": true,
914
+ "transport": "mcp",
915
+ "tool": "modify_template_throttling",
916
+ "restMethod": null,
917
+ "restPath": null,
918
+ "options": [
919
+ {
920
+ "flags": "--template-id <id>",
921
+ "description": "Template ID from `carrier templates list`",
922
+ "required": true
923
+ },
924
+ {
925
+ "flags": "--changes <json>",
926
+ "description": "Throttling fields as JSON, e.g. '{\"throttlingActive\":true}'",
927
+ "required": true
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "invocation": "carrier zones list",
933
+ "domain": "zones",
934
+ "summary": "Location zones with countries and operators. Prefer this over `elements`.",
935
+ "write": false,
936
+ "transport": "mcp",
937
+ "tool": "list_detailed_location_zones",
938
+ "restMethod": null,
939
+ "restPath": null,
940
+ "options": [
941
+ {
942
+ "flags": "--reseller-id <id>",
943
+ "description": "Reseller ID (omit for the token owner's reseller)",
944
+ "required": false
945
+ },
946
+ {
947
+ "flags": "--verbose <bool>",
948
+ "description": "Return the full OCS zone shape instead of the compact projection",
949
+ "required": false
950
+ }
951
+ ]
952
+ },
953
+ {
954
+ "invocation": "carrier zones elements",
955
+ "domain": "zones",
956
+ "summary": "Raw zone elements. Upstream OCS returns malformed rows for some zones.",
957
+ "write": false,
958
+ "transport": "mcp",
959
+ "tool": "list_location_zones",
960
+ "restMethod": null,
961
+ "restPath": null,
962
+ "options": [
963
+ {
964
+ "flags": "--zone-id <id>",
965
+ "description": "Filter to one location zone",
966
+ "required": true
967
+ }
968
+ ]
969
+ },
970
+ {
971
+ "invocation": "carrier zones create",
972
+ "domain": "zones",
973
+ "summary": "Create a location zone from a JSON configuration.",
974
+ "write": true,
975
+ "transport": "mcp",
976
+ "tool": "create_location_zone",
977
+ "restMethod": null,
978
+ "restPath": null,
979
+ "options": [
980
+ {
981
+ "flags": "--zone <json>",
982
+ "description": "Zone config as JSON, e.g. '{\"locationZoneName\":\"Europe\",\"tadigList\":[\"AZER1\",\"QWER1\"],\"networkProfileId\":79}'",
983
+ "required": true
984
+ }
985
+ ]
986
+ },
987
+ {
988
+ "invocation": "carrier zones network-profile set",
989
+ "domain": "zones",
990
+ "summary": "Attach or change the network profile on an existing location zone.",
991
+ "write": true,
992
+ "transport": "mcp",
993
+ "tool": "change_network_profile_of_location_zone",
994
+ "restMethod": null,
995
+ "restPath": null,
996
+ "options": [
997
+ {
998
+ "flags": "--zone-id <id>",
999
+ "description": "Location zone ID from `carrier zones list`",
1000
+ "required": true
1001
+ },
1002
+ {
1003
+ "flags": "--network-profile-id <id>",
1004
+ "description": "Network profile ID from `carrier network-profiles list`",
1005
+ "required": true
1006
+ }
1007
+ ]
1008
+ },
1009
+ {
1010
+ "invocation": "carrier zones destinations",
1011
+ "domain": "zones",
1012
+ "summary": "Destination list catalog for voice and SMS packages.",
1013
+ "write": false,
1014
+ "transport": "mcp",
1015
+ "tool": "list_destination_lists",
1016
+ "restMethod": null,
1017
+ "restPath": null,
1018
+ "options": [
1019
+ {
1020
+ "flags": "--reseller-id <id>",
1021
+ "description": "Reseller ID (omit for the token owner's reseller)",
1022
+ "required": false
1023
+ }
1024
+ ]
1025
+ },
1026
+ {
1027
+ "invocation": "carrier zones prefixes",
1028
+ "domain": "zones",
1029
+ "summary": "Dialling prefixes inside one destination list.",
1030
+ "write": false,
1031
+ "transport": "mcp",
1032
+ "tool": "list_destination_prefixes",
1033
+ "restMethod": null,
1034
+ "restPath": null,
1035
+ "options": [
1036
+ {
1037
+ "flags": "--destination-list-id <id>",
1038
+ "description": "Destination list ID from `carrier zones destinations`",
1039
+ "required": true
1040
+ }
1041
+ ]
1042
+ },
1043
+ {
1044
+ "invocation": "carrier steering list",
1045
+ "domain": "steering",
1046
+ "summary": "Steering lists configured for this reseller.",
1047
+ "write": false,
1048
+ "transport": "mcp",
1049
+ "tool": "list_steering_lists",
1050
+ "restMethod": null,
1051
+ "restPath": null,
1052
+ "options": [
1053
+ {
1054
+ "flags": "--reseller-id <id>",
1055
+ "description": "Reseller ID (omit for the token owner's reseller)",
1056
+ "required": false
1057
+ }
1058
+ ]
1059
+ },
1060
+ {
1061
+ "invocation": "carrier steering assign",
1062
+ "domain": "steering",
1063
+ "summary": "Assign a steering list to a subscriber. Follow with `push`.",
1064
+ "write": true,
1065
+ "transport": "mcp",
1066
+ "tool": "modify_subscriber_steering_list",
1067
+ "restMethod": null,
1068
+ "restPath": null,
1069
+ "options": [
1070
+ {
1071
+ "flags": "--iccid <iccid>",
1072
+ "description": "Subscriber ICCID",
1073
+ "required": true
1074
+ },
1075
+ {
1076
+ "flags": "--list-id <id>",
1077
+ "description": "Steering list ID from `carrier steering list`",
1078
+ "required": true
1079
+ }
1080
+ ]
1081
+ },
1082
+ {
1083
+ "invocation": "carrier steering push",
1084
+ "domain": "steering",
1085
+ "summary": "Push the assigned operator preference list to the device now.",
1086
+ "write": true,
1087
+ "transport": "mcp",
1088
+ "tool": "push_steering_to_subscriber",
1089
+ "restMethod": null,
1090
+ "restPath": null,
1091
+ "options": [
1092
+ {
1093
+ "flags": "--iccid <iccid>",
1094
+ "description": "Subscriber ICCID",
1095
+ "required": true
1096
+ }
1097
+ ]
1098
+ },
1099
+ {
1100
+ "invocation": "carrier network-default show",
1101
+ "domain": "network-default",
1102
+ "summary": "Show the org network default (cheapest_available, all or custom) and what applies today. New assignments only.",
1103
+ "write": false,
1104
+ "transport": "mcp",
1105
+ "tool": "get_network_default",
1106
+ "restMethod": null,
1107
+ "restPath": null,
1108
+ "options": []
1109
+ },
1110
+ {
1111
+ "invocation": "carrier network-default set",
1112
+ "domain": "network-default",
1113
+ "summary": "Store the org network default. Changes no SIM and writes nothing to OCS; applies to new assignments.",
1114
+ "write": true,
1115
+ "transport": "mcp",
1116
+ "tool": "set_network_default",
1117
+ "restMethod": null,
1118
+ "restPath": null,
1119
+ "options": [
1120
+ {
1121
+ "flags": "--mode <mode>",
1122
+ "description": "cheapest_available | all | custom",
1123
+ "required": true
1124
+ },
1125
+ {
1126
+ "flags": "--list-id <id>",
1127
+ "description": "Steering list ID from `carrier steering list`. Required when --mode is custom.",
1128
+ "required": false
1129
+ }
1130
+ ]
1131
+ },
1132
+ {
1133
+ "invocation": "carrier network-default plan",
1134
+ "domain": "network-default",
1135
+ "summary": "Show which networks a SIM would get in the given countries. Read only. Falls back to all networks with a loud warning when the tariff is missing.",
1136
+ "write": false,
1137
+ "transport": "mcp",
1138
+ "tool": "plan_network_default",
1139
+ "restMethod": null,
1140
+ "restPath": null,
1141
+ "options": [
1142
+ {
1143
+ "flags": "--countries <codes>",
1144
+ "description": "Comma-separated ISO-3166 alpha-2 codes, e.g. CA,US",
1145
+ "required": true
1146
+ },
1147
+ {
1148
+ "flags": "--sim-mode <mode>",
1149
+ "description": "Override for this SIM: cheapest_available | all | custom",
1150
+ "required": false
1151
+ },
1152
+ {
1153
+ "flags": "--sim-list-id <id>",
1154
+ "description": "Steering list ID when --sim-mode is custom",
1155
+ "required": false
1156
+ },
1157
+ {
1158
+ "flags": "--package-mode <mode>",
1159
+ "description": "Override for this package: cheapest_available | all | custom",
1160
+ "required": false
1161
+ },
1162
+ {
1163
+ "flags": "--package-list-id <id>",
1164
+ "description": "Steering list ID when --package-mode is custom",
1165
+ "required": false
1166
+ },
1167
+ {
1168
+ "flags": "--reseller-id <id>",
1169
+ "description": "Reseller ID (omit for the token owner's reseller)",
1170
+ "required": false
1171
+ }
1172
+ ]
1173
+ },
1174
+ {
1175
+ "invocation": "carrier accounts list",
1176
+ "domain": "accounts",
1177
+ "summary": "Accounts under a reseller with name, balance and type.",
1178
+ "write": false,
1179
+ "transport": "mcp",
1180
+ "tool": "list_reseller_accounts",
1181
+ "restMethod": null,
1182
+ "restPath": null,
1183
+ "options": [
1184
+ {
1185
+ "flags": "--reseller-id <id>",
1186
+ "description": "Reseller ID (omit for the token owner's reseller)",
1187
+ "required": false
1188
+ }
1189
+ ]
1190
+ },
1191
+ {
1192
+ "invocation": "carrier accounts balance set",
1193
+ "domain": "accounts",
1194
+ "summary": "Add to or replace an account's monetary balance.",
1195
+ "write": true,
1196
+ "transport": "mcp",
1197
+ "tool": "modify_account_balance",
1198
+ "restMethod": null,
1199
+ "restPath": null,
1200
+ "options": [
1201
+ {
1202
+ "flags": "--account-id <id>",
1203
+ "description": "Account ID from `carrier accounts list`",
1204
+ "required": true
1205
+ },
1206
+ {
1207
+ "flags": "--amount <amount>",
1208
+ "description": "Amount to add (adapt) or set to (set)",
1209
+ "required": true
1210
+ },
1211
+ {
1212
+ "flags": "--mode <mode>",
1213
+ "description": "'adapt' adds or subtracts, 'set' replaces",
1214
+ "required": true
1215
+ }
1216
+ ]
1217
+ },
1218
+ {
1219
+ "invocation": "carrier accounts move-subscribers",
1220
+ "domain": "accounts",
1221
+ "summary": "Move a contiguous IMSI or ICCID range of subscribers to another account.",
1222
+ "write": true,
1223
+ "transport": "mcp",
1224
+ "tool": "move_subscriber_range_to_account",
1225
+ "restMethod": null,
1226
+ "restPath": null,
1227
+ "options": [
1228
+ {
1229
+ "flags": "--src-account-id <id>",
1230
+ "description": "Source account ID from `carrier accounts list`",
1231
+ "required": true
1232
+ },
1233
+ {
1234
+ "flags": "--dest-account <id>",
1235
+ "description": "Destination account ID from `carrier accounts list`",
1236
+ "required": true
1237
+ },
1238
+ {
1239
+ "flags": "--range-type <type>",
1240
+ "description": "Whether --range-start/--range-end are IMSI or ICCID ('IMSI' | 'ICCID')",
1241
+ "required": true
1242
+ },
1243
+ {
1244
+ "flags": "--range-start <value>",
1245
+ "description": "Inclusive start of the identifier range",
1246
+ "required": true
1247
+ },
1248
+ {
1249
+ "flags": "--range-end <value>",
1250
+ "description": "Inclusive end of the identifier range",
1251
+ "required": true
1252
+ }
1253
+ ]
1254
+ },
1255
+ {
1256
+ "invocation": "carrier reseller show",
1257
+ "domain": "reseller",
1258
+ "summary": "Full reseller record: balance, pricing plans, contact and traffic config.",
1259
+ "write": false,
1260
+ "transport": "mcp",
1261
+ "tool": "get_reseller_info",
1262
+ "restMethod": null,
1263
+ "restPath": null,
1264
+ "options": [
1265
+ {
1266
+ "flags": "--reseller-id <id>",
1267
+ "description": "Reseller ID (omit for the token owner's reseller)",
1268
+ "required": false
1269
+ }
1270
+ ]
1271
+ },
1272
+ {
1273
+ "invocation": "carrier tariff show",
1274
+ "domain": "tariff",
1275
+ "summary": "Per-country wholesale rates for data, voice and SMS.",
1276
+ "write": false,
1277
+ "transport": "mcp",
1278
+ "tool": "get_tariff",
1279
+ "restMethod": null,
1280
+ "restPath": null,
1281
+ "options": [
1282
+ {
1283
+ "flags": "--reseller-id <id>",
1284
+ "description": "Reseller ID (omit for the token owner's reseller)",
1285
+ "required": false
1286
+ },
1287
+ {
1288
+ "flags": "--country <name|iso2>",
1289
+ "description": "Filter to one country: ISO2 (\"nl\") or name (\"Netherlands\")",
1290
+ "required": false
1291
+ },
1292
+ {
1293
+ "flags": "--traffic-type <type>",
1294
+ "description": "Filter to data, voice or sms",
1295
+ "required": false
1296
+ },
1297
+ {
1298
+ "flags": "--verbose <bool>",
1299
+ "description": "Return the full OCS rule shape instead of the compact projection",
1300
+ "required": false
1301
+ }
1302
+ ]
1303
+ },
1304
+ {
1305
+ "invocation": "carrier tariff voip",
1306
+ "domain": "tariff",
1307
+ "summary": "VoIP tariff catalog for a reseller.",
1308
+ "write": false,
1309
+ "transport": "mcp",
1310
+ "tool": "list_subscriber_voip_tariff",
1311
+ "restMethod": null,
1312
+ "restPath": null,
1313
+ "options": [
1314
+ {
1315
+ "flags": "--reseller-id <id>",
1316
+ "description": "Reseller ID (omit for the token owner's reseller)",
1317
+ "required": false
1318
+ }
1319
+ ]
1320
+ },
1321
+ {
1322
+ "invocation": "carrier tariff voip-rules",
1323
+ "domain": "tariff",
1324
+ "summary": "Rate rules inside one VoIP plan.",
1325
+ "write": false,
1326
+ "transport": "mcp",
1327
+ "tool": "list_voip_tariff_rule",
1328
+ "restMethod": null,
1329
+ "restPath": null,
1330
+ "options": [
1331
+ {
1332
+ "flags": "--voip-plan-id <id>",
1333
+ "description": "VoIP plan ID from `carrier tariff voip`",
1334
+ "required": true
1335
+ }
1336
+ ]
1337
+ },
1338
+ {
1339
+ "invocation": "carrier sms send",
1340
+ "domain": "sms",
1341
+ "summary": "Send an MT SMS to one subscriber.",
1342
+ "write": true,
1343
+ "transport": "mcp",
1344
+ "tool": "send_sms",
1345
+ "restMethod": null,
1346
+ "restPath": null,
1347
+ "options": [
1348
+ {
1349
+ "flags": "--iccid <iccid>",
1350
+ "description": "Subscriber ICCID",
1351
+ "required": true
1352
+ },
1353
+ {
1354
+ "flags": "--msisdn <msisdn>",
1355
+ "description": "Target MSISDN in E.164 format",
1356
+ "required": true
1357
+ },
1358
+ {
1359
+ "flags": "--message <text>",
1360
+ "description": "SMS text (160 chars GSM-7; 70 with emoji or non-Latin scripts)",
1361
+ "required": true
1362
+ },
1363
+ {
1364
+ "flags": "--sender <sender>",
1365
+ "description": "Sender ID or number shown on the device",
1366
+ "required": false
1367
+ }
1368
+ ]
1369
+ },
1370
+ {
1371
+ "invocation": "carrier sponsors list",
1372
+ "domain": "sponsors",
1373
+ "summary": "Sponsor carriers available to this reseller.",
1374
+ "write": false,
1375
+ "transport": "mcp",
1376
+ "tool": "list_sponsors",
1377
+ "restMethod": null,
1378
+ "restPath": null,
1379
+ "options": [
1380
+ {
1381
+ "flags": "--reseller-id <id>",
1382
+ "description": "Reseller ID (omit for the token owner's reseller)",
1383
+ "required": false
1384
+ }
1385
+ ]
1386
+ },
1387
+ {
1388
+ "invocation": "carrier network-profiles list",
1389
+ "domain": "network-profiles",
1390
+ "summary": "Network profiles available to this reseller.",
1391
+ "write": false,
1392
+ "transport": "mcp",
1393
+ "tool": "list_network_profiles",
1394
+ "restMethod": null,
1395
+ "restPath": null,
1396
+ "options": []
1397
+ },
1398
+ {
1399
+ "invocation": "carrier webhooks show",
1400
+ "domain": "webhooks",
1401
+ "summary": "Current relay flags (LU, Gy, VoIP, calls+SMS) and notification webhooks.",
1402
+ "write": false,
1403
+ "transport": "mcp",
1404
+ "tool": "carrier_webhook_config",
1405
+ "restMethod": null,
1406
+ "restPath": null,
1407
+ "options": [
1408
+ {
1409
+ "flags": "--reseller-id <id>",
1410
+ "description": "Reseller ID (omit for the token owner's reseller)",
1411
+ "required": false
1412
+ }
1413
+ ]
1414
+ },
1415
+ {
1416
+ "invocation": "carrier intelligence fleet-health",
1417
+ "domain": "intelligence",
1418
+ "summary": "eSIM counts, low-balance accounts and what needs attention.",
1419
+ "write": false,
1420
+ "transport": "mcp",
1421
+ "tool": "fleet_health",
1422
+ "restMethod": null,
1423
+ "restPath": null,
1424
+ "options": [
1425
+ {
1426
+ "flags": "--account-id <id>",
1427
+ "description": "Report on a single account",
1428
+ "required": false
1429
+ }
1430
+ ]
1431
+ },
1432
+ {
1433
+ "invocation": "carrier intelligence diagnose",
1434
+ "domain": "intelligence",
1435
+ "summary": "Why one subscriber is offline, throttled or failing to attach.",
1436
+ "write": false,
1437
+ "transport": "mcp",
1438
+ "tool": "diagnose_subscriber",
1439
+ "restMethod": null,
1440
+ "restPath": null,
1441
+ "options": [
1442
+ {
1443
+ "flags": "--iccid <iccid>",
1444
+ "description": "Subscriber ICCID",
1445
+ "required": true
1446
+ }
1447
+ ]
1448
+ },
1449
+ {
1450
+ "invocation": "carrier intelligence anomalies",
1451
+ "domain": "intelligence",
1452
+ "summary": "Usage spikes and burn rates that exhaust the package early.",
1453
+ "write": false,
1454
+ "transport": "mcp",
1455
+ "tool": "detect_usage_anomalies",
1456
+ "restMethod": null,
1457
+ "restPath": null,
1458
+ "options": [
1459
+ {
1460
+ "flags": "--iccid <iccid>",
1461
+ "description": "Subscriber ICCID",
1462
+ "required": true
1463
+ }
1464
+ ]
1465
+ },
1466
+ {
1467
+ "invocation": "carrier intelligence churn",
1468
+ "domain": "intelligence",
1469
+ "summary": "Churn risk score with contributing factors.",
1470
+ "write": false,
1471
+ "transport": "mcp",
1472
+ "tool": "churn_risk",
1473
+ "restMethod": null,
1474
+ "restPath": null,
1475
+ "options": [
1476
+ {
1477
+ "flags": "--iccid <iccid>",
1478
+ "description": "Subscriber ICCID",
1479
+ "required": true
1480
+ }
1481
+ ]
1482
+ },
1483
+ {
1484
+ "invocation": "carrier intelligence optimize",
1485
+ "domain": "intelligence",
1486
+ "summary": "Better-fitting package for one subscriber, with the saving.",
1487
+ "write": false,
1488
+ "transport": "mcp",
1489
+ "tool": "optimize_package",
1490
+ "restMethod": null,
1491
+ "restPath": null,
1492
+ "options": [
1493
+ {
1494
+ "flags": "--iccid <iccid>",
1495
+ "description": "Subscriber ICCID",
1496
+ "required": true
1497
+ }
1498
+ ]
1499
+ },
1500
+ {
1501
+ "invocation": "carrier intelligence coverage",
1502
+ "domain": "intelligence",
1503
+ "summary": "Networks subscribers actually attach to, against your steering lists.",
1504
+ "write": false,
1505
+ "transport": "mcp",
1506
+ "tool": "audit_network_coverage",
1507
+ "restMethod": null,
1508
+ "restPath": null,
1509
+ "options": [
1510
+ {
1511
+ "flags": "--account-id <id>",
1512
+ "description": "Report on a single account",
1513
+ "required": false
1514
+ },
1515
+ {
1516
+ "flags": "--limit <n>",
1517
+ "description": "Subscribers to sample (default 50)",
1518
+ "required": false
1519
+ }
1520
+ ]
1521
+ },
1522
+ {
1523
+ "invocation": "carrier intelligence high-cost",
1524
+ "domain": "intelligence",
1525
+ "summary": "Subscribers whose consumption erodes the margin.",
1526
+ "write": false,
1527
+ "transport": "mcp",
1528
+ "tool": "high_cost_subscribers",
1529
+ "restMethod": null,
1530
+ "restPath": null,
1531
+ "options": [
1532
+ {
1533
+ "flags": "--account-id <id>",
1534
+ "description": "Report on a single account",
1535
+ "required": false
1536
+ },
1537
+ {
1538
+ "flags": "--limit <n>",
1539
+ "description": "Subscribers to analyse (default 100)",
1540
+ "required": false
1541
+ },
1542
+ {
1543
+ "flags": "--threshold-pct <n>",
1544
+ "description": "Usage percentage that flags a subscriber (default 80)",
1545
+ "required": false
1546
+ }
1547
+ ]
1548
+ },
1549
+ {
1550
+ "invocation": "carrier intelligence marketing",
1551
+ "domain": "intelligence",
1552
+ "summary": "Where subscribers and revenue concentrate, and which markets grow.",
1553
+ "write": false,
1554
+ "transport": "mcp",
1555
+ "tool": "marketing_intelligence",
1556
+ "restMethod": null,
1557
+ "restPath": null,
1558
+ "options": [
1559
+ {
1560
+ "flags": "--account-id <id>",
1561
+ "description": "Report on a single account",
1562
+ "required": false
1563
+ }
1564
+ ]
1565
+ },
1566
+ {
1567
+ "invocation": "carrier intelligence country-entry",
1568
+ "domain": "intelligence",
1569
+ "summary": "Country a subscriber is in now, optionally diffed against the last known one.",
1570
+ "write": false,
1571
+ "transport": "mcp",
1572
+ "tool": "detect_country_entry",
1573
+ "restMethod": null,
1574
+ "restPath": null,
1575
+ "options": [
1576
+ {
1577
+ "flags": "--iccid <iccid>",
1578
+ "description": "Subscriber ICCID",
1579
+ "required": true
1580
+ },
1581
+ {
1582
+ "flags": "--expected-country <iso2>",
1583
+ "description": "Last known ISO 3166-1 alpha-2 country, e.g. NL",
1584
+ "required": false
1585
+ }
1586
+ ]
1587
+ },
1588
+ {
1589
+ "invocation": "carrier api-keys create",
1590
+ "domain": "api-keys",
1591
+ "summary": "Create an org API key. The secret is shown once and never stored by the CLI.",
1592
+ "write": false,
1593
+ "transport": "rest",
1594
+ "tool": null,
1595
+ "restMethod": "POST",
1596
+ "restPath": "/v1/api-keys",
1597
+ "options": [
1598
+ {
1599
+ "flags": "--name <name>",
1600
+ "description": "Label for the key, max 64 characters",
1601
+ "required": true
1602
+ },
1603
+ {
1604
+ "flags": "--description <text>",
1605
+ "description": "Optional note, max 256 characters",
1606
+ "required": false
1607
+ },
1608
+ {
1609
+ "flags": "--seconds-until-expiration <n>",
1610
+ "description": "Expiry in seconds, 60 to 31536000. Omit for a key that does not expire.",
1611
+ "required": false
1612
+ }
1613
+ ]
1614
+ },
1615
+ {
1616
+ "invocation": "carrier onboard status",
1617
+ "domain": "onboard",
1618
+ "summary": "Show how far onboarding has got. Same state the console renders.",
1619
+ "write": false,
1620
+ "transport": "rest",
1621
+ "tool": null,
1622
+ "restMethod": "GET",
1623
+ "restPath": "/v1/onboarding",
1624
+ "options": []
1625
+ },
1626
+ {
1627
+ "invocation": "carrier onboard org",
1628
+ "domain": "onboard",
1629
+ "summary": "Record who the operator is (step 1).",
1630
+ "write": false,
1631
+ "transport": "rest",
1632
+ "tool": null,
1633
+ "restMethod": "POST",
1634
+ "restPath": "/v1/onboarding/org",
1635
+ "options": [
1636
+ {
1637
+ "flags": "--name <name>",
1638
+ "description": "Operator name, max 128 characters",
1639
+ "required": true
1640
+ },
1641
+ {
1642
+ "flags": "--website <url>",
1643
+ "description": "Public site, if there is one",
1644
+ "required": false
1645
+ },
1646
+ {
1647
+ "flags": "--country <iso2>",
1648
+ "description": "ISO 3166-1 alpha-2 country, e.g. NL",
1649
+ "required": false
1650
+ },
1651
+ {
1652
+ "flags": "--operator-type <type>",
1653
+ "description": "How the operator describes itself, e.g. mvno",
1654
+ "required": false
1655
+ }
1656
+ ]
1657
+ },
1658
+ {
1659
+ "invocation": "carrier onboard connect",
1660
+ "domain": "onboard",
1661
+ "summary": "Connect your own eSIMVault token (step 2, BYO). Verified against OCS, then stored encrypted; the token is never echoed back.",
1662
+ "write": false,
1663
+ "transport": "rest",
1664
+ "tool": null,
1665
+ "restMethod": "POST",
1666
+ "restPath": "/v1/onboarding/ocs-connect",
1667
+ "options": [
1668
+ {
1669
+ "flags": "--token <token>",
1670
+ "description": "eSIMVault API token. A flag lands in shell history — prefer a leading space, or run this once from a fresh shell.",
1671
+ "required": true
1672
+ }
1673
+ ]
1674
+ },
1675
+ {
1676
+ "invocation": "carrier onboard managed",
1677
+ "domain": "onboard",
1678
+ "summary": "Let Carrier provision the OCS sub-account instead (step 2, the primary path). Idempotent, and clears any BYO token.",
1679
+ "write": false,
1680
+ "transport": "rest",
1681
+ "tool": null,
1682
+ "restMethod": "POST",
1683
+ "restPath": "/v1/onboarding/managed-account",
1684
+ "options": []
1685
+ },
1686
+ {
1687
+ "invocation": "carrier onboard plan",
1688
+ "domain": "onboard",
1689
+ "summary": "Record the starting plan template (step 3).",
1690
+ "write": false,
1691
+ "transport": "rest",
1692
+ "tool": null,
1693
+ "restMethod": "POST",
1694
+ "restPath": "/v1/onboarding/plan",
1695
+ "options": [
1696
+ {
1697
+ "flags": "--template-id <id>",
1698
+ "description": "Package template to start from",
1699
+ "required": true
1700
+ },
1701
+ {
1702
+ "flags": "--display-name <name>",
1703
+ "description": "What customers will see the plan called",
1704
+ "required": true
1705
+ }
1706
+ ]
1707
+ },
1708
+ {
1709
+ "invocation": "carrier onboard plan-skip",
1710
+ "domain": "onboard",
1711
+ "summary": "Skip the plan step and come back to it later (step 3).",
1712
+ "write": false,
1713
+ "transport": "rest",
1714
+ "tool": null,
1715
+ "restMethod": "POST",
1716
+ "restPath": "/v1/onboarding/plan/skip",
1717
+ "options": []
1718
+ },
1719
+ {
1720
+ "invocation": "carrier onboard test-esim",
1721
+ "domain": "onboard",
1722
+ "summary": "Read back one eSIM from the connected fleet (step 4). Nothing is provisioned; a demo ICCID with a reason comes back if OCS has nothing to show.",
1723
+ "write": false,
1724
+ "transport": "rest",
1725
+ "tool": null,
1726
+ "restMethod": "POST",
1727
+ "restPath": "/v1/onboarding/test-esim",
1728
+ "options": []
1729
+ },
1730
+ {
1731
+ "invocation": "carrier onboard complete",
1732
+ "domain": "onboard",
1733
+ "summary": "Mark onboarding done (step 5).",
1734
+ "write": false,
1735
+ "transport": "rest",
1736
+ "tool": null,
1737
+ "restMethod": "POST",
1738
+ "restPath": "/v1/onboarding/complete",
1739
+ "options": []
1740
+ },
1741
+ {
1742
+ "invocation": "carrier affiliate status",
1743
+ "domain": "affiliate",
1744
+ "summary": "Read-only: returns the affiliate profile, referral code, link, counts, money owed and paid, and Connect payouts status for the authenticated operator.",
1745
+ "write": false,
1746
+ "transport": "mcp",
1747
+ "tool": "affiliate_status",
1748
+ "restMethod": null,
1749
+ "restPath": null,
1750
+ "options": []
1751
+ },
1752
+ {
1753
+ "invocation": "carrier affiliate commissions",
1754
+ "domain": "affiliate",
1755
+ "summary": "Read-only: returns the list of commission records for the authenticated operator.",
1756
+ "write": false,
1757
+ "transport": "mcp",
1758
+ "tool": "affiliate_commissions",
1759
+ "restMethod": null,
1760
+ "restPath": null,
1761
+ "options": [
1762
+ {
1763
+ "flags": "--limit <n>",
1764
+ "description": "Maximum number of commission records to return (1-200, default: 50). Default 50.",
1765
+ "required": false
1766
+ }
1767
+ ]
1768
+ },
1769
+ {
1770
+ "invocation": "carrier affiliate join",
1771
+ "domain": "affiliate",
1772
+ "summary": "Join the Carrier affiliate program and generate a personal referral code and link.",
1773
+ "write": false,
1774
+ "transport": "mcp",
1775
+ "tool": "affiliate_join",
1776
+ "restMethod": null,
1777
+ "restPath": null,
1778
+ "options": []
1779
+ },
1780
+ {
1781
+ "invocation": "carrier billing events",
1782
+ "domain": "billing",
1783
+ "summary": "View recent billing threshold events: notifications, invoice triggers, hard cap alerts, and overage pauses.",
1784
+ "write": false,
1785
+ "transport": "mcp",
1786
+ "tool": "billing_events",
1787
+ "restMethod": null,
1788
+ "restPath": null,
1789
+ "options": [
1790
+ {
1791
+ "flags": "--limit <n>",
1792
+ "description": "Maximum number of events to return (default: 20, max: 50).",
1793
+ "required": false
1794
+ }
1795
+ ]
1796
+ },
1797
+ {
1798
+ "invocation": "carrier billing configure",
1799
+ "domain": "billing",
1800
+ "summary": "Configure your billing preferences: enable/disable overages, set billing thresholds (bill shock prevention), configure notification percentages, and set hard spending caps.",
1801
+ "write": false,
1802
+ "transport": "mcp",
1803
+ "tool": "configure_billing",
1804
+ "restMethod": null,
1805
+ "restPath": null,
1806
+ "options": [
1807
+ {
1808
+ "flags": "--overages-enabled <bool>",
1809
+ "description": "Enable or disable auto-billed overages when monthly credits are exhausted.",
1810
+ "required": false
1811
+ },
1812
+ {
1813
+ "flags": "--billing-threshold-cents <n>",
1814
+ "description": "Amount in cents at which an invoice is automatically generated (e.g., 10000 = $100).",
1815
+ "required": false
1816
+ },
1817
+ {
1818
+ "flags": "--hard-cap-cents <n>",
1819
+ "description": "Maximum overage spend in cents before overages are paused (0 = no cap).",
1820
+ "required": false
1821
+ },
1822
+ {
1823
+ "flags": "--auto-pause-on-cap <bool>",
1824
+ "description": "Whether to automatically pause overages when hard cap is reached.",
1825
+ "required": false
1826
+ },
1827
+ {
1828
+ "flags": "--notify-at-pct <list>",
1829
+ "description": "Percentage thresholds at which to send notifications (e.g., [50, 80, 95, 100]). Comma-separated.",
1830
+ "required": false
1831
+ },
1832
+ {
1833
+ "flags": "--notification-email <email>",
1834
+ "description": "Email address for billing threshold notifications.",
1835
+ "required": false
1836
+ },
1837
+ {
1838
+ "flags": "--notification-phone <phone>",
1839
+ "description": "E.164 phone number for SMS billing threshold notifications via Twilio (e.g. +14155552671).",
1840
+ "required": false
1841
+ },
1842
+ {
1843
+ "flags": "--webhook-url <url>",
1844
+ "description": "Webhook URL for billing threshold events.",
1845
+ "required": false
1846
+ }
1847
+ ]
1848
+ },
1849
+ {
1850
+ "invocation": "carrier billing credits",
1851
+ "domain": "billing",
1852
+ "summary": "Read how much of this Carrier MCP plan is left: credits remaining, daily free credits, overage state, volume discount tier, and billing threshold state.",
1853
+ "write": false,
1854
+ "transport": "mcp",
1855
+ "tool": "credit_balance",
1856
+ "restMethod": null,
1857
+ "restPath": null,
1858
+ "options": []
1859
+ },
1860
+ {
1861
+ "invocation": "carrier billing plans",
1862
+ "domain": "billing",
1863
+ "summary": "View all available Carrier MCP pricing plans with credit allotments, features, overage rates, and volume discount tiers.",
1864
+ "write": false,
1865
+ "transport": "mcp",
1866
+ "tool": "pricing_plans",
1867
+ "restMethod": null,
1868
+ "restPath": null,
1869
+ "options": []
1870
+ },
1871
+ {
1872
+ "invocation": "carrier billing projection",
1873
+ "domain": "billing",
1874
+ "summary": "Project your credit usage and costs for the remainder of the billing period based on current consumption rate.",
1875
+ "write": false,
1876
+ "transport": "mcp",
1877
+ "tool": "usage_projection",
1878
+ "restMethod": null,
1879
+ "restPath": null,
1880
+ "options": [
1881
+ {
1882
+ "flags": "--days-to-project <n>",
1883
+ "description": "Number of days to project forward (default: remaining days in month).",
1884
+ "required": false
1885
+ }
1886
+ ]
1887
+ },
1888
+ {
1889
+ "invocation": "carrier billing rate-limit",
1890
+ "domain": "billing",
1891
+ "summary": "Inspect Bridge4IP OCS rate-limit governor state — bucket fill levels, per-endpoint limits, and 80% alert thresholds.",
1892
+ "write": false,
1893
+ "transport": "mcp",
1894
+ "tool": "rate_limit_status",
1895
+ "restMethod": null,
1896
+ "restPath": null,
1897
+ "options": [
1898
+ {
1899
+ "flags": "--endpoint <endpoint>",
1900
+ "description": "OCS method name in camelCase (e.g. 'subscriberUsageOverPeriod').",
1901
+ "required": false
1902
+ }
1903
+ ]
1904
+ },
1905
+ {
1906
+ "invocation": "carrier wallet balance",
1907
+ "domain": "wallet",
1908
+ "summary": "Read the caller organisation's Carrier prepaid wallet: current balance and auto-top-up settings.",
1909
+ "write": false,
1910
+ "transport": "mcp",
1911
+ "tool": "wallet_balance",
1912
+ "restMethod": null,
1913
+ "restPath": null,
1914
+ "options": []
1915
+ },
1916
+ {
1917
+ "invocation": "carrier wallet topup",
1918
+ "domain": "wallet",
1919
+ "summary": "Create a Stripe Checkout link so a human can top up the Carrier prepaid wallet by card.",
1920
+ "write": false,
1921
+ "transport": "mcp",
1922
+ "tool": "wallet_topup_checkout",
1923
+ "restMethod": null,
1924
+ "restPath": null,
1925
+ "options": [
1926
+ {
1927
+ "flags": "--pack <pack>",
1928
+ "description": "Pack id (pack_25/pack_50/pack_100/pack_500/pack_1000/pack_2500/pack_5000) or exact EUR-cents amount.",
1929
+ "required": false
1930
+ }
1931
+ ]
1932
+ },
1933
+ {
1934
+ "invocation": "carrier wallet auto-topup",
1935
+ "domain": "wallet",
1936
+ "summary": "Charge the organisation's saved card off-session, right now, and credit the Carrier prepaid wallet with the pack.",
1937
+ "write": false,
1938
+ "transport": "mcp",
1939
+ "tool": "wallet_auto_topup",
1940
+ "restMethod": null,
1941
+ "restPath": null,
1942
+ "options": [
1943
+ {
1944
+ "flags": "--pack-cents <n>",
1945
+ "description": "Override pack amount in EUR cents (must match a catalog pack).",
1946
+ "required": false
1947
+ }
1948
+ ]
1949
+ },
1950
+ {
1951
+ "invocation": "carrier stripe balance",
1952
+ "domain": "stripe",
1953
+ "summary": "Read the money sitting in the operator's connected Stripe account: available and pending, split per currency.",
1954
+ "write": false,
1955
+ "transport": "mcp",
1956
+ "tool": "stripe_connect_balance",
1957
+ "restMethod": null,
1958
+ "restPath": null,
1959
+ "options": []
1960
+ },
1961
+ {
1962
+ "invocation": "carrier stripe payouts",
1963
+ "domain": "stripe",
1964
+ "summary": "List money Stripe has already sent from the operator's connected account to their bank, newest first.",
1965
+ "write": false,
1966
+ "transport": "mcp",
1967
+ "tool": "stripe_connect_payouts",
1968
+ "restMethod": null,
1969
+ "restPath": null,
1970
+ "options": [
1971
+ {
1972
+ "flags": "--limit <n>",
1973
+ "description": "Number of payouts to return. Default 10.",
1974
+ "required": false
1975
+ },
1976
+ {
1977
+ "flags": "--status <status>",
1978
+ "description": "Filter by payout status. One of: pending, paid, failed, canceled, in_transit.",
1979
+ "required": false
1980
+ }
1981
+ ]
1982
+ },
1983
+ {
1984
+ "invocation": "carrier stripe charges",
1985
+ "domain": "stripe",
1986
+ "summary": "List recent payments (charges) on the operator's connected Stripe account, e.g. storefront purchases.",
1987
+ "write": false,
1988
+ "transport": "mcp",
1989
+ "tool": "stripe_connect_charges_list",
1990
+ "restMethod": null,
1991
+ "restPath": null,
1992
+ "options": [
1993
+ {
1994
+ "flags": "--limit <n>",
1995
+ "description": "Number of charges to return. Default 20.",
1996
+ "required": false
1997
+ },
1998
+ {
1999
+ "flags": "--starting-after <after>",
2000
+ "description": "Charge id to page after.",
2001
+ "required": false
2002
+ }
2003
+ ]
2004
+ },
2005
+ {
2006
+ "invocation": "carrier stripe disputes",
2007
+ "domain": "stripe",
2008
+ "summary": "List chargebacks customers have raised with their bank against the operator's connected Stripe account.",
2009
+ "write": false,
2010
+ "transport": "mcp",
2011
+ "tool": "stripe_connect_dispute_list",
2012
+ "restMethod": null,
2013
+ "restPath": null,
2014
+ "options": [
2015
+ {
2016
+ "flags": "--limit <n>",
2017
+ "description": "limit (number). Default 10.",
2018
+ "required": false
2019
+ },
2020
+ {
2021
+ "flags": "--status <status>",
2022
+ "description": "Filter by dispute status (e.g. needs_response, under_review).",
2023
+ "required": false
2024
+ }
2025
+ ]
2026
+ },
2027
+ {
2028
+ "invocation": "carrier stripe refund",
2029
+ "domain": "stripe",
2030
+ "summary": "Refund money to a customer on one charge in the operator's connected Stripe account.",
2031
+ "write": false,
2032
+ "transport": "mcp",
2033
+ "tool": "stripe_connect_refund",
2034
+ "restMethod": null,
2035
+ "restPath": null,
2036
+ "options": [
2037
+ {
2038
+ "flags": "--charge-id <id>",
2039
+ "description": "Stripe charge ID (ch_...).",
2040
+ "required": true
2041
+ },
2042
+ {
2043
+ "flags": "--amount-cents <n>",
2044
+ "description": "Partial refund amount in cents.",
2045
+ "required": false
2046
+ },
2047
+ {
2048
+ "flags": "--reason <reason>",
2049
+ "description": "reason (string). One of: duplicate, fraudulent, requested_by_customer.",
2050
+ "required": false
2051
+ },
2052
+ {
2053
+ "flags": "--confirm-token <token>",
2054
+ "description": "Confirmation token from previous call.",
2055
+ "required": false
2056
+ }
2057
+ ]
2058
+ },
2059
+ {
2060
+ "invocation": "carrier radar reviews",
2061
+ "domain": "radar",
2062
+ "summary": "List the Stripe Radar fraud reviews waiting on a manual approve/decline decision, newest first.",
2063
+ "write": false,
2064
+ "transport": "mcp",
2065
+ "tool": "radar_review_list",
2066
+ "restMethod": null,
2067
+ "restPath": null,
2068
+ "options": [
2069
+ {
2070
+ "flags": "--open-only <bool>",
2071
+ "description": "Stripe lists only open (undecided) reviews; kept for compatibility. Default true.",
2072
+ "required": false
2073
+ },
2074
+ {
2075
+ "flags": "--limit <n>",
2076
+ "description": "limit (number). Default 10.",
2077
+ "required": false
2078
+ }
2079
+ ]
2080
+ },
2081
+ {
2082
+ "invocation": "carrier radar approve",
2083
+ "domain": "radar",
2084
+ "summary": "Clear a Stripe Radar fraud review so the held charge is captured and the money is taken.",
2085
+ "write": false,
2086
+ "transport": "mcp",
2087
+ "tool": "radar_review_approve",
2088
+ "restMethod": null,
2089
+ "restPath": null,
2090
+ "options": [
2091
+ {
2092
+ "flags": "--review-id <id>",
2093
+ "description": "Stripe Radar review ID (prv_...).",
2094
+ "required": true
2095
+ },
2096
+ {
2097
+ "flags": "--confirm-token <token>",
2098
+ "description": "confirm token (string).",
2099
+ "required": false
2100
+ }
2101
+ ]
2102
+ },
2103
+ {
2104
+ "invocation": "carrier radar decline",
2105
+ "domain": "radar",
2106
+ "summary": "Always refuses and calls nothing: Stripe has no endpoint to decline a Radar review (its Reviews API only lists, retrieves and approves).",
2107
+ "write": false,
2108
+ "transport": "mcp",
2109
+ "tool": "radar_review_decline",
2110
+ "restMethod": null,
2111
+ "restPath": null,
2112
+ "options": [
2113
+ {
2114
+ "flags": "--review-id <id>",
2115
+ "description": "review id (string).",
2116
+ "required": true
2117
+ },
2118
+ {
2119
+ "flags": "--confirm-token <token>",
2120
+ "description": "confirm token (string).",
2121
+ "required": false
2122
+ }
2123
+ ]
2124
+ },
2125
+ {
2126
+ "invocation": "carrier radar rule-toggle",
2127
+ "domain": "radar",
2128
+ "summary": "Report a Stripe Radar rule's state. Stripe exposes no API to change it, so this changes nothing.",
2129
+ "write": false,
2130
+ "transport": "mcp",
2131
+ "tool": "radar_rule_toggle",
2132
+ "restMethod": null,
2133
+ "restPath": null,
2134
+ "options": [
2135
+ {
2136
+ "flags": "--rule-id <id>",
2137
+ "description": "Stripe Radar rule ID.",
2138
+ "required": true
2139
+ },
2140
+ {
2141
+ "flags": "--enabled <bool>",
2142
+ "description": "true = enable, false = disable.",
2143
+ "required": true
2144
+ }
2145
+ ]
2146
+ },
2147
+ {
2148
+ "invocation": "carrier radar value-list add",
2149
+ "domain": "radar",
2150
+ "summary": "Add one value to an existing Stripe Radar value list, changing how every future charge is scored.",
2151
+ "write": false,
2152
+ "transport": "mcp",
2153
+ "tool": "radar_value_list_add",
2154
+ "restMethod": null,
2155
+ "restPath": null,
2156
+ "options": [
2157
+ {
2158
+ "flags": "--value-list-id <id>",
2159
+ "description": "Stripe Radar value list ID (rsl_...).",
2160
+ "required": true
2161
+ },
2162
+ {
2163
+ "flags": "--value <value>",
2164
+ "description": "The value to add (email, IP address, country code, etc.).",
2165
+ "required": true
2166
+ },
2167
+ {
2168
+ "flags": "--confirm-token <token>",
2169
+ "description": "confirm token (string).",
2170
+ "required": false
2171
+ }
2172
+ ]
2173
+ },
2174
+ {
2175
+ "invocation": "carrier greenzone list",
2176
+ "domain": "greenzone",
2177
+ "summary": "List current Greenzone whitelist entries from the KV cache.",
2178
+ "write": false,
2179
+ "transport": "mcp",
2180
+ "tool": "greenzone_whitelist_list",
2181
+ "restMethod": null,
2182
+ "restPath": null,
2183
+ "options": [
2184
+ {
2185
+ "flags": "--from-portal <bool>",
2186
+ "description": "When true, return Kapture steps to read live portal state instead of KV cache.",
2187
+ "required": false
2188
+ }
2189
+ ]
2190
+ },
2191
+ {
2192
+ "invocation": "carrier greenzone add",
2193
+ "domain": "greenzone",
2194
+ "summary": "Add a host or IP to the Greenzone whitelist. Needs Kapture running in the operator's own Chrome — without it the dry run still returns the portal steps to follow by hand.",
2195
+ "write": true,
2196
+ "transport": "mcp",
2197
+ "tool": "greenzone_whitelist_add",
2198
+ "restMethod": null,
2199
+ "restPath": null,
2200
+ "options": [
2201
+ {
2202
+ "flags": "--host <host>",
2203
+ "description": "Hostname to whitelist (e.g. 'example.com').",
2204
+ "required": false
2205
+ },
2206
+ {
2207
+ "flags": "--ip <ip>",
2208
+ "description": "IP address or CIDR to whitelist (e.g. '203.0.113.0/24').",
2209
+ "required": false
2210
+ }
2211
+ ]
2212
+ },
2213
+ {
2214
+ "invocation": "carrier greenzone remove",
2215
+ "domain": "greenzone",
2216
+ "summary": "Remove a host or IP from the Greenzone whitelist. Needs Kapture running in the operator's own Chrome — without it the dry run still returns the portal steps to follow by hand.",
2217
+ "write": true,
2218
+ "transport": "mcp",
2219
+ "tool": "greenzone_whitelist_remove",
2220
+ "restMethod": null,
2221
+ "restPath": null,
2222
+ "options": [
2223
+ {
2224
+ "flags": "--host <host>",
2225
+ "description": "Hostname to remove from whitelist.",
2226
+ "required": false
2227
+ },
2228
+ {
2229
+ "flags": "--ip <ip>",
2230
+ "description": "IP address or CIDR to remove from whitelist.",
2231
+ "required": false
2232
+ }
2233
+ ]
2234
+ },
2235
+ {
2236
+ "invocation": "carrier agent ask",
2237
+ "domain": "agent",
2238
+ "summary": "Send a plain-language task to a hosted browsing agent, which drives a real browser on the open web — navigating pages, searching, extracting content, filling forms outside the OCS portal.",
2239
+ "write": true,
2240
+ "transport": "mcp",
2241
+ "tool": "ui_agent_ask",
2242
+ "restMethod": null,
2243
+ "restPath": null,
2244
+ "options": [
2245
+ {
2246
+ "flags": "--prompt <prompt>",
2247
+ "description": "Natural-language task description for the browsing agent.",
2248
+ "required": true
2249
+ },
2250
+ {
2251
+ "flags": "--max-steps <n>",
2252
+ "description": "Advisory step budget (1–30, default 15).",
2253
+ "required": false
2254
+ }
2255
+ ]
2256
+ },
2257
+ {
2258
+ "invocation": "carrier agent status",
2259
+ "domain": "agent",
2260
+ "summary": "Poll the status of a browser agent task dispatched by ui_agent_ask or any ui_* tool.",
2261
+ "write": false,
2262
+ "transport": "mcp",
2263
+ "tool": "ui_agent_status",
2264
+ "restMethod": null,
2265
+ "restPath": null,
2266
+ "options": [
2267
+ {
2268
+ "flags": "--task-id <id>",
2269
+ "description": "Task ID returned by ui_agent_ask or any ui_* tool dispatch.",
2270
+ "required": true
2271
+ }
2272
+ ]
2273
+ },
2274
+ {
2275
+ "invocation": "carrier agent pending",
2276
+ "domain": "agent",
2277
+ "summary": "Returns all browser automation tasks that are currently paused waiting for human input.",
2278
+ "write": false,
2279
+ "transport": "mcp",
2280
+ "tool": "ui_agent_list_pending",
2281
+ "restMethod": null,
2282
+ "restPath": null,
2283
+ "options": []
2284
+ },
2285
+ {
2286
+ "invocation": "carrier agent reply",
2287
+ "domain": "agent",
2288
+ "summary": "Resumes a browser automation task that paused waiting for input.",
2289
+ "write": false,
2290
+ "transport": "mcp",
2291
+ "tool": "ui_agent_reply",
2292
+ "restMethod": null,
2293
+ "restPath": null,
2294
+ "options": [
2295
+ {
2296
+ "flags": "--task-id <id>",
2297
+ "description": "Task ID to resume (from ui_agent_list_pending).",
2298
+ "required": true
2299
+ },
2300
+ {
2301
+ "flags": "--reply <reply>",
2302
+ "description": "Your answer to the agent's question (e.g. a 2FA code or confirmation).",
2303
+ "required": true
2304
+ }
2305
+ ]
2306
+ },
2307
+ {
2308
+ "invocation": "carrier agent usage",
2309
+ "domain": "agent",
2310
+ "summary": "Returns an estimated Anthropic API cost for Steel agent tasks dispatched this calendar month.",
2311
+ "write": false,
2312
+ "transport": "mcp",
2313
+ "tool": "ui_agent_usage",
2314
+ "restMethod": null,
2315
+ "restPath": null,
2316
+ "options": []
2317
+ },
2318
+ {
2319
+ "invocation": "carrier agent schedule list",
2320
+ "domain": "agent",
2321
+ "summary": "Lists all Steel recurring schedules stored in KV.",
2322
+ "write": false,
2323
+ "transport": "mcp",
2324
+ "tool": "ui_agent_schedule_list",
2325
+ "restMethod": null,
2326
+ "restPath": null,
2327
+ "options": []
2328
+ },
2329
+ {
2330
+ "invocation": "carrier agent schedule create",
2331
+ "domain": "agent",
2332
+ "summary": "Creates a recurring Steel agent run on a cron schedule.",
2333
+ "write": false,
2334
+ "transport": "mcp",
2335
+ "tool": "ui_agent_schedule_create",
2336
+ "restMethod": null,
2337
+ "restPath": null,
2338
+ "options": [
2339
+ {
2340
+ "flags": "--name <name>",
2341
+ "description": "Human-readable name for this schedule.",
2342
+ "required": true
2343
+ },
2344
+ {
2345
+ "flags": "--cron <cron>",
2346
+ "description": "Standard 5-field cron expression (minute hour day month weekday).",
2347
+ "required": true
2348
+ },
2349
+ {
2350
+ "flags": "--prompt-template <template>",
2351
+ "description": "Agent prompt/task template the Steel agent will execute on each run.",
2352
+ "required": true
2353
+ }
2354
+ ]
2355
+ },
2356
+ {
2357
+ "invocation": "carrier agent schedule pause",
2358
+ "domain": "agent",
2359
+ "summary": "Pauses an active Steel recurring schedule.",
2360
+ "write": false,
2361
+ "transport": "mcp",
2362
+ "tool": "ui_agent_schedule_pause",
2363
+ "restMethod": null,
2364
+ "restPath": null,
2365
+ "options": [
2366
+ {
2367
+ "flags": "--schedule-id <id>",
2368
+ "description": "ID of the schedule to pause.",
2369
+ "required": true
2370
+ }
2371
+ ]
2372
+ },
2373
+ {
2374
+ "invocation": "carrier agent schedule resume",
2375
+ "domain": "agent",
2376
+ "summary": "Resumes a paused Steel recurring schedule.",
2377
+ "write": false,
2378
+ "transport": "mcp",
2379
+ "tool": "ui_agent_schedule_resume",
2380
+ "restMethod": null,
2381
+ "restPath": null,
2382
+ "options": [
2383
+ {
2384
+ "flags": "--schedule-id <id>",
2385
+ "description": "ID of the schedule to resume.",
2386
+ "required": true
2387
+ }
2388
+ ]
2389
+ },
2390
+ {
2391
+ "invocation": "carrier agent schedule delete",
2392
+ "domain": "agent",
2393
+ "summary": "Permanently deletes a Steel recurring schedule.",
2394
+ "write": false,
2395
+ "transport": "mcp",
2396
+ "tool": "ui_agent_schedule_delete",
2397
+ "restMethod": null,
2398
+ "restPath": null,
2399
+ "options": [
2400
+ {
2401
+ "flags": "--schedule-id <id>",
2402
+ "description": "ID of the schedule to delete.",
2403
+ "required": true
2404
+ }
2405
+ ]
2406
+ },
2407
+ {
2408
+ "invocation": "carrier portal account create",
2409
+ "domain": "portal",
2410
+ "summary": "Creates a new sub-account under the reseller via the OCS web dashboard.",
2411
+ "write": true,
2412
+ "transport": "mcp",
2413
+ "tool": "ui_create_account",
2414
+ "restMethod": null,
2415
+ "restPath": null,
2416
+ "options": [
2417
+ {
2418
+ "flags": "--name <name>",
2419
+ "description": "Name for the new account.",
2420
+ "required": true
2421
+ },
2422
+ {
2423
+ "flags": "--description <description>",
2424
+ "description": "Optional description.",
2425
+ "required": false
2426
+ },
2427
+ {
2428
+ "flags": "--initial-balance <n>",
2429
+ "description": "Initial balance in account currency (default 0).",
2430
+ "required": false
2431
+ }
2432
+ ]
2433
+ },
2434
+ {
2435
+ "invocation": "carrier portal steering build",
2436
+ "domain": "portal",
2437
+ "summary": "Change which mobile operators sit on a steering list that already exists, by driving the OCS web dashboard — the OCS REST API cannot edit list membership.",
2438
+ "write": true,
2439
+ "transport": "mcp",
2440
+ "tool": "ui_build_steering_list",
2441
+ "restMethod": null,
2442
+ "restPath": null,
2443
+ "options": [
2444
+ {
2445
+ "flags": "--steering-list-id <n>",
2446
+ "description": "ID of the steering list to modify.",
2447
+ "required": true
2448
+ },
2449
+ {
2450
+ "flags": "--add-operators <list>",
2451
+ "description": "MCC-MNC codes to add (e.g. ['20801', '26201']). Comma-separated.",
2452
+ "required": false
2453
+ },
2454
+ {
2455
+ "flags": "--remove-operators <list>",
2456
+ "description": "MCC-MNC codes to remove. Comma-separated.",
2457
+ "required": false
2458
+ },
2459
+ {
2460
+ "flags": "--operator-type <type>",
2461
+ "description": "Whether operators are priority or excluded. One of: priority, excluded. Default \"priority\".",
2462
+ "required": false
2463
+ }
2464
+ ]
2465
+ },
2466
+ {
2467
+ "invocation": "carrier portal steering create",
2468
+ "domain": "portal",
2469
+ "summary": "Create a new, empty network steering list (OPLMN preference set) by driving the OCS web dashboard, because the OCS REST API cannot create one.",
2470
+ "write": true,
2471
+ "transport": "mcp",
2472
+ "tool": "ui_create_steering_list",
2473
+ "restMethod": null,
2474
+ "restPath": null,
2475
+ "options": [
2476
+ {
2477
+ "flags": "--name <name>",
2478
+ "description": "Name for the new steering list.",
2479
+ "required": true
2480
+ },
2481
+ {
2482
+ "flags": "--description <description>",
2483
+ "description": "Optional description for the steering list.",
2484
+ "required": false
2485
+ }
2486
+ ]
2487
+ },
2488
+ {
2489
+ "invocation": "carrier portal steering set-account",
2490
+ "domain": "portal",
2491
+ "summary": "Assigns or removes a steering list at the account level via the OCS web dashboard.",
2492
+ "write": true,
2493
+ "transport": "mcp",
2494
+ "tool": "ui_set_account_steering_list",
2495
+ "restMethod": null,
2496
+ "restPath": null,
2497
+ "options": [
2498
+ {
2499
+ "flags": "--account-id <n>",
2500
+ "description": "Account ID to assign the steering list to.",
2501
+ "required": true
2502
+ },
2503
+ {
2504
+ "flags": "--steering-list-id <n>",
2505
+ "description": "Steering list ID to assign (0 to remove/unset).",
2506
+ "required": true
2507
+ }
2508
+ ]
2509
+ },
2510
+ {
2511
+ "invocation": "carrier portal relay request",
2512
+ "domain": "portal",
2513
+ "summary": "Drafts the parent-reseller/support request for reseller relay flags that are visible but read-only in the OCS portal at the current account tier.",
2514
+ "write": false,
2515
+ "transport": "mcp",
2516
+ "tool": "ui_request_reseller_relay_change",
2517
+ "restMethod": null,
2518
+ "restPath": null,
2519
+ "options": [
2520
+ {
2521
+ "flags": "--reseller-id <n>",
2522
+ "description": "Reseller id; defaults to the authenticated reseller.",
2523
+ "required": false
2524
+ },
2525
+ {
2526
+ "flags": "--relay-gy <bool>",
2527
+ "description": "Desired Relay Gy state.",
2528
+ "required": false
2529
+ },
2530
+ {
2531
+ "flags": "--relay-calls-sms <bool>",
2532
+ "description": "Desired calls/SMS relay state.",
2533
+ "required": false
2534
+ },
2535
+ {
2536
+ "flags": "--relay-voip <bool>",
2537
+ "description": "Desired VoIP relay state.",
2538
+ "required": false
2539
+ },
2540
+ {
2541
+ "flags": "--reason <reason>",
2542
+ "description": "Operational reason for the requested change.",
2543
+ "required": false
2544
+ }
2545
+ ]
2546
+ },
2547
+ {
2548
+ "invocation": "carrier portal destinations create",
2549
+ "domain": "portal",
2550
+ "summary": "Creates a new destination list (named set of phone number prefixes for MOC call permissions) via the OCS web dashboard.",
2551
+ "write": true,
2552
+ "transport": "mcp",
2553
+ "tool": "ui_create_destination_list",
2554
+ "restMethod": null,
2555
+ "restPath": null,
2556
+ "options": [
2557
+ {
2558
+ "flags": "--name <name>",
2559
+ "description": "Name for the new destination list.",
2560
+ "required": true
2561
+ },
2562
+ {
2563
+ "flags": "--prefixes <list>",
2564
+ "description": "Phone number prefixes to include (e.g. ['+31', '+49']). Comma-separated.",
2565
+ "required": false
2566
+ },
2567
+ {
2568
+ "flags": "--description <description>",
2569
+ "description": "Optional description.",
2570
+ "required": false
2571
+ }
2572
+ ]
2573
+ },
2574
+ {
2575
+ "invocation": "carrier portal destinations edit",
2576
+ "domain": "portal",
2577
+ "summary": "Edits an existing destination list via the OCS web dashboard.",
2578
+ "write": true,
2579
+ "transport": "mcp",
2580
+ "tool": "ui_edit_destination_list",
2581
+ "restMethod": null,
2582
+ "restPath": null,
2583
+ "options": [
2584
+ {
2585
+ "flags": "--destination-list-id <n>",
2586
+ "description": "ID of the destination list to edit.",
2587
+ "required": true
2588
+ },
2589
+ {
2590
+ "flags": "--add-prefixes <list>",
2591
+ "description": "Prefixes to add. Comma-separated.",
2592
+ "required": false
2593
+ },
2594
+ {
2595
+ "flags": "--remove-prefixes <list>",
2596
+ "description": "Prefixes to remove. Comma-separated.",
2597
+ "required": false
2598
+ },
2599
+ {
2600
+ "flags": "--new-name <name>",
2601
+ "description": "Rename the destination list.",
2602
+ "required": false
2603
+ }
2604
+ ]
2605
+ },
2606
+ {
2607
+ "invocation": "carrier portal destinations delete",
2608
+ "domain": "portal",
2609
+ "summary": "Delete a destination list — a named set of phone-number prefixes — by driving the OCS web dashboard.",
2610
+ "write": true,
2611
+ "transport": "mcp",
2612
+ "tool": "ui_delete_destination_list",
2613
+ "restMethod": null,
2614
+ "restPath": null,
2615
+ "options": [
2616
+ {
2617
+ "flags": "--destination-list-id <n>",
2618
+ "description": "ID of the destination list to delete.",
2619
+ "required": true
2620
+ }
2621
+ ]
2622
+ },
2623
+ {
2624
+ "invocation": "carrier portal zones edit",
2625
+ "domain": "portal",
2626
+ "summary": "Edits an existing location zone via the OCS web dashboard. `create_location_zone` is available via API; edit is UI-only.",
2627
+ "write": true,
2628
+ "transport": "mcp",
2629
+ "tool": "ui_edit_location_zone",
2630
+ "restMethod": null,
2631
+ "restPath": null,
2632
+ "options": [
2633
+ {
2634
+ "flags": "--zone-id <n>",
2635
+ "description": "ID of the location zone to edit.",
2636
+ "required": true
2637
+ },
2638
+ {
2639
+ "flags": "--new-name <name>",
2640
+ "description": "Rename the location zone.",
2641
+ "required": false
2642
+ },
2643
+ {
2644
+ "flags": "--add-countries <list>",
2645
+ "description": "ISO country codes to add (e.g. ['NL', 'DE']). Comma-separated.",
2646
+ "required": false
2647
+ },
2648
+ {
2649
+ "flags": "--remove-countries <list>",
2650
+ "description": "ISO country codes to remove. Comma-separated.",
2651
+ "required": false
2652
+ }
2653
+ ]
2654
+ },
2655
+ {
2656
+ "invocation": "carrier portal zones delete",
2657
+ "domain": "portal",
2658
+ "summary": "Delete a location zone by driving the OCS web dashboard, because the OCS REST API can create a zone (`create_location_zone`) but not remove one.",
2659
+ "write": true,
2660
+ "transport": "mcp",
2661
+ "tool": "ui_delete_location_zone",
2662
+ "restMethod": null,
2663
+ "restPath": null,
2664
+ "options": [
2665
+ {
2666
+ "flags": "--zone-id <n>",
2667
+ "description": "ID of the location zone to delete.",
2668
+ "required": true
2669
+ }
2670
+ ]
2671
+ },
2672
+ {
2673
+ "invocation": "carrier portal templates delete",
2674
+ "domain": "portal",
2675
+ "summary": "Remove a package template from the reseller's product catalogue for good, by driving the OCS web dashboard — the OCS REST API cannot delete a template.",
2676
+ "write": true,
2677
+ "transport": "mcp",
2678
+ "tool": "ui_delete_package_template",
2679
+ "restMethod": null,
2680
+ "restPath": null,
2681
+ "options": [
2682
+ {
2683
+ "flags": "--template-id <n>",
2684
+ "description": "ID of the package template to delete.",
2685
+ "required": true
2686
+ }
2687
+ ]
2688
+ },
2689
+ {
2690
+ "invocation": "carrier events ocs",
2691
+ "domain": "events",
2692
+ "summary": "Return the last N OCS events buffered for a given ICCID.",
2693
+ "write": false,
2694
+ "transport": "mcp",
2695
+ "tool": "list_recent_ocs_events",
2696
+ "restMethod": null,
2697
+ "restPath": null,
2698
+ "options": [
2699
+ {
2700
+ "flags": "--iccid <iccid>",
2701
+ "description": "ICCID, 19 or 20 digits, ITU-T E.118 format.",
2702
+ "required": true
2703
+ },
2704
+ {
2705
+ "flags": "--limit <n>",
2706
+ "description": "Max events to return, newest first. Default 20.",
2707
+ "required": false
2708
+ },
2709
+ {
2710
+ "flags": "--event-types <list>",
2711
+ "description": "Filter to specific event types. Comma-separated.",
2712
+ "required": false
2713
+ },
2714
+ {
2715
+ "flags": "--since <since>",
2716
+ "description": "ISO-8601 timestamp; only events after this point.",
2717
+ "required": false
2718
+ }
2719
+ ]
2720
+ },
2721
+ {
2722
+ "invocation": "carrier events countries",
2723
+ "domain": "events",
2724
+ "summary": "Return cross-border movement history for a subscriber, reconstructed from OCS Gy charging events.",
2725
+ "write": false,
2726
+ "transport": "mcp",
2727
+ "tool": "subscriber_country_history",
2728
+ "restMethod": null,
2729
+ "restPath": null,
2730
+ "options": [
2731
+ {
2732
+ "flags": "--subscriber-id <id>",
2733
+ "description": "Subscriber ICCID (19–20 digits, ITU-T E.118).",
2734
+ "required": true
2735
+ },
2736
+ {
2737
+ "flags": "--start-date <date>",
2738
+ "description": "Start of the period, YYYY-MM-DD inclusive (default: 7 days ago).",
2739
+ "required": false
2740
+ },
2741
+ {
2742
+ "flags": "--end-date <date>",
2743
+ "description": "End of the period, YYYY-MM-DD inclusive, max 7 days from start (default: today).",
2744
+ "required": false
2745
+ },
2746
+ {
2747
+ "flags": "--limit <n>",
2748
+ "description": "Maximum number of country_events to return, newest first (default 20, max 50). Default 20.",
2749
+ "required": false
2750
+ }
2751
+ ]
2752
+ },
2753
+ {
2754
+ "invocation": "carrier events depletion",
2755
+ "domain": "events",
2756
+ "summary": "Look up bundle depletion events for a subscriber (or list recent fleet-wide depletions).",
2757
+ "write": false,
2758
+ "transport": "mcp",
2759
+ "tool": "subscriber_depletion_events",
2760
+ "restMethod": null,
2761
+ "restPath": null,
2762
+ "options": [
2763
+ {
2764
+ "flags": "--subscriber-id <id>",
2765
+ "description": "OCS subscriber ID to look up.",
2766
+ "required": false
2767
+ },
2768
+ {
2769
+ "flags": "--since <since>",
2770
+ "description": "ISO-8601 timestamp — only return events at or after this time (for single-subscriber lookup).",
2771
+ "required": false
2772
+ }
2773
+ ]
2774
+ },
2775
+ {
2776
+ "invocation": "carrier panels fleet",
2777
+ "domain": "panels",
2778
+ "summary": "Fleet overview as a UI panel. Prefer `carrier intelligence fleet-health` in a terminal; use --json to read the panel's data.",
2779
+ "write": false,
2780
+ "transport": "mcp",
2781
+ "tool": "fleet_health_app",
2782
+ "restMethod": null,
2783
+ "restPath": null,
2784
+ "options": [
2785
+ {
2786
+ "flags": "--account-id <n>",
2787
+ "description": "Filter to a specific account (omit for all).",
2788
+ "required": false
2789
+ }
2790
+ ]
2791
+ },
2792
+ {
2793
+ "invocation": "carrier panels topup",
2794
+ "domain": "panels",
2795
+ "summary": "Adjust the OCS account balance behind one subscriber. Previews unless --preview false.",
2796
+ "write": false,
2797
+ "transport": "mcp",
2798
+ "tool": "balance_topup_form",
2799
+ "restMethod": null,
2800
+ "restPath": null,
2801
+ "options": [
2802
+ {
2803
+ "flags": "--iccid <iccid>",
2804
+ "description": "The subscriber ICCID for the account lookup.",
2805
+ "required": true
2806
+ },
2807
+ {
2808
+ "flags": "--delta <n>",
2809
+ "description": "Amount to add (positive) or deduct (negative) from the account balance.",
2810
+ "required": true
2811
+ },
2812
+ {
2813
+ "flags": "--preview <bool>",
2814
+ "description": "If true, return preview without writing. Default true.",
2815
+ "required": false
2816
+ }
2817
+ ]
2818
+ },
2819
+ {
2820
+ "invocation": "carrier panels provision",
2821
+ "domain": "panels",
2822
+ "summary": "Step through the provisioning wizard. Pass --step confirm to execute; every earlier step only reads.",
2823
+ "write": false,
2824
+ "transport": "mcp",
2825
+ "tool": "provision_esim_wizard",
2826
+ "restMethod": null,
2827
+ "restPath": null,
2828
+ "options": [
2829
+ {
2830
+ "flags": "--step <step>",
2831
+ "description": "Current wizard step. One of: init, select-package, preview, confirm.",
2832
+ "required": true
2833
+ },
2834
+ {
2835
+ "flags": "--wizard-id <id>",
2836
+ "description": "Wizard session ID (absent on init).",
2837
+ "required": false
2838
+ },
2839
+ {
2840
+ "flags": "--subscriber-iccid <iccid>",
2841
+ "description": "Subscriber ICCID (required for select-package).",
2842
+ "required": false
2843
+ },
2844
+ {
2845
+ "flags": "--package-template-id <n>",
2846
+ "description": "Package template ID (required for preview).",
2847
+ "required": false
2848
+ }
2849
+ ]
2850
+ },
2851
+ {
2852
+ "invocation": "carrier env info",
2853
+ "domain": "env",
2854
+ "summary": "View your Carrier environment configuration — active organization, reseller details, connected services, and deployment environment.",
2855
+ "write": false,
2856
+ "transport": "mcp",
2857
+ "tool": "environment_info",
2858
+ "restMethod": null,
2859
+ "restPath": null,
2860
+ "options": []
2861
+ },
2862
+ {
2863
+ "invocation": "carrier env credentials",
2864
+ "domain": "env",
2865
+ "summary": "Report on the stored eSIMVault credential without changing it: whether a token is present, whether it is encrypted, how old it is, and whether rotation is recommended (over 90 days).",
2866
+ "write": false,
2867
+ "transport": "mcp",
2868
+ "tool": "credential_status",
2869
+ "restMethod": null,
2870
+ "restPath": null,
2871
+ "options": []
2872
+ },
2873
+ {
2874
+ "invocation": "carrier env rotate",
2875
+ "domain": "env",
2876
+ "summary": "Replace the stored eSIMVault API token with one you supply.",
2877
+ "write": false,
2878
+ "transport": "mcp",
2879
+ "tool": "rotate_credentials",
2880
+ "restMethod": null,
2881
+ "restPath": null,
2882
+ "options": [
2883
+ {
2884
+ "flags": "--new-token <token>",
2885
+ "description": "New eSIMVault API token to encrypt and store.",
2886
+ "required": true
2887
+ },
2888
+ {
2889
+ "flags": "--confirm <bool>",
2890
+ "description": "Confirm rotation — this will replace the current token immediately.",
2891
+ "required": true
2892
+ }
2893
+ ]
2894
+ },
2895
+ {
2896
+ "invocation": "carrier env catalog",
2897
+ "domain": "env",
2898
+ "summary": "Browse the Carrier service catalog — discover available services, their requirements, endpoints, and documentation.",
2899
+ "write": false,
2900
+ "transport": "mcp",
2901
+ "tool": "service_catalog",
2902
+ "restMethod": null,
2903
+ "restPath": null,
2904
+ "options": [
2905
+ {
2906
+ "flags": "--category <category>",
2907
+ "description": "Filter services by category. One of: connectivity, analytics, marketplace, coverage, billing, integration, dashboard.",
2908
+ "required": false
2909
+ },
2910
+ {
2911
+ "flags": "--tier <tier>",
2912
+ "description": "Filter services accessible at this tier level. One of: free, pro, enterprise.",
2913
+ "required": false
2914
+ }
2915
+ ]
2916
+ },
2917
+ {
2918
+ "invocation": "carrier env llm-context",
2919
+ "domain": "env",
2920
+ "summary": "Generate a comprehensive LLM context document describing your Carrier environment, available tools, current tier, usage patterns, and best practices.",
2921
+ "write": false,
2922
+ "transport": "mcp",
2923
+ "tool": "llm_context",
2924
+ "restMethod": null,
2925
+ "restPath": null,
2926
+ "options": [
2927
+ {
2928
+ "flags": "--format <format>",
2929
+ "description": "Output format for the context document (default: markdown). One of: markdown, json, yaml.",
2930
+ "required": false
2931
+ },
2932
+ {
2933
+ "flags": "--include-examples <bool>",
2934
+ "description": "Include example tool invocations (default: true).",
2935
+ "required": false
2936
+ }
2937
+ ]
2938
+ },
2939
+ {
2940
+ "invocation": "carrier env describe",
2941
+ "domain": "env",
2942
+ "summary": "Get full documentation for any registered Carrier MCP tool: description, parameters, 2-3 example invocations, required scope, destructive flag, and guidance.",
2943
+ "write": false,
2944
+ "transport": "mcp",
2945
+ "tool": "carrier_ask_describe",
2946
+ "restMethod": null,
2947
+ "restPath": null,
2948
+ "options": [
2949
+ {
2950
+ "flags": "--tool-name <name>",
2951
+ "description": "The exact MCP tool name to describe (e.g. 'assign_package', 'hlr_set_bitrate').",
2952
+ "required": true
2953
+ }
2954
+ ]
2955
+ },
2956
+ {
2957
+ "invocation": "carrier brand logo",
2958
+ "domain": "brand",
2959
+ "summary": "Generate a storefront logo (SVG always; PNG when an image key is configured on the Carrier worker).",
2960
+ "write": false,
2961
+ "transport": "mcp",
2962
+ "tool": "generate_storefront_logo",
2963
+ "restMethod": null,
2964
+ "restPath": null,
2965
+ "options": [
2966
+ {
2967
+ "flags": "--name <name>",
2968
+ "description": "Brand / shop name, e.g. Bananas.",
2969
+ "required": true
2970
+ },
2971
+ {
2972
+ "flags": "--accent <accent>",
2973
+ "description": "Accent hex, e.g. #FF8A00.",
2974
+ "required": false
2975
+ },
2976
+ {
2977
+ "flags": "--tagline <tagline>",
2978
+ "description": "Optional tagline for AI-enhanced marks.",
2979
+ "required": false
2980
+ }
2981
+ ]
2982
+ },
2983
+ {
2984
+ "invocation": "carrier atlas coverage",
2985
+ "domain": "atlas",
2986
+ "summary": "List the mobile networks Carrier Atlas has configured for one country.",
2987
+ "write": false,
2988
+ "transport": "mcp",
2989
+ "tool": "get_atlas_coverage",
2990
+ "restMethod": null,
2991
+ "restPath": null,
2992
+ "options": [
2993
+ {
2994
+ "flags": "--country <country>",
2995
+ "description": "ISO 3166-1 alpha-2 country code, for example JP or NL.",
2996
+ "required": true
2997
+ },
2998
+ {
2999
+ "flags": "--status <status>",
3000
+ "description": "Keep only networks whose latest probe has this status. One of: up, degraded, down, unknown.",
3001
+ "required": false
3002
+ },
3003
+ {
3004
+ "flags": "--technology <technology>",
3005
+ "description": "Keep only networks of this radio generation. One of: 2G, 3G, 4G, 5G.",
3006
+ "required": false
3007
+ }
3008
+ ]
3009
+ },
3010
+ {
3011
+ "invocation": "carrier atlas network",
3012
+ "domain": "atlas",
3013
+ "summary": "Read one mobile network from Carrier Atlas by MCC and MNC, including the latest status sample and the last 24 hours of probes.",
3014
+ "write": false,
3015
+ "transport": "mcp",
3016
+ "tool": "get_atlas_network_status",
3017
+ "restMethod": null,
3018
+ "restPath": null,
3019
+ "options": [
3020
+ {
3021
+ "flags": "--mcc <mcc>",
3022
+ "description": "Mobile Country Code.",
3023
+ "required": true
3024
+ },
3025
+ {
3026
+ "flags": "--mnc <mnc>",
3027
+ "description": "Mobile Network Code.",
3028
+ "required": true
3029
+ }
3030
+ ]
3031
+ }
3032
+ ]