@carrierllc/sdk 0.1.0 → 0.2.1

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.
@@ -0,0 +1,2856 @@
1
+ [
2
+ {
3
+ "invocation": "carrier subscribers list",
4
+ "domain": "subscribers",
5
+ "summary": "List subscribers. OCS needs at least one of account/iccid/msisdn/imsi.",
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": "Auto-pick a free eSIM from this account instead of using --iccid",
572
+ "required": false
573
+ }
574
+ ]
575
+ },
576
+ {
577
+ "invocation": "carrier packages set-status",
578
+ "domain": "packages",
579
+ "summary": "Activate or deactivate one package without deleting it.",
580
+ "write": true,
581
+ "transport": "mcp",
582
+ "tool": "modify_package_status",
583
+ "restMethod": null,
584
+ "restPath": null,
585
+ "options": [
586
+ {
587
+ "flags": "--iccid <iccid>",
588
+ "description": "Subscriber ICCID",
589
+ "required": true
590
+ },
591
+ {
592
+ "flags": "--package-id <id>",
593
+ "description": "Package ID from `carrier packages list`",
594
+ "required": true
595
+ },
596
+ {
597
+ "flags": "--status <status>",
598
+ "description": "New package status, e.g. ACTIVE or INACTIVE",
599
+ "required": true
600
+ }
601
+ ]
602
+ },
603
+ {
604
+ "invocation": "carrier packages set-expiry",
605
+ "domain": "packages",
606
+ "summary": "Move a package's expiry date. Pass an absolute date or a day count.",
607
+ "write": true,
608
+ "transport": "mcp",
609
+ "tool": "modify_package_expiry",
610
+ "restMethod": null,
611
+ "restPath": null,
612
+ "options": [
613
+ {
614
+ "flags": "--iccid <iccid>",
615
+ "description": "Subscriber ICCID",
616
+ "required": true
617
+ },
618
+ {
619
+ "flags": "--package-id <id>",
620
+ "description": "Package ID from `carrier packages list`",
621
+ "required": true
622
+ },
623
+ {
624
+ "flags": "--expires <date>",
625
+ "description": "Absolute expiry, ISO 8601 (e.g. 2026-06-01)",
626
+ "required": false
627
+ },
628
+ {
629
+ "flags": "--validity-days <n>",
630
+ "description": "Days from now until expiry (instead of --expires)",
631
+ "required": false
632
+ }
633
+ ]
634
+ },
635
+ {
636
+ "invocation": "carrier packages set-limits",
637
+ "domain": "packages",
638
+ "summary": "Change data, voice or SMS ceilings on an assigned package.",
639
+ "write": true,
640
+ "transport": "mcp",
641
+ "tool": "modify_package_limits",
642
+ "restMethod": null,
643
+ "restPath": null,
644
+ "options": [
645
+ {
646
+ "flags": "--iccid <iccid>",
647
+ "description": "Subscriber ICCID",
648
+ "required": true
649
+ },
650
+ {
651
+ "flags": "--package-id <id>",
652
+ "description": "Package ID from `carrier packages list`",
653
+ "required": true
654
+ },
655
+ {
656
+ "flags": "--limits <json>",
657
+ "description": "New limits as JSON, e.g. '{\"dataLimit\":5368709120}'",
658
+ "required": true
659
+ }
660
+ ]
661
+ },
662
+ {
663
+ "invocation": "carrier packages assign-recurring",
664
+ "domain": "packages",
665
+ "summary": "Assign an auto-renewing package from a recurring-enabled template.",
666
+ "write": true,
667
+ "transport": "mcp",
668
+ "tool": "assign_recurring_package",
669
+ "restMethod": null,
670
+ "restPath": null,
671
+ "options": [
672
+ {
673
+ "flags": "--iccid <iccid>",
674
+ "description": "Subscriber ICCID",
675
+ "required": true
676
+ },
677
+ {
678
+ "flags": "--template-id <id>",
679
+ "description": "Recurring package template ID from `carrier templates list`",
680
+ "required": true
681
+ },
682
+ {
683
+ "flags": "--activate-at-first-use",
684
+ "description": "Activate on first network usage (instead of --start-time)",
685
+ "required": false
686
+ },
687
+ {
688
+ "flags": "--start-time <iso>",
689
+ "description": "Scheduled activation, ISO 8601 UTC (instead of --activate-at-first-use)",
690
+ "required": false
691
+ }
692
+ ]
693
+ },
694
+ {
695
+ "invocation": "carrier packages recurring set",
696
+ "domain": "packages",
697
+ "summary": "Pause or restart the auto-renewal of a recurring package.",
698
+ "write": true,
699
+ "transport": "mcp",
700
+ "tool": "stop_resume_recurring_package",
701
+ "restMethod": null,
702
+ "restPath": null,
703
+ "options": [
704
+ {
705
+ "flags": "--iccid <iccid>",
706
+ "description": "Subscriber ICCID",
707
+ "required": true
708
+ },
709
+ {
710
+ "flags": "--package-id <id>",
711
+ "description": "Package ID from `carrier packages list`",
712
+ "required": true
713
+ },
714
+ {
715
+ "flags": "--action <action>",
716
+ "description": "'stop' halts future renewals, 'resume' re-enables them",
717
+ "required": true
718
+ }
719
+ ]
720
+ },
721
+ {
722
+ "invocation": "carrier packages active-period set",
723
+ "domain": "packages",
724
+ "summary": "Move the start and/or end of a package's active period.",
725
+ "write": true,
726
+ "transport": "mcp",
727
+ "tool": "modify_subscriber_package_active_period",
728
+ "restMethod": null,
729
+ "restPath": null,
730
+ "options": [
731
+ {
732
+ "flags": "--iccid <iccid>",
733
+ "description": "Subscriber ICCID",
734
+ "required": true
735
+ },
736
+ {
737
+ "flags": "--package-id <id>",
738
+ "description": "Package ID from `carrier packages list`",
739
+ "required": true
740
+ },
741
+ {
742
+ "flags": "--start <date>",
743
+ "description": "New start date, ISO 8601 (e.g. 2026-09-01)",
744
+ "required": false
745
+ },
746
+ {
747
+ "flags": "--end <date>",
748
+ "description": "New end date, ISO 8601 (e.g. 2026-09-30)",
749
+ "required": false
750
+ },
751
+ {
752
+ "flags": "--comment <text>",
753
+ "description": "Audit note stored on the package (OCS requires one; a default is sent)",
754
+ "required": false
755
+ }
756
+ ]
757
+ },
758
+ {
759
+ "invocation": "carrier packages clean",
760
+ "domain": "packages",
761
+ "summary": "Remove ALL packages from a subscriber. Irreversible.",
762
+ "write": true,
763
+ "transport": "mcp",
764
+ "tool": "clean_all_packages",
765
+ "restMethod": null,
766
+ "restPath": null,
767
+ "options": [
768
+ {
769
+ "flags": "--iccid <iccid>",
770
+ "description": "Subscriber ICCID",
771
+ "required": true
772
+ }
773
+ ]
774
+ },
775
+ {
776
+ "invocation": "carrier packages delete",
777
+ "domain": "packages",
778
+ "summary": "Permanently remove one package from a subscriber.",
779
+ "write": true,
780
+ "transport": "mcp",
781
+ "tool": "delete_subscriber_package",
782
+ "restMethod": null,
783
+ "restPath": null,
784
+ "options": [
785
+ {
786
+ "flags": "--iccid <iccid>",
787
+ "description": "Subscriber ICCID",
788
+ "required": true
789
+ },
790
+ {
791
+ "flags": "--package-id <id>",
792
+ "description": "Package ID from `carrier packages list`",
793
+ "required": true
794
+ }
795
+ ]
796
+ },
797
+ {
798
+ "invocation": "carrier templates list",
799
+ "domain": "templates",
800
+ "summary": "Browse package templates available for assignment.",
801
+ "write": false,
802
+ "transport": "mcp",
803
+ "tool": "list_package_templates",
804
+ "restMethod": null,
805
+ "restPath": null,
806
+ "options": []
807
+ },
808
+ {
809
+ "invocation": "carrier templates create",
810
+ "domain": "templates",
811
+ "summary": "Create a package template from a JSON configuration.",
812
+ "write": true,
813
+ "transport": "mcp",
814
+ "tool": "create_package_template",
815
+ "restMethod": null,
816
+ "restPath": null,
817
+ "options": [
818
+ {
819
+ "flags": "--template <json>",
820
+ "description": "Template config as JSON, e.g. '{\"name\":\"Europe 5GB\",\"dataLimit\":5368709120}'",
821
+ "required": true
822
+ }
823
+ ]
824
+ },
825
+ {
826
+ "invocation": "carrier templates set-core",
827
+ "domain": "templates",
828
+ "summary": "Change name, limits, cost, validity or zone on a template.",
829
+ "write": true,
830
+ "transport": "mcp",
831
+ "tool": "modify_template_core",
832
+ "restMethod": null,
833
+ "restPath": null,
834
+ "options": [
835
+ {
836
+ "flags": "--template-id <id>",
837
+ "description": "Template ID from `carrier templates list`",
838
+ "required": true
839
+ },
840
+ {
841
+ "flags": "--changes <json>",
842
+ "description": "Core fields as JSON, e.g. '{\"name\":\"Europe 5GB\"}'",
843
+ "required": true
844
+ }
845
+ ]
846
+ },
847
+ {
848
+ "invocation": "carrier templates set-recurring",
849
+ "domain": "templates",
850
+ "summary": "Change auto-renewal settings on a template.",
851
+ "write": true,
852
+ "transport": "mcp",
853
+ "tool": "modify_template_recurring",
854
+ "restMethod": null,
855
+ "restPath": null,
856
+ "options": [
857
+ {
858
+ "flags": "--template-id <id>",
859
+ "description": "Template ID from `carrier templates list`",
860
+ "required": true
861
+ },
862
+ {
863
+ "flags": "--changes <json>",
864
+ "description": "Recurring fields as JSON, e.g. '{\"recurringPeriodicityType\":2,\"nbOccurrence\":12}'",
865
+ "required": true
866
+ }
867
+ ]
868
+ },
869
+ {
870
+ "invocation": "carrier templates set-throttling",
871
+ "domain": "templates",
872
+ "summary": "Change throttling thresholds. Applies to existing packages too.",
873
+ "write": true,
874
+ "transport": "mcp",
875
+ "tool": "modify_template_throttling",
876
+ "restMethod": null,
877
+ "restPath": null,
878
+ "options": [
879
+ {
880
+ "flags": "--template-id <id>",
881
+ "description": "Template ID from `carrier templates list`",
882
+ "required": true
883
+ },
884
+ {
885
+ "flags": "--changes <json>",
886
+ "description": "Throttling fields as JSON, e.g. '{\"throttlingActive\":true}'",
887
+ "required": true
888
+ }
889
+ ]
890
+ },
891
+ {
892
+ "invocation": "carrier zones list",
893
+ "domain": "zones",
894
+ "summary": "Location zones with countries and operators. Prefer this over `elements`.",
895
+ "write": false,
896
+ "transport": "mcp",
897
+ "tool": "list_detailed_location_zones",
898
+ "restMethod": null,
899
+ "restPath": null,
900
+ "options": [
901
+ {
902
+ "flags": "--reseller-id <id>",
903
+ "description": "Reseller ID (omit for the token owner's reseller)",
904
+ "required": false
905
+ },
906
+ {
907
+ "flags": "--verbose <bool>",
908
+ "description": "Return the full OCS zone shape instead of the compact projection",
909
+ "required": false
910
+ }
911
+ ]
912
+ },
913
+ {
914
+ "invocation": "carrier zones elements",
915
+ "domain": "zones",
916
+ "summary": "Raw zone elements. Upstream OCS returns malformed rows for some zones.",
917
+ "write": false,
918
+ "transport": "mcp",
919
+ "tool": "list_location_zones",
920
+ "restMethod": null,
921
+ "restPath": null,
922
+ "options": [
923
+ {
924
+ "flags": "--zone-id <id>",
925
+ "description": "Filter to one location zone",
926
+ "required": true
927
+ }
928
+ ]
929
+ },
930
+ {
931
+ "invocation": "carrier zones create",
932
+ "domain": "zones",
933
+ "summary": "Create a location zone from a JSON configuration.",
934
+ "write": true,
935
+ "transport": "mcp",
936
+ "tool": "create_location_zone",
937
+ "restMethod": null,
938
+ "restPath": null,
939
+ "options": [
940
+ {
941
+ "flags": "--zone <json>",
942
+ "description": "Zone config as JSON, e.g. '{\"locationZoneName\":\"Europe\",\"tadigList\":[\"AZER1\",\"QWER1\"],\"networkProfileId\":79}'",
943
+ "required": true
944
+ }
945
+ ]
946
+ },
947
+ {
948
+ "invocation": "carrier zones network-profile set",
949
+ "domain": "zones",
950
+ "summary": "Attach or change the network profile on an existing location zone.",
951
+ "write": true,
952
+ "transport": "mcp",
953
+ "tool": "change_network_profile_of_location_zone",
954
+ "restMethod": null,
955
+ "restPath": null,
956
+ "options": [
957
+ {
958
+ "flags": "--zone-id <id>",
959
+ "description": "Location zone ID from `carrier zones list`",
960
+ "required": true
961
+ },
962
+ {
963
+ "flags": "--network-profile-id <id>",
964
+ "description": "Network profile ID from `carrier network-profiles list`",
965
+ "required": true
966
+ }
967
+ ]
968
+ },
969
+ {
970
+ "invocation": "carrier zones destinations",
971
+ "domain": "zones",
972
+ "summary": "Destination list catalog for voice and SMS packages.",
973
+ "write": false,
974
+ "transport": "mcp",
975
+ "tool": "list_destination_lists",
976
+ "restMethod": null,
977
+ "restPath": null,
978
+ "options": [
979
+ {
980
+ "flags": "--reseller-id <id>",
981
+ "description": "Reseller ID (omit for the token owner's reseller)",
982
+ "required": false
983
+ }
984
+ ]
985
+ },
986
+ {
987
+ "invocation": "carrier zones prefixes",
988
+ "domain": "zones",
989
+ "summary": "Dialling prefixes inside one destination list.",
990
+ "write": false,
991
+ "transport": "mcp",
992
+ "tool": "list_destination_prefixes",
993
+ "restMethod": null,
994
+ "restPath": null,
995
+ "options": [
996
+ {
997
+ "flags": "--destination-list-id <id>",
998
+ "description": "Destination list ID from `carrier zones destinations`",
999
+ "required": true
1000
+ }
1001
+ ]
1002
+ },
1003
+ {
1004
+ "invocation": "carrier steering list",
1005
+ "domain": "steering",
1006
+ "summary": "Steering lists configured for this reseller.",
1007
+ "write": false,
1008
+ "transport": "mcp",
1009
+ "tool": "list_steering_lists",
1010
+ "restMethod": null,
1011
+ "restPath": null,
1012
+ "options": [
1013
+ {
1014
+ "flags": "--reseller-id <id>",
1015
+ "description": "Reseller ID (omit for the token owner's reseller)",
1016
+ "required": false
1017
+ }
1018
+ ]
1019
+ },
1020
+ {
1021
+ "invocation": "carrier steering assign",
1022
+ "domain": "steering",
1023
+ "summary": "Assign a steering list to a subscriber. Follow with `push`.",
1024
+ "write": true,
1025
+ "transport": "mcp",
1026
+ "tool": "modify_subscriber_steering_list",
1027
+ "restMethod": null,
1028
+ "restPath": null,
1029
+ "options": [
1030
+ {
1031
+ "flags": "--iccid <iccid>",
1032
+ "description": "Subscriber ICCID",
1033
+ "required": true
1034
+ },
1035
+ {
1036
+ "flags": "--list-id <id>",
1037
+ "description": "Steering list ID from `carrier steering list`",
1038
+ "required": true
1039
+ }
1040
+ ]
1041
+ },
1042
+ {
1043
+ "invocation": "carrier steering push",
1044
+ "domain": "steering",
1045
+ "summary": "Push the assigned operator preference list to the device now.",
1046
+ "write": true,
1047
+ "transport": "mcp",
1048
+ "tool": "push_steering_to_subscriber",
1049
+ "restMethod": null,
1050
+ "restPath": null,
1051
+ "options": [
1052
+ {
1053
+ "flags": "--iccid <iccid>",
1054
+ "description": "Subscriber ICCID",
1055
+ "required": true
1056
+ }
1057
+ ]
1058
+ },
1059
+ {
1060
+ "invocation": "carrier accounts list",
1061
+ "domain": "accounts",
1062
+ "summary": "Accounts under a reseller with name, balance and type.",
1063
+ "write": false,
1064
+ "transport": "mcp",
1065
+ "tool": "list_reseller_accounts",
1066
+ "restMethod": null,
1067
+ "restPath": null,
1068
+ "options": [
1069
+ {
1070
+ "flags": "--reseller-id <id>",
1071
+ "description": "Reseller ID (omit for the token owner's reseller)",
1072
+ "required": false
1073
+ }
1074
+ ]
1075
+ },
1076
+ {
1077
+ "invocation": "carrier accounts balance set",
1078
+ "domain": "accounts",
1079
+ "summary": "Add to or replace an account's monetary balance.",
1080
+ "write": true,
1081
+ "transport": "mcp",
1082
+ "tool": "modify_account_balance",
1083
+ "restMethod": null,
1084
+ "restPath": null,
1085
+ "options": [
1086
+ {
1087
+ "flags": "--account-id <id>",
1088
+ "description": "Account ID from `carrier accounts list`",
1089
+ "required": true
1090
+ },
1091
+ {
1092
+ "flags": "--amount <amount>",
1093
+ "description": "Amount to add (adapt) or set to (set)",
1094
+ "required": true
1095
+ },
1096
+ {
1097
+ "flags": "--mode <mode>",
1098
+ "description": "'adapt' adds or subtracts, 'set' replaces",
1099
+ "required": true
1100
+ }
1101
+ ]
1102
+ },
1103
+ {
1104
+ "invocation": "carrier accounts move-subscribers",
1105
+ "domain": "accounts",
1106
+ "summary": "Move a contiguous IMSI or ICCID range of subscribers to another account.",
1107
+ "write": true,
1108
+ "transport": "mcp",
1109
+ "tool": "move_subscriber_range_to_account",
1110
+ "restMethod": null,
1111
+ "restPath": null,
1112
+ "options": [
1113
+ {
1114
+ "flags": "--src-account-id <id>",
1115
+ "description": "Source account ID from `carrier accounts list`",
1116
+ "required": true
1117
+ },
1118
+ {
1119
+ "flags": "--dest-account <id>",
1120
+ "description": "Destination account ID from `carrier accounts list`",
1121
+ "required": true
1122
+ },
1123
+ {
1124
+ "flags": "--range-type <type>",
1125
+ "description": "Whether --range-start/--range-end are IMSI or ICCID ('IMSI' | 'ICCID')",
1126
+ "required": true
1127
+ },
1128
+ {
1129
+ "flags": "--range-start <value>",
1130
+ "description": "Inclusive start of the identifier range",
1131
+ "required": true
1132
+ },
1133
+ {
1134
+ "flags": "--range-end <value>",
1135
+ "description": "Inclusive end of the identifier range",
1136
+ "required": true
1137
+ }
1138
+ ]
1139
+ },
1140
+ {
1141
+ "invocation": "carrier reseller show",
1142
+ "domain": "reseller",
1143
+ "summary": "Full reseller record: balance, pricing plans, contact and traffic config.",
1144
+ "write": false,
1145
+ "transport": "mcp",
1146
+ "tool": "get_reseller_info",
1147
+ "restMethod": null,
1148
+ "restPath": null,
1149
+ "options": [
1150
+ {
1151
+ "flags": "--reseller-id <id>",
1152
+ "description": "Reseller ID (omit for the token owner's reseller)",
1153
+ "required": false
1154
+ }
1155
+ ]
1156
+ },
1157
+ {
1158
+ "invocation": "carrier tariff show",
1159
+ "domain": "tariff",
1160
+ "summary": "Per-country wholesale rates for data, voice and SMS.",
1161
+ "write": false,
1162
+ "transport": "mcp",
1163
+ "tool": "get_tariff",
1164
+ "restMethod": null,
1165
+ "restPath": null,
1166
+ "options": [
1167
+ {
1168
+ "flags": "--reseller-id <id>",
1169
+ "description": "Reseller ID (omit for the token owner's reseller)",
1170
+ "required": false
1171
+ },
1172
+ {
1173
+ "flags": "--country <name|iso2>",
1174
+ "description": "Filter to one country: ISO2 (\"nl\") or name (\"Netherlands\")",
1175
+ "required": false
1176
+ },
1177
+ {
1178
+ "flags": "--traffic-type <type>",
1179
+ "description": "Filter to data, voice or sms",
1180
+ "required": false
1181
+ },
1182
+ {
1183
+ "flags": "--verbose <bool>",
1184
+ "description": "Return the full OCS rule shape instead of the compact projection",
1185
+ "required": false
1186
+ }
1187
+ ]
1188
+ },
1189
+ {
1190
+ "invocation": "carrier tariff voip",
1191
+ "domain": "tariff",
1192
+ "summary": "VoIP tariff catalog for a reseller.",
1193
+ "write": false,
1194
+ "transport": "mcp",
1195
+ "tool": "list_subscriber_voip_tariff",
1196
+ "restMethod": null,
1197
+ "restPath": null,
1198
+ "options": [
1199
+ {
1200
+ "flags": "--reseller-id <id>",
1201
+ "description": "Reseller ID (omit for the token owner's reseller)",
1202
+ "required": false
1203
+ }
1204
+ ]
1205
+ },
1206
+ {
1207
+ "invocation": "carrier tariff voip-rules",
1208
+ "domain": "tariff",
1209
+ "summary": "Rate rules inside one VoIP plan.",
1210
+ "write": false,
1211
+ "transport": "mcp",
1212
+ "tool": "list_voip_tariff_rule",
1213
+ "restMethod": null,
1214
+ "restPath": null,
1215
+ "options": [
1216
+ {
1217
+ "flags": "--voip-plan-id <id>",
1218
+ "description": "VoIP plan ID from `carrier tariff voip`",
1219
+ "required": true
1220
+ }
1221
+ ]
1222
+ },
1223
+ {
1224
+ "invocation": "carrier sms send",
1225
+ "domain": "sms",
1226
+ "summary": "Send an MT SMS to one subscriber.",
1227
+ "write": true,
1228
+ "transport": "mcp",
1229
+ "tool": "send_sms",
1230
+ "restMethod": null,
1231
+ "restPath": null,
1232
+ "options": [
1233
+ {
1234
+ "flags": "--iccid <iccid>",
1235
+ "description": "Subscriber ICCID",
1236
+ "required": true
1237
+ },
1238
+ {
1239
+ "flags": "--msisdn <msisdn>",
1240
+ "description": "Target MSISDN in E.164 format",
1241
+ "required": true
1242
+ },
1243
+ {
1244
+ "flags": "--message <text>",
1245
+ "description": "SMS text (160 chars GSM-7; 70 with emoji or non-Latin scripts)",
1246
+ "required": true
1247
+ },
1248
+ {
1249
+ "flags": "--sender <sender>",
1250
+ "description": "Sender ID or number shown on the device",
1251
+ "required": false
1252
+ }
1253
+ ]
1254
+ },
1255
+ {
1256
+ "invocation": "carrier sponsors list",
1257
+ "domain": "sponsors",
1258
+ "summary": "Sponsor carriers available to this reseller.",
1259
+ "write": false,
1260
+ "transport": "mcp",
1261
+ "tool": "list_sponsors",
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 network-profiles list",
1274
+ "domain": "network-profiles",
1275
+ "summary": "Network profiles available to this reseller.",
1276
+ "write": false,
1277
+ "transport": "mcp",
1278
+ "tool": "list_network_profiles",
1279
+ "restMethod": null,
1280
+ "restPath": null,
1281
+ "options": []
1282
+ },
1283
+ {
1284
+ "invocation": "carrier webhooks show",
1285
+ "domain": "webhooks",
1286
+ "summary": "Current relay flags (LU, Gy, VoIP, calls+SMS) and notification webhooks.",
1287
+ "write": false,
1288
+ "transport": "mcp",
1289
+ "tool": "carrier_webhook_config",
1290
+ "restMethod": null,
1291
+ "restPath": null,
1292
+ "options": [
1293
+ {
1294
+ "flags": "--reseller-id <id>",
1295
+ "description": "Reseller ID (omit for the token owner's reseller)",
1296
+ "required": false
1297
+ }
1298
+ ]
1299
+ },
1300
+ {
1301
+ "invocation": "carrier intelligence fleet-health",
1302
+ "domain": "intelligence",
1303
+ "summary": "eSIM counts, low-balance accounts and what needs attention.",
1304
+ "write": false,
1305
+ "transport": "mcp",
1306
+ "tool": "fleet_health",
1307
+ "restMethod": null,
1308
+ "restPath": null,
1309
+ "options": [
1310
+ {
1311
+ "flags": "--account-id <id>",
1312
+ "description": "Report on a single account",
1313
+ "required": false
1314
+ }
1315
+ ]
1316
+ },
1317
+ {
1318
+ "invocation": "carrier intelligence diagnose",
1319
+ "domain": "intelligence",
1320
+ "summary": "Why one subscriber is offline, throttled or failing to attach.",
1321
+ "write": false,
1322
+ "transport": "mcp",
1323
+ "tool": "diagnose_subscriber",
1324
+ "restMethod": null,
1325
+ "restPath": null,
1326
+ "options": [
1327
+ {
1328
+ "flags": "--iccid <iccid>",
1329
+ "description": "Subscriber ICCID",
1330
+ "required": true
1331
+ }
1332
+ ]
1333
+ },
1334
+ {
1335
+ "invocation": "carrier intelligence anomalies",
1336
+ "domain": "intelligence",
1337
+ "summary": "Usage spikes and burn rates that exhaust the package early.",
1338
+ "write": false,
1339
+ "transport": "mcp",
1340
+ "tool": "detect_usage_anomalies",
1341
+ "restMethod": null,
1342
+ "restPath": null,
1343
+ "options": [
1344
+ {
1345
+ "flags": "--iccid <iccid>",
1346
+ "description": "Subscriber ICCID",
1347
+ "required": true
1348
+ }
1349
+ ]
1350
+ },
1351
+ {
1352
+ "invocation": "carrier intelligence churn",
1353
+ "domain": "intelligence",
1354
+ "summary": "Churn risk score with contributing factors.",
1355
+ "write": false,
1356
+ "transport": "mcp",
1357
+ "tool": "churn_risk",
1358
+ "restMethod": null,
1359
+ "restPath": null,
1360
+ "options": [
1361
+ {
1362
+ "flags": "--iccid <iccid>",
1363
+ "description": "Subscriber ICCID",
1364
+ "required": true
1365
+ }
1366
+ ]
1367
+ },
1368
+ {
1369
+ "invocation": "carrier intelligence optimize",
1370
+ "domain": "intelligence",
1371
+ "summary": "Better-fitting package for one subscriber, with the saving.",
1372
+ "write": false,
1373
+ "transport": "mcp",
1374
+ "tool": "optimize_package",
1375
+ "restMethod": null,
1376
+ "restPath": null,
1377
+ "options": [
1378
+ {
1379
+ "flags": "--iccid <iccid>",
1380
+ "description": "Subscriber ICCID",
1381
+ "required": true
1382
+ }
1383
+ ]
1384
+ },
1385
+ {
1386
+ "invocation": "carrier intelligence coverage",
1387
+ "domain": "intelligence",
1388
+ "summary": "Networks subscribers actually attach to, against your steering lists.",
1389
+ "write": false,
1390
+ "transport": "mcp",
1391
+ "tool": "audit_network_coverage",
1392
+ "restMethod": null,
1393
+ "restPath": null,
1394
+ "options": [
1395
+ {
1396
+ "flags": "--account-id <id>",
1397
+ "description": "Report on a single account",
1398
+ "required": false
1399
+ },
1400
+ {
1401
+ "flags": "--limit <n>",
1402
+ "description": "Subscribers to sample (default 50)",
1403
+ "required": false
1404
+ }
1405
+ ]
1406
+ },
1407
+ {
1408
+ "invocation": "carrier intelligence high-cost",
1409
+ "domain": "intelligence",
1410
+ "summary": "Subscribers whose consumption erodes the margin.",
1411
+ "write": false,
1412
+ "transport": "mcp",
1413
+ "tool": "high_cost_subscribers",
1414
+ "restMethod": null,
1415
+ "restPath": null,
1416
+ "options": [
1417
+ {
1418
+ "flags": "--account-id <id>",
1419
+ "description": "Report on a single account",
1420
+ "required": false
1421
+ },
1422
+ {
1423
+ "flags": "--limit <n>",
1424
+ "description": "Subscribers to analyse (default 100)",
1425
+ "required": false
1426
+ },
1427
+ {
1428
+ "flags": "--threshold-pct <n>",
1429
+ "description": "Usage percentage that flags a subscriber (default 80)",
1430
+ "required": false
1431
+ }
1432
+ ]
1433
+ },
1434
+ {
1435
+ "invocation": "carrier intelligence marketing",
1436
+ "domain": "intelligence",
1437
+ "summary": "Where subscribers and revenue concentrate, and which markets grow.",
1438
+ "write": false,
1439
+ "transport": "mcp",
1440
+ "tool": "marketing_intelligence",
1441
+ "restMethod": null,
1442
+ "restPath": null,
1443
+ "options": [
1444
+ {
1445
+ "flags": "--account-id <id>",
1446
+ "description": "Report on a single account",
1447
+ "required": false
1448
+ }
1449
+ ]
1450
+ },
1451
+ {
1452
+ "invocation": "carrier intelligence country-entry",
1453
+ "domain": "intelligence",
1454
+ "summary": "Country a subscriber is in now, optionally diffed against the last known one.",
1455
+ "write": false,
1456
+ "transport": "mcp",
1457
+ "tool": "detect_country_entry",
1458
+ "restMethod": null,
1459
+ "restPath": null,
1460
+ "options": [
1461
+ {
1462
+ "flags": "--iccid <iccid>",
1463
+ "description": "Subscriber ICCID",
1464
+ "required": true
1465
+ },
1466
+ {
1467
+ "flags": "--expected-country <iso2>",
1468
+ "description": "Last known ISO 3166-1 alpha-2 country, e.g. NL",
1469
+ "required": false
1470
+ }
1471
+ ]
1472
+ },
1473
+ {
1474
+ "invocation": "carrier api-keys create",
1475
+ "domain": "api-keys",
1476
+ "summary": "Create an org API key. The secret is shown once and never stored by the CLI.",
1477
+ "write": false,
1478
+ "transport": "rest",
1479
+ "tool": null,
1480
+ "restMethod": "POST",
1481
+ "restPath": "/v1/api-keys",
1482
+ "options": [
1483
+ {
1484
+ "flags": "--name <name>",
1485
+ "description": "Label for the key, max 64 characters",
1486
+ "required": true
1487
+ },
1488
+ {
1489
+ "flags": "--description <text>",
1490
+ "description": "Optional note, max 256 characters",
1491
+ "required": false
1492
+ },
1493
+ {
1494
+ "flags": "--seconds-until-expiration <n>",
1495
+ "description": "Expiry in seconds, 60 to 31536000. Omit for a key that does not expire.",
1496
+ "required": false
1497
+ }
1498
+ ]
1499
+ },
1500
+ {
1501
+ "invocation": "carrier onboard status",
1502
+ "domain": "onboard",
1503
+ "summary": "Show how far onboarding has got. Same state the console renders.",
1504
+ "write": false,
1505
+ "transport": "rest",
1506
+ "tool": null,
1507
+ "restMethod": "GET",
1508
+ "restPath": "/v1/onboarding",
1509
+ "options": []
1510
+ },
1511
+ {
1512
+ "invocation": "carrier onboard org",
1513
+ "domain": "onboard",
1514
+ "summary": "Record who the operator is (step 1).",
1515
+ "write": false,
1516
+ "transport": "rest",
1517
+ "tool": null,
1518
+ "restMethod": "POST",
1519
+ "restPath": "/v1/onboarding/org",
1520
+ "options": [
1521
+ {
1522
+ "flags": "--name <name>",
1523
+ "description": "Operator name, max 128 characters",
1524
+ "required": true
1525
+ },
1526
+ {
1527
+ "flags": "--website <url>",
1528
+ "description": "Public site, if there is one",
1529
+ "required": false
1530
+ },
1531
+ {
1532
+ "flags": "--country <iso2>",
1533
+ "description": "ISO 3166-1 alpha-2 country, e.g. NL",
1534
+ "required": false
1535
+ },
1536
+ {
1537
+ "flags": "--operator-type <type>",
1538
+ "description": "How the operator describes itself, e.g. mvno",
1539
+ "required": false
1540
+ }
1541
+ ]
1542
+ },
1543
+ {
1544
+ "invocation": "carrier onboard connect",
1545
+ "domain": "onboard",
1546
+ "summary": "Connect your own eSIMVault token (step 2, BYO). Verified against OCS, then stored encrypted; the token is never echoed back.",
1547
+ "write": false,
1548
+ "transport": "rest",
1549
+ "tool": null,
1550
+ "restMethod": "POST",
1551
+ "restPath": "/v1/onboarding/ocs-connect",
1552
+ "options": [
1553
+ {
1554
+ "flags": "--token <token>",
1555
+ "description": "eSIMVault API token. A flag lands in shell history — prefer a leading space, or run this once from a fresh shell.",
1556
+ "required": true
1557
+ }
1558
+ ]
1559
+ },
1560
+ {
1561
+ "invocation": "carrier onboard managed",
1562
+ "domain": "onboard",
1563
+ "summary": "Let Carrier provision the OCS sub-account instead (step 2, the primary path). Idempotent, and clears any BYO token.",
1564
+ "write": false,
1565
+ "transport": "rest",
1566
+ "tool": null,
1567
+ "restMethod": "POST",
1568
+ "restPath": "/v1/onboarding/managed-account",
1569
+ "options": []
1570
+ },
1571
+ {
1572
+ "invocation": "carrier onboard plan",
1573
+ "domain": "onboard",
1574
+ "summary": "Record the starting plan template (step 3).",
1575
+ "write": false,
1576
+ "transport": "rest",
1577
+ "tool": null,
1578
+ "restMethod": "POST",
1579
+ "restPath": "/v1/onboarding/plan",
1580
+ "options": [
1581
+ {
1582
+ "flags": "--template-id <id>",
1583
+ "description": "Package template to start from",
1584
+ "required": true
1585
+ },
1586
+ {
1587
+ "flags": "--display-name <name>",
1588
+ "description": "What customers will see the plan called",
1589
+ "required": true
1590
+ }
1591
+ ]
1592
+ },
1593
+ {
1594
+ "invocation": "carrier onboard plan-skip",
1595
+ "domain": "onboard",
1596
+ "summary": "Skip the plan step and come back to it later (step 3).",
1597
+ "write": false,
1598
+ "transport": "rest",
1599
+ "tool": null,
1600
+ "restMethod": "POST",
1601
+ "restPath": "/v1/onboarding/plan/skip",
1602
+ "options": []
1603
+ },
1604
+ {
1605
+ "invocation": "carrier onboard test-esim",
1606
+ "domain": "onboard",
1607
+ "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.",
1608
+ "write": false,
1609
+ "transport": "rest",
1610
+ "tool": null,
1611
+ "restMethod": "POST",
1612
+ "restPath": "/v1/onboarding/test-esim",
1613
+ "options": []
1614
+ },
1615
+ {
1616
+ "invocation": "carrier onboard complete",
1617
+ "domain": "onboard",
1618
+ "summary": "Mark onboarding done (step 5).",
1619
+ "write": false,
1620
+ "transport": "rest",
1621
+ "tool": null,
1622
+ "restMethod": "POST",
1623
+ "restPath": "/v1/onboarding/complete",
1624
+ "options": []
1625
+ },
1626
+ {
1627
+ "invocation": "carrier billing events",
1628
+ "domain": "billing",
1629
+ "summary": "View recent billing threshold events: notifications, invoice triggers, hard cap alerts, and overage pauses.",
1630
+ "write": false,
1631
+ "transport": "mcp",
1632
+ "tool": "billing_events",
1633
+ "restMethod": null,
1634
+ "restPath": null,
1635
+ "options": [
1636
+ {
1637
+ "flags": "--limit <n>",
1638
+ "description": "Maximum number of events to return (default: 20, max: 50).",
1639
+ "required": false
1640
+ }
1641
+ ]
1642
+ },
1643
+ {
1644
+ "invocation": "carrier billing configure",
1645
+ "domain": "billing",
1646
+ "summary": "Configure your billing preferences: enable/disable overages, set billing thresholds (bill shock prevention), configure notification percentages, and set hard spending caps.",
1647
+ "write": false,
1648
+ "transport": "mcp",
1649
+ "tool": "configure_billing",
1650
+ "restMethod": null,
1651
+ "restPath": null,
1652
+ "options": [
1653
+ {
1654
+ "flags": "--overages-enabled <bool>",
1655
+ "description": "Enable or disable auto-billed overages when monthly credits are exhausted.",
1656
+ "required": false
1657
+ },
1658
+ {
1659
+ "flags": "--billing-threshold-cents <n>",
1660
+ "description": "Amount in cents at which an invoice is automatically generated (e.g., 10000 = $100).",
1661
+ "required": false
1662
+ },
1663
+ {
1664
+ "flags": "--hard-cap-cents <n>",
1665
+ "description": "Maximum overage spend in cents before overages are paused (0 = no cap).",
1666
+ "required": false
1667
+ },
1668
+ {
1669
+ "flags": "--auto-pause-on-cap <bool>",
1670
+ "description": "Whether to automatically pause overages when hard cap is reached.",
1671
+ "required": false
1672
+ },
1673
+ {
1674
+ "flags": "--notify-at-pct <list>",
1675
+ "description": "Percentage thresholds at which to send notifications (e.g., [50, 80, 95, 100]). Comma-separated.",
1676
+ "required": false
1677
+ },
1678
+ {
1679
+ "flags": "--notification-email <email>",
1680
+ "description": "Email address for billing threshold notifications.",
1681
+ "required": false
1682
+ },
1683
+ {
1684
+ "flags": "--notification-phone <phone>",
1685
+ "description": "E.164 phone number for SMS billing threshold notifications via Twilio (e.g. +14155552671).",
1686
+ "required": false
1687
+ },
1688
+ {
1689
+ "flags": "--webhook-url <url>",
1690
+ "description": "Webhook URL for billing threshold events.",
1691
+ "required": false
1692
+ }
1693
+ ]
1694
+ },
1695
+ {
1696
+ "invocation": "carrier billing credits",
1697
+ "domain": "billing",
1698
+ "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.",
1699
+ "write": false,
1700
+ "transport": "mcp",
1701
+ "tool": "credit_balance",
1702
+ "restMethod": null,
1703
+ "restPath": null,
1704
+ "options": []
1705
+ },
1706
+ {
1707
+ "invocation": "carrier billing plans",
1708
+ "domain": "billing",
1709
+ "summary": "View all available Carrier MCP pricing plans with credit allotments, features, overage rates, and volume discount tiers.",
1710
+ "write": false,
1711
+ "transport": "mcp",
1712
+ "tool": "pricing_plans",
1713
+ "restMethod": null,
1714
+ "restPath": null,
1715
+ "options": []
1716
+ },
1717
+ {
1718
+ "invocation": "carrier billing projection",
1719
+ "domain": "billing",
1720
+ "summary": "Project your credit usage and costs for the remainder of the billing period based on current consumption rate.",
1721
+ "write": false,
1722
+ "transport": "mcp",
1723
+ "tool": "usage_projection",
1724
+ "restMethod": null,
1725
+ "restPath": null,
1726
+ "options": [
1727
+ {
1728
+ "flags": "--days-to-project <n>",
1729
+ "description": "Number of days to project forward (default: remaining days in month).",
1730
+ "required": false
1731
+ }
1732
+ ]
1733
+ },
1734
+ {
1735
+ "invocation": "carrier billing rate-limit",
1736
+ "domain": "billing",
1737
+ "summary": "Inspect Bridge4IP OCS rate-limit governor state — bucket fill levels, per-endpoint limits, and 80% alert thresholds.",
1738
+ "write": false,
1739
+ "transport": "mcp",
1740
+ "tool": "rate_limit_status",
1741
+ "restMethod": null,
1742
+ "restPath": null,
1743
+ "options": [
1744
+ {
1745
+ "flags": "--endpoint <endpoint>",
1746
+ "description": "OCS method name in camelCase (e.g. 'subscriberUsageOverPeriod').",
1747
+ "required": false
1748
+ }
1749
+ ]
1750
+ },
1751
+ {
1752
+ "invocation": "carrier wallet balance",
1753
+ "domain": "wallet",
1754
+ "summary": "Read the caller organisation's Carrier prepaid wallet: current balance and auto-top-up settings.",
1755
+ "write": false,
1756
+ "transport": "mcp",
1757
+ "tool": "wallet_balance",
1758
+ "restMethod": null,
1759
+ "restPath": null,
1760
+ "options": []
1761
+ },
1762
+ {
1763
+ "invocation": "carrier wallet topup",
1764
+ "domain": "wallet",
1765
+ "summary": "Create a Stripe Checkout link so a human can top up the Carrier prepaid wallet by card.",
1766
+ "write": false,
1767
+ "transport": "mcp",
1768
+ "tool": "wallet_topup_checkout",
1769
+ "restMethod": null,
1770
+ "restPath": null,
1771
+ "options": [
1772
+ {
1773
+ "flags": "--pack <pack>",
1774
+ "description": "Pack id (pack_500/pack_1000/pack_2500/pack_5000) or exact EUR-cents amount.",
1775
+ "required": false
1776
+ }
1777
+ ]
1778
+ },
1779
+ {
1780
+ "invocation": "carrier wallet auto-topup",
1781
+ "domain": "wallet",
1782
+ "summary": "Charge the organisation's saved card off-session, right now, and credit the Carrier prepaid wallet with the pack.",
1783
+ "write": false,
1784
+ "transport": "mcp",
1785
+ "tool": "wallet_auto_topup",
1786
+ "restMethod": null,
1787
+ "restPath": null,
1788
+ "options": [
1789
+ {
1790
+ "flags": "--pack-cents <n>",
1791
+ "description": "Override pack amount in EUR cents (must match a catalog pack).",
1792
+ "required": false
1793
+ }
1794
+ ]
1795
+ },
1796
+ {
1797
+ "invocation": "carrier stripe balance",
1798
+ "domain": "stripe",
1799
+ "summary": "Read the money sitting in the operator's connected Stripe account: available and pending, split per currency.",
1800
+ "write": false,
1801
+ "transport": "mcp",
1802
+ "tool": "stripe_connect_balance",
1803
+ "restMethod": null,
1804
+ "restPath": null,
1805
+ "options": []
1806
+ },
1807
+ {
1808
+ "invocation": "carrier stripe payouts",
1809
+ "domain": "stripe",
1810
+ "summary": "List money Stripe has already sent from the operator's connected account to their bank, newest first.",
1811
+ "write": false,
1812
+ "transport": "mcp",
1813
+ "tool": "stripe_connect_payouts",
1814
+ "restMethod": null,
1815
+ "restPath": null,
1816
+ "options": [
1817
+ {
1818
+ "flags": "--limit <n>",
1819
+ "description": "Number of payouts to return. Default 10.",
1820
+ "required": false
1821
+ },
1822
+ {
1823
+ "flags": "--status <status>",
1824
+ "description": "Filter by payout status. One of: pending, paid, failed, canceled, in_transit.",
1825
+ "required": false
1826
+ }
1827
+ ]
1828
+ },
1829
+ {
1830
+ "invocation": "carrier stripe disputes",
1831
+ "domain": "stripe",
1832
+ "summary": "List chargebacks customers have raised with their bank against the operator's connected Stripe account.",
1833
+ "write": false,
1834
+ "transport": "mcp",
1835
+ "tool": "stripe_connect_dispute_list",
1836
+ "restMethod": null,
1837
+ "restPath": null,
1838
+ "options": [
1839
+ {
1840
+ "flags": "--limit <n>",
1841
+ "description": "limit (number). Default 10.",
1842
+ "required": false
1843
+ },
1844
+ {
1845
+ "flags": "--status <status>",
1846
+ "description": "Filter by dispute status (e.g. needs_response, under_review).",
1847
+ "required": false
1848
+ }
1849
+ ]
1850
+ },
1851
+ {
1852
+ "invocation": "carrier stripe refund",
1853
+ "domain": "stripe",
1854
+ "summary": "Refund money to a customer on one charge in the operator's connected Stripe account.",
1855
+ "write": false,
1856
+ "transport": "mcp",
1857
+ "tool": "stripe_connect_refund",
1858
+ "restMethod": null,
1859
+ "restPath": null,
1860
+ "options": [
1861
+ {
1862
+ "flags": "--charge-id <id>",
1863
+ "description": "Stripe charge ID (ch_...).",
1864
+ "required": true
1865
+ },
1866
+ {
1867
+ "flags": "--amount-cents <n>",
1868
+ "description": "Partial refund amount in cents.",
1869
+ "required": false
1870
+ },
1871
+ {
1872
+ "flags": "--reason <reason>",
1873
+ "description": "reason (string). One of: duplicate, fraudulent, requested_by_customer.",
1874
+ "required": false
1875
+ },
1876
+ {
1877
+ "flags": "--confirm-token <token>",
1878
+ "description": "Confirmation token from previous call.",
1879
+ "required": false
1880
+ }
1881
+ ]
1882
+ },
1883
+ {
1884
+ "invocation": "carrier radar reviews",
1885
+ "domain": "radar",
1886
+ "summary": "List the Stripe Radar fraud reviews waiting on a manual approve/decline decision, newest first.",
1887
+ "write": false,
1888
+ "transport": "mcp",
1889
+ "tool": "radar_review_list",
1890
+ "restMethod": null,
1891
+ "restPath": null,
1892
+ "options": [
1893
+ {
1894
+ "flags": "--open-only <bool>",
1895
+ "description": "If true, only returns open (undecided) reviews. Default true.",
1896
+ "required": false
1897
+ },
1898
+ {
1899
+ "flags": "--limit <n>",
1900
+ "description": "limit (number). Default 10.",
1901
+ "required": false
1902
+ }
1903
+ ]
1904
+ },
1905
+ {
1906
+ "invocation": "carrier radar approve",
1907
+ "domain": "radar",
1908
+ "summary": "Clear a Stripe Radar fraud review so the held charge is captured and the money is taken.",
1909
+ "write": false,
1910
+ "transport": "mcp",
1911
+ "tool": "radar_review_approve",
1912
+ "restMethod": null,
1913
+ "restPath": null,
1914
+ "options": [
1915
+ {
1916
+ "flags": "--review-id <id>",
1917
+ "description": "Stripe Radar review ID (prv_...).",
1918
+ "required": true
1919
+ },
1920
+ {
1921
+ "flags": "--confirm-token <token>",
1922
+ "description": "confirm token (string).",
1923
+ "required": false
1924
+ }
1925
+ ]
1926
+ },
1927
+ {
1928
+ "invocation": "carrier radar decline",
1929
+ "domain": "radar",
1930
+ "summary": "Close a Stripe Radar fraud review as fraudulent, so the held charge is blocked and the customer is never billed.",
1931
+ "write": false,
1932
+ "transport": "mcp",
1933
+ "tool": "radar_review_decline",
1934
+ "restMethod": null,
1935
+ "restPath": null,
1936
+ "options": [
1937
+ {
1938
+ "flags": "--review-id <id>",
1939
+ "description": "review id (string).",
1940
+ "required": true
1941
+ },
1942
+ {
1943
+ "flags": "--confirm-token <token>",
1944
+ "description": "confirm token (string).",
1945
+ "required": false
1946
+ }
1947
+ ]
1948
+ },
1949
+ {
1950
+ "invocation": "carrier radar rule-toggle",
1951
+ "domain": "radar",
1952
+ "summary": "Report a Stripe Radar rule's state. Stripe exposes no API to change it, so this changes nothing.",
1953
+ "write": false,
1954
+ "transport": "mcp",
1955
+ "tool": "radar_rule_toggle",
1956
+ "restMethod": null,
1957
+ "restPath": null,
1958
+ "options": [
1959
+ {
1960
+ "flags": "--rule-id <id>",
1961
+ "description": "Stripe Radar rule ID.",
1962
+ "required": true
1963
+ },
1964
+ {
1965
+ "flags": "--enabled <bool>",
1966
+ "description": "true = enable, false = disable.",
1967
+ "required": true
1968
+ }
1969
+ ]
1970
+ },
1971
+ {
1972
+ "invocation": "carrier radar value-list add",
1973
+ "domain": "radar",
1974
+ "summary": "Add one value to an existing Stripe Radar value list, changing how every future charge is scored.",
1975
+ "write": false,
1976
+ "transport": "mcp",
1977
+ "tool": "radar_value_list_add",
1978
+ "restMethod": null,
1979
+ "restPath": null,
1980
+ "options": [
1981
+ {
1982
+ "flags": "--value-list-id <id>",
1983
+ "description": "Stripe Radar value list ID (rsl_...).",
1984
+ "required": true
1985
+ },
1986
+ {
1987
+ "flags": "--value <value>",
1988
+ "description": "The value to add (email, IP address, country code, etc.).",
1989
+ "required": true
1990
+ },
1991
+ {
1992
+ "flags": "--confirm-token <token>",
1993
+ "description": "confirm token (string).",
1994
+ "required": false
1995
+ }
1996
+ ]
1997
+ },
1998
+ {
1999
+ "invocation": "carrier greenzone list",
2000
+ "domain": "greenzone",
2001
+ "summary": "List current Greenzone whitelist entries from the KV cache.",
2002
+ "write": false,
2003
+ "transport": "mcp",
2004
+ "tool": "greenzone_whitelist_list",
2005
+ "restMethod": null,
2006
+ "restPath": null,
2007
+ "options": [
2008
+ {
2009
+ "flags": "--from-portal <bool>",
2010
+ "description": "When true, return Kapture steps to read live portal state instead of KV cache.",
2011
+ "required": false
2012
+ }
2013
+ ]
2014
+ },
2015
+ {
2016
+ "invocation": "carrier greenzone add",
2017
+ "domain": "greenzone",
2018
+ "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.",
2019
+ "write": true,
2020
+ "transport": "mcp",
2021
+ "tool": "greenzone_whitelist_add",
2022
+ "restMethod": null,
2023
+ "restPath": null,
2024
+ "options": [
2025
+ {
2026
+ "flags": "--host <host>",
2027
+ "description": "Hostname to whitelist (e.g. 'example.com').",
2028
+ "required": false
2029
+ },
2030
+ {
2031
+ "flags": "--ip <ip>",
2032
+ "description": "IP address or CIDR to whitelist (e.g. '203.0.113.0/24').",
2033
+ "required": false
2034
+ }
2035
+ ]
2036
+ },
2037
+ {
2038
+ "invocation": "carrier greenzone remove",
2039
+ "domain": "greenzone",
2040
+ "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.",
2041
+ "write": true,
2042
+ "transport": "mcp",
2043
+ "tool": "greenzone_whitelist_remove",
2044
+ "restMethod": null,
2045
+ "restPath": null,
2046
+ "options": [
2047
+ {
2048
+ "flags": "--host <host>",
2049
+ "description": "Hostname to remove from whitelist.",
2050
+ "required": false
2051
+ },
2052
+ {
2053
+ "flags": "--ip <ip>",
2054
+ "description": "IP address or CIDR to remove from whitelist.",
2055
+ "required": false
2056
+ }
2057
+ ]
2058
+ },
2059
+ {
2060
+ "invocation": "carrier agent ask",
2061
+ "domain": "agent",
2062
+ "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.",
2063
+ "write": true,
2064
+ "transport": "mcp",
2065
+ "tool": "ui_agent_ask",
2066
+ "restMethod": null,
2067
+ "restPath": null,
2068
+ "options": [
2069
+ {
2070
+ "flags": "--prompt <prompt>",
2071
+ "description": "Natural-language task description for the browsing agent.",
2072
+ "required": true
2073
+ },
2074
+ {
2075
+ "flags": "--max-steps <n>",
2076
+ "description": "Advisory step budget (1–30, default 15).",
2077
+ "required": false
2078
+ }
2079
+ ]
2080
+ },
2081
+ {
2082
+ "invocation": "carrier agent status",
2083
+ "domain": "agent",
2084
+ "summary": "Poll the status of a browser agent task dispatched by ui_agent_ask or any ui_* tool.",
2085
+ "write": false,
2086
+ "transport": "mcp",
2087
+ "tool": "ui_agent_status",
2088
+ "restMethod": null,
2089
+ "restPath": null,
2090
+ "options": [
2091
+ {
2092
+ "flags": "--task-id <id>",
2093
+ "description": "Task ID returned by ui_agent_ask or any ui_* tool dispatch.",
2094
+ "required": true
2095
+ }
2096
+ ]
2097
+ },
2098
+ {
2099
+ "invocation": "carrier agent pending",
2100
+ "domain": "agent",
2101
+ "summary": "Returns all browser automation tasks that are currently paused waiting for human input.",
2102
+ "write": false,
2103
+ "transport": "mcp",
2104
+ "tool": "ui_agent_list_pending",
2105
+ "restMethod": null,
2106
+ "restPath": null,
2107
+ "options": []
2108
+ },
2109
+ {
2110
+ "invocation": "carrier agent reply",
2111
+ "domain": "agent",
2112
+ "summary": "Resumes a browser automation task that paused waiting for input.",
2113
+ "write": false,
2114
+ "transport": "mcp",
2115
+ "tool": "ui_agent_reply",
2116
+ "restMethod": null,
2117
+ "restPath": null,
2118
+ "options": [
2119
+ {
2120
+ "flags": "--task-id <id>",
2121
+ "description": "Task ID to resume (from ui_agent_list_pending).",
2122
+ "required": true
2123
+ },
2124
+ {
2125
+ "flags": "--reply <reply>",
2126
+ "description": "Your answer to the agent's question (e.g. a 2FA code or confirmation).",
2127
+ "required": true
2128
+ }
2129
+ ]
2130
+ },
2131
+ {
2132
+ "invocation": "carrier agent usage",
2133
+ "domain": "agent",
2134
+ "summary": "Returns an estimated Anthropic API cost for Steel agent tasks dispatched this calendar month.",
2135
+ "write": false,
2136
+ "transport": "mcp",
2137
+ "tool": "ui_agent_usage",
2138
+ "restMethod": null,
2139
+ "restPath": null,
2140
+ "options": []
2141
+ },
2142
+ {
2143
+ "invocation": "carrier agent schedule list",
2144
+ "domain": "agent",
2145
+ "summary": "Lists all Steel recurring schedules stored in KV.",
2146
+ "write": false,
2147
+ "transport": "mcp",
2148
+ "tool": "ui_agent_schedule_list",
2149
+ "restMethod": null,
2150
+ "restPath": null,
2151
+ "options": []
2152
+ },
2153
+ {
2154
+ "invocation": "carrier agent schedule create",
2155
+ "domain": "agent",
2156
+ "summary": "Creates a recurring Steel agent run on a cron schedule.",
2157
+ "write": false,
2158
+ "transport": "mcp",
2159
+ "tool": "ui_agent_schedule_create",
2160
+ "restMethod": null,
2161
+ "restPath": null,
2162
+ "options": [
2163
+ {
2164
+ "flags": "--name <name>",
2165
+ "description": "Human-readable name for this schedule.",
2166
+ "required": true
2167
+ },
2168
+ {
2169
+ "flags": "--cron <cron>",
2170
+ "description": "Standard 5-field cron expression (minute hour day month weekday).",
2171
+ "required": true
2172
+ },
2173
+ {
2174
+ "flags": "--prompt-template <template>",
2175
+ "description": "Agent prompt/task template the Steel agent will execute on each run.",
2176
+ "required": true
2177
+ }
2178
+ ]
2179
+ },
2180
+ {
2181
+ "invocation": "carrier agent schedule pause",
2182
+ "domain": "agent",
2183
+ "summary": "Pauses an active Steel recurring schedule.",
2184
+ "write": false,
2185
+ "transport": "mcp",
2186
+ "tool": "ui_agent_schedule_pause",
2187
+ "restMethod": null,
2188
+ "restPath": null,
2189
+ "options": [
2190
+ {
2191
+ "flags": "--schedule-id <id>",
2192
+ "description": "ID of the schedule to pause.",
2193
+ "required": true
2194
+ }
2195
+ ]
2196
+ },
2197
+ {
2198
+ "invocation": "carrier agent schedule resume",
2199
+ "domain": "agent",
2200
+ "summary": "Resumes a paused Steel recurring schedule.",
2201
+ "write": false,
2202
+ "transport": "mcp",
2203
+ "tool": "ui_agent_schedule_resume",
2204
+ "restMethod": null,
2205
+ "restPath": null,
2206
+ "options": [
2207
+ {
2208
+ "flags": "--schedule-id <id>",
2209
+ "description": "ID of the schedule to resume.",
2210
+ "required": true
2211
+ }
2212
+ ]
2213
+ },
2214
+ {
2215
+ "invocation": "carrier agent schedule delete",
2216
+ "domain": "agent",
2217
+ "summary": "Permanently deletes a Steel recurring schedule.",
2218
+ "write": false,
2219
+ "transport": "mcp",
2220
+ "tool": "ui_agent_schedule_delete",
2221
+ "restMethod": null,
2222
+ "restPath": null,
2223
+ "options": [
2224
+ {
2225
+ "flags": "--schedule-id <id>",
2226
+ "description": "ID of the schedule to delete.",
2227
+ "required": true
2228
+ }
2229
+ ]
2230
+ },
2231
+ {
2232
+ "invocation": "carrier portal account create",
2233
+ "domain": "portal",
2234
+ "summary": "Creates a new sub-account under the reseller via the OCS web dashboard.",
2235
+ "write": true,
2236
+ "transport": "mcp",
2237
+ "tool": "ui_create_account",
2238
+ "restMethod": null,
2239
+ "restPath": null,
2240
+ "options": [
2241
+ {
2242
+ "flags": "--name <name>",
2243
+ "description": "Name for the new account.",
2244
+ "required": true
2245
+ },
2246
+ {
2247
+ "flags": "--description <description>",
2248
+ "description": "Optional description.",
2249
+ "required": false
2250
+ },
2251
+ {
2252
+ "flags": "--initial-balance <n>",
2253
+ "description": "Initial balance in account currency (default 0).",
2254
+ "required": false
2255
+ }
2256
+ ]
2257
+ },
2258
+ {
2259
+ "invocation": "carrier portal steering build",
2260
+ "domain": "portal",
2261
+ "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.",
2262
+ "write": true,
2263
+ "transport": "mcp",
2264
+ "tool": "ui_build_steering_list",
2265
+ "restMethod": null,
2266
+ "restPath": null,
2267
+ "options": [
2268
+ {
2269
+ "flags": "--steering-list-id <n>",
2270
+ "description": "ID of the steering list to modify.",
2271
+ "required": true
2272
+ },
2273
+ {
2274
+ "flags": "--add-operators <list>",
2275
+ "description": "MCC-MNC codes to add (e.g. ['20801', '26201']). Comma-separated.",
2276
+ "required": false
2277
+ },
2278
+ {
2279
+ "flags": "--remove-operators <list>",
2280
+ "description": "MCC-MNC codes to remove. Comma-separated.",
2281
+ "required": false
2282
+ },
2283
+ {
2284
+ "flags": "--operator-type <type>",
2285
+ "description": "Whether operators are priority or excluded. One of: priority, excluded. Default \"priority\".",
2286
+ "required": false
2287
+ }
2288
+ ]
2289
+ },
2290
+ {
2291
+ "invocation": "carrier portal steering create",
2292
+ "domain": "portal",
2293
+ "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.",
2294
+ "write": true,
2295
+ "transport": "mcp",
2296
+ "tool": "ui_create_steering_list",
2297
+ "restMethod": null,
2298
+ "restPath": null,
2299
+ "options": [
2300
+ {
2301
+ "flags": "--name <name>",
2302
+ "description": "Name for the new steering list.",
2303
+ "required": true
2304
+ },
2305
+ {
2306
+ "flags": "--description <description>",
2307
+ "description": "Optional description for the steering list.",
2308
+ "required": false
2309
+ }
2310
+ ]
2311
+ },
2312
+ {
2313
+ "invocation": "carrier portal steering set-account",
2314
+ "domain": "portal",
2315
+ "summary": "Assigns or removes a steering list at the account level via the OCS web dashboard.",
2316
+ "write": true,
2317
+ "transport": "mcp",
2318
+ "tool": "ui_set_account_steering_list",
2319
+ "restMethod": null,
2320
+ "restPath": null,
2321
+ "options": [
2322
+ {
2323
+ "flags": "--account-id <n>",
2324
+ "description": "Account ID to assign the steering list to.",
2325
+ "required": true
2326
+ },
2327
+ {
2328
+ "flags": "--steering-list-id <n>",
2329
+ "description": "Steering list ID to assign (0 to remove/unset).",
2330
+ "required": true
2331
+ }
2332
+ ]
2333
+ },
2334
+ {
2335
+ "invocation": "carrier portal relay request",
2336
+ "domain": "portal",
2337
+ "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.",
2338
+ "write": false,
2339
+ "transport": "mcp",
2340
+ "tool": "ui_request_reseller_relay_change",
2341
+ "restMethod": null,
2342
+ "restPath": null,
2343
+ "options": [
2344
+ {
2345
+ "flags": "--reseller-id <n>",
2346
+ "description": "Reseller id; defaults to the authenticated reseller.",
2347
+ "required": false
2348
+ },
2349
+ {
2350
+ "flags": "--relay-gy <bool>",
2351
+ "description": "Desired Relay Gy state.",
2352
+ "required": false
2353
+ },
2354
+ {
2355
+ "flags": "--relay-calls-sms <bool>",
2356
+ "description": "Desired calls/SMS relay state.",
2357
+ "required": false
2358
+ },
2359
+ {
2360
+ "flags": "--relay-voip <bool>",
2361
+ "description": "Desired VoIP relay state.",
2362
+ "required": false
2363
+ },
2364
+ {
2365
+ "flags": "--reason <reason>",
2366
+ "description": "Operational reason for the requested change.",
2367
+ "required": false
2368
+ }
2369
+ ]
2370
+ },
2371
+ {
2372
+ "invocation": "carrier portal destinations create",
2373
+ "domain": "portal",
2374
+ "summary": "Creates a new destination list (named set of phone number prefixes for MOC call permissions) via the OCS web dashboard.",
2375
+ "write": true,
2376
+ "transport": "mcp",
2377
+ "tool": "ui_create_destination_list",
2378
+ "restMethod": null,
2379
+ "restPath": null,
2380
+ "options": [
2381
+ {
2382
+ "flags": "--name <name>",
2383
+ "description": "Name for the new destination list.",
2384
+ "required": true
2385
+ },
2386
+ {
2387
+ "flags": "--prefixes <list>",
2388
+ "description": "Phone number prefixes to include (e.g. ['+31', '+49']). Comma-separated.",
2389
+ "required": false
2390
+ },
2391
+ {
2392
+ "flags": "--description <description>",
2393
+ "description": "Optional description.",
2394
+ "required": false
2395
+ }
2396
+ ]
2397
+ },
2398
+ {
2399
+ "invocation": "carrier portal destinations edit",
2400
+ "domain": "portal",
2401
+ "summary": "Edits an existing destination list via the OCS web dashboard.",
2402
+ "write": true,
2403
+ "transport": "mcp",
2404
+ "tool": "ui_edit_destination_list",
2405
+ "restMethod": null,
2406
+ "restPath": null,
2407
+ "options": [
2408
+ {
2409
+ "flags": "--destination-list-id <n>",
2410
+ "description": "ID of the destination list to edit.",
2411
+ "required": true
2412
+ },
2413
+ {
2414
+ "flags": "--add-prefixes <list>",
2415
+ "description": "Prefixes to add. Comma-separated.",
2416
+ "required": false
2417
+ },
2418
+ {
2419
+ "flags": "--remove-prefixes <list>",
2420
+ "description": "Prefixes to remove. Comma-separated.",
2421
+ "required": false
2422
+ },
2423
+ {
2424
+ "flags": "--new-name <name>",
2425
+ "description": "Rename the destination list.",
2426
+ "required": false
2427
+ }
2428
+ ]
2429
+ },
2430
+ {
2431
+ "invocation": "carrier portal destinations delete",
2432
+ "domain": "portal",
2433
+ "summary": "Delete a destination list — a named set of phone-number prefixes — by driving the OCS web dashboard.",
2434
+ "write": true,
2435
+ "transport": "mcp",
2436
+ "tool": "ui_delete_destination_list",
2437
+ "restMethod": null,
2438
+ "restPath": null,
2439
+ "options": [
2440
+ {
2441
+ "flags": "--destination-list-id <n>",
2442
+ "description": "ID of the destination list to delete.",
2443
+ "required": true
2444
+ }
2445
+ ]
2446
+ },
2447
+ {
2448
+ "invocation": "carrier portal zones edit",
2449
+ "domain": "portal",
2450
+ "summary": "Edits an existing location zone via the OCS web dashboard. `create_location_zone` is available via API; edit is UI-only.",
2451
+ "write": true,
2452
+ "transport": "mcp",
2453
+ "tool": "ui_edit_location_zone",
2454
+ "restMethod": null,
2455
+ "restPath": null,
2456
+ "options": [
2457
+ {
2458
+ "flags": "--zone-id <n>",
2459
+ "description": "ID of the location zone to edit.",
2460
+ "required": true
2461
+ },
2462
+ {
2463
+ "flags": "--new-name <name>",
2464
+ "description": "Rename the location zone.",
2465
+ "required": false
2466
+ },
2467
+ {
2468
+ "flags": "--add-countries <list>",
2469
+ "description": "ISO country codes to add (e.g. ['NL', 'DE']). Comma-separated.",
2470
+ "required": false
2471
+ },
2472
+ {
2473
+ "flags": "--remove-countries <list>",
2474
+ "description": "ISO country codes to remove. Comma-separated.",
2475
+ "required": false
2476
+ }
2477
+ ]
2478
+ },
2479
+ {
2480
+ "invocation": "carrier portal zones delete",
2481
+ "domain": "portal",
2482
+ "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.",
2483
+ "write": true,
2484
+ "transport": "mcp",
2485
+ "tool": "ui_delete_location_zone",
2486
+ "restMethod": null,
2487
+ "restPath": null,
2488
+ "options": [
2489
+ {
2490
+ "flags": "--zone-id <n>",
2491
+ "description": "ID of the location zone to delete.",
2492
+ "required": true
2493
+ }
2494
+ ]
2495
+ },
2496
+ {
2497
+ "invocation": "carrier portal templates delete",
2498
+ "domain": "portal",
2499
+ "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.",
2500
+ "write": true,
2501
+ "transport": "mcp",
2502
+ "tool": "ui_delete_package_template",
2503
+ "restMethod": null,
2504
+ "restPath": null,
2505
+ "options": [
2506
+ {
2507
+ "flags": "--template-id <n>",
2508
+ "description": "ID of the package template to delete.",
2509
+ "required": true
2510
+ }
2511
+ ]
2512
+ },
2513
+ {
2514
+ "invocation": "carrier events ocs",
2515
+ "domain": "events",
2516
+ "summary": "Return the last N OCS events buffered for a given ICCID.",
2517
+ "write": false,
2518
+ "transport": "mcp",
2519
+ "tool": "list_recent_ocs_events",
2520
+ "restMethod": null,
2521
+ "restPath": null,
2522
+ "options": [
2523
+ {
2524
+ "flags": "--iccid <iccid>",
2525
+ "description": "ICCID, 19 or 20 digits, ITU-T E.118 format.",
2526
+ "required": true
2527
+ },
2528
+ {
2529
+ "flags": "--limit <n>",
2530
+ "description": "Max events to return, newest first. Default 20.",
2531
+ "required": false
2532
+ },
2533
+ {
2534
+ "flags": "--event-types <list>",
2535
+ "description": "Filter to specific event types. Comma-separated.",
2536
+ "required": false
2537
+ },
2538
+ {
2539
+ "flags": "--since <since>",
2540
+ "description": "ISO-8601 timestamp; only events after this point.",
2541
+ "required": false
2542
+ }
2543
+ ]
2544
+ },
2545
+ {
2546
+ "invocation": "carrier events countries",
2547
+ "domain": "events",
2548
+ "summary": "Return cross-border movement history for a subscriber, reconstructed from OCS Gy charging events.",
2549
+ "write": false,
2550
+ "transport": "mcp",
2551
+ "tool": "subscriber_country_history",
2552
+ "restMethod": null,
2553
+ "restPath": null,
2554
+ "options": [
2555
+ {
2556
+ "flags": "--subscriber-id <id>",
2557
+ "description": "Subscriber ICCID (19–20 digits, ITU-T E.118).",
2558
+ "required": true
2559
+ },
2560
+ {
2561
+ "flags": "--start-date <date>",
2562
+ "description": "Start of the period, YYYY-MM-DD inclusive (default: 7 days ago).",
2563
+ "required": false
2564
+ },
2565
+ {
2566
+ "flags": "--end-date <date>",
2567
+ "description": "End of the period, YYYY-MM-DD inclusive, max 7 days from start (default: today).",
2568
+ "required": false
2569
+ },
2570
+ {
2571
+ "flags": "--limit <n>",
2572
+ "description": "Maximum number of country_events to return, newest first (default 20, max 50). Default 20.",
2573
+ "required": false
2574
+ }
2575
+ ]
2576
+ },
2577
+ {
2578
+ "invocation": "carrier events depletion",
2579
+ "domain": "events",
2580
+ "summary": "Look up bundle depletion events for a subscriber (or list recent fleet-wide depletions).",
2581
+ "write": false,
2582
+ "transport": "mcp",
2583
+ "tool": "subscriber_depletion_events",
2584
+ "restMethod": null,
2585
+ "restPath": null,
2586
+ "options": [
2587
+ {
2588
+ "flags": "--subscriber-id <id>",
2589
+ "description": "OCS subscriber ID to look up.",
2590
+ "required": false
2591
+ },
2592
+ {
2593
+ "flags": "--since <since>",
2594
+ "description": "ISO-8601 timestamp — only return events at or after this time (for single-subscriber lookup).",
2595
+ "required": false
2596
+ }
2597
+ ]
2598
+ },
2599
+ {
2600
+ "invocation": "carrier panels fleet",
2601
+ "domain": "panels",
2602
+ "summary": "Fleet overview as a UI panel. Prefer `carrier intelligence fleet-health` in a terminal; use --json to read the panel's data.",
2603
+ "write": false,
2604
+ "transport": "mcp",
2605
+ "tool": "fleet_health_app",
2606
+ "restMethod": null,
2607
+ "restPath": null,
2608
+ "options": [
2609
+ {
2610
+ "flags": "--account-id <n>",
2611
+ "description": "Filter to a specific account (omit for all).",
2612
+ "required": false
2613
+ }
2614
+ ]
2615
+ },
2616
+ {
2617
+ "invocation": "carrier panels topup",
2618
+ "domain": "panels",
2619
+ "summary": "Adjust the OCS account balance behind one subscriber. Previews unless --preview false.",
2620
+ "write": false,
2621
+ "transport": "mcp",
2622
+ "tool": "balance_topup_form",
2623
+ "restMethod": null,
2624
+ "restPath": null,
2625
+ "options": [
2626
+ {
2627
+ "flags": "--iccid <iccid>",
2628
+ "description": "The subscriber ICCID for the account lookup.",
2629
+ "required": true
2630
+ },
2631
+ {
2632
+ "flags": "--delta <n>",
2633
+ "description": "Amount to add (positive) or deduct (negative) from the account balance.",
2634
+ "required": true
2635
+ },
2636
+ {
2637
+ "flags": "--preview <bool>",
2638
+ "description": "If true, return preview without writing. Default true.",
2639
+ "required": false
2640
+ }
2641
+ ]
2642
+ },
2643
+ {
2644
+ "invocation": "carrier panels provision",
2645
+ "domain": "panels",
2646
+ "summary": "Step through the provisioning wizard. Pass --step confirm to execute; every earlier step only reads.",
2647
+ "write": false,
2648
+ "transport": "mcp",
2649
+ "tool": "provision_esim_wizard",
2650
+ "restMethod": null,
2651
+ "restPath": null,
2652
+ "options": [
2653
+ {
2654
+ "flags": "--step <step>",
2655
+ "description": "Current wizard step. One of: init, select-package, preview, confirm.",
2656
+ "required": true
2657
+ },
2658
+ {
2659
+ "flags": "--wizard-id <id>",
2660
+ "description": "Wizard session ID (absent on init).",
2661
+ "required": false
2662
+ },
2663
+ {
2664
+ "flags": "--subscriber-iccid <iccid>",
2665
+ "description": "Subscriber ICCID (required for select-package).",
2666
+ "required": false
2667
+ },
2668
+ {
2669
+ "flags": "--package-template-id <n>",
2670
+ "description": "Package template ID (required for preview).",
2671
+ "required": false
2672
+ }
2673
+ ]
2674
+ },
2675
+ {
2676
+ "invocation": "carrier env info",
2677
+ "domain": "env",
2678
+ "summary": "View your Carrier environment configuration — active organization, reseller details, connected services, and deployment environment.",
2679
+ "write": false,
2680
+ "transport": "mcp",
2681
+ "tool": "environment_info",
2682
+ "restMethod": null,
2683
+ "restPath": null,
2684
+ "options": []
2685
+ },
2686
+ {
2687
+ "invocation": "carrier env credentials",
2688
+ "domain": "env",
2689
+ "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).",
2690
+ "write": false,
2691
+ "transport": "mcp",
2692
+ "tool": "credential_status",
2693
+ "restMethod": null,
2694
+ "restPath": null,
2695
+ "options": []
2696
+ },
2697
+ {
2698
+ "invocation": "carrier env rotate",
2699
+ "domain": "env",
2700
+ "summary": "Replace the stored eSIMVault API token with one you supply.",
2701
+ "write": false,
2702
+ "transport": "mcp",
2703
+ "tool": "rotate_credentials",
2704
+ "restMethod": null,
2705
+ "restPath": null,
2706
+ "options": [
2707
+ {
2708
+ "flags": "--new-token <token>",
2709
+ "description": "New eSIMVault API token to encrypt and store.",
2710
+ "required": true
2711
+ },
2712
+ {
2713
+ "flags": "--confirm <bool>",
2714
+ "description": "Confirm rotation — this will replace the current token immediately.",
2715
+ "required": true
2716
+ }
2717
+ ]
2718
+ },
2719
+ {
2720
+ "invocation": "carrier env catalog",
2721
+ "domain": "env",
2722
+ "summary": "Browse the Carrier service catalog — discover available services, their requirements, endpoints, and documentation.",
2723
+ "write": false,
2724
+ "transport": "mcp",
2725
+ "tool": "service_catalog",
2726
+ "restMethod": null,
2727
+ "restPath": null,
2728
+ "options": [
2729
+ {
2730
+ "flags": "--category <category>",
2731
+ "description": "Filter services by category. One of: connectivity, analytics, marketplace, coverage, billing, integration, dashboard.",
2732
+ "required": false
2733
+ },
2734
+ {
2735
+ "flags": "--tier <tier>",
2736
+ "description": "Filter services accessible at this tier level. One of: free, pro, enterprise.",
2737
+ "required": false
2738
+ }
2739
+ ]
2740
+ },
2741
+ {
2742
+ "invocation": "carrier env llm-context",
2743
+ "domain": "env",
2744
+ "summary": "Generate a comprehensive LLM context document describing your Carrier environment, available tools, current tier, usage patterns, and best practices.",
2745
+ "write": false,
2746
+ "transport": "mcp",
2747
+ "tool": "llm_context",
2748
+ "restMethod": null,
2749
+ "restPath": null,
2750
+ "options": [
2751
+ {
2752
+ "flags": "--format <format>",
2753
+ "description": "Output format for the context document (default: markdown). One of: markdown, json, yaml.",
2754
+ "required": false
2755
+ },
2756
+ {
2757
+ "flags": "--include-examples <bool>",
2758
+ "description": "Include example tool invocations (default: true).",
2759
+ "required": false
2760
+ }
2761
+ ]
2762
+ },
2763
+ {
2764
+ "invocation": "carrier env describe",
2765
+ "domain": "env",
2766
+ "summary": "Get full documentation for any registered Carrier MCP tool: description, parameters, 2-3 example invocations, required scope, destructive flag, and guidance.",
2767
+ "write": false,
2768
+ "transport": "mcp",
2769
+ "tool": "carrier_ask_describe",
2770
+ "restMethod": null,
2771
+ "restPath": null,
2772
+ "options": [
2773
+ {
2774
+ "flags": "--tool-name <name>",
2775
+ "description": "The exact MCP tool name to describe (e.g. 'assign_package', 'hlr_set_bitrate').",
2776
+ "required": true
2777
+ }
2778
+ ]
2779
+ },
2780
+ {
2781
+ "invocation": "carrier brand logo",
2782
+ "domain": "brand",
2783
+ "summary": "Generate a storefront logo (SVG always; PNG when an image key is configured on the Carrier worker).",
2784
+ "write": false,
2785
+ "transport": "mcp",
2786
+ "tool": "generate_storefront_logo",
2787
+ "restMethod": null,
2788
+ "restPath": null,
2789
+ "options": [
2790
+ {
2791
+ "flags": "--name <name>",
2792
+ "description": "Brand / shop name, e.g. Bananas.",
2793
+ "required": true
2794
+ },
2795
+ {
2796
+ "flags": "--accent <accent>",
2797
+ "description": "Accent hex, e.g. #FF8A00.",
2798
+ "required": false
2799
+ },
2800
+ {
2801
+ "flags": "--tagline <tagline>",
2802
+ "description": "Optional tagline for AI-enhanced marks.",
2803
+ "required": false
2804
+ }
2805
+ ]
2806
+ },
2807
+ {
2808
+ "invocation": "carrier atlas coverage",
2809
+ "domain": "atlas",
2810
+ "summary": "List the mobile networks Carrier Atlas has configured for one country.",
2811
+ "write": false,
2812
+ "transport": "mcp",
2813
+ "tool": "get_atlas_coverage",
2814
+ "restMethod": null,
2815
+ "restPath": null,
2816
+ "options": [
2817
+ {
2818
+ "flags": "--country <country>",
2819
+ "description": "ISO 3166-1 alpha-2 country code, for example JP or NL.",
2820
+ "required": true
2821
+ },
2822
+ {
2823
+ "flags": "--status <status>",
2824
+ "description": "Keep only networks whose latest probe has this status. One of: up, degraded, down, unknown.",
2825
+ "required": false
2826
+ },
2827
+ {
2828
+ "flags": "--technology <technology>",
2829
+ "description": "Keep only networks of this radio generation. One of: 2G, 3G, 4G, 5G.",
2830
+ "required": false
2831
+ }
2832
+ ]
2833
+ },
2834
+ {
2835
+ "invocation": "carrier atlas network",
2836
+ "domain": "atlas",
2837
+ "summary": "Read one mobile network from Carrier Atlas by MCC and MNC, including the latest status sample and the last 24 hours of probes.",
2838
+ "write": false,
2839
+ "transport": "mcp",
2840
+ "tool": "get_atlas_network_status",
2841
+ "restMethod": null,
2842
+ "restPath": null,
2843
+ "options": [
2844
+ {
2845
+ "flags": "--mcc <mcc>",
2846
+ "description": "Mobile Country Code.",
2847
+ "required": true
2848
+ },
2849
+ {
2850
+ "flags": "--mnc <mnc>",
2851
+ "description": "Mobile Network Code.",
2852
+ "required": true
2853
+ }
2854
+ ]
2855
+ }
2856
+ ]