@carrierllc/mcp 0.13.30 → 0.13.32
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.
- package/README.md +35 -0
- package/dist/{chunk-ZJY7H2QW.js → chunk-2P76KIOS.js} +30 -2
- package/dist/{chunk-ZJY7H2QW.js.map → chunk-2P76KIOS.js.map} +1 -1
- package/dist/cli.js +432 -44
- package/dist/cli.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,6 +29,41 @@ carrier exec -- bash # real child terminal with CARRIER_API_KEY in its en
|
|
|
29
29
|
**Entry A:** register `https://mcp.carrier.llc/mcp` with no token. The first tool
|
|
30
30
|
call in Claude/Cursor opens Clerk OAuth (Google / GitHub / email).
|
|
31
31
|
|
|
32
|
+
### Natural-language answers
|
|
33
|
+
|
|
34
|
+
`carrier ask "how many subscribers are there?"` and the interactive home's
|
|
35
|
+
**Ask the fleet** action present executed tool results as readable answers.
|
|
36
|
+
Known OCS list summaries use the server's authoritative `summary.total`, not a
|
|
37
|
+
recount of the displayed rows. That number describes the result/page, not
|
|
38
|
+
necessarily the entire fleet; paging, missing rows and shortened display are
|
|
39
|
+
reported explicitly. Nested subscriber status and SIM inventory status remain
|
|
40
|
+
separate. A server facet that could not read nested status is not a claim that
|
|
41
|
+
subscriber status is missing.
|
|
42
|
+
|
|
43
|
+
This is deterministic presentation, not another AI/model call. The original
|
|
44
|
+
question distinguishes counts from requested lists/status/details. Unsupported
|
|
45
|
+
predictions and judgements receive an explicit limitation rather than unrelated
|
|
46
|
+
records. Current subscriber status uses the shared OCS open-period normalizer,
|
|
47
|
+
with its maintained closed-history fallback; SIM inventory remains separate.
|
|
48
|
+
|
|
49
|
+
Default JSON presentation uses typed scalar allowlists and explicit shallow
|
|
50
|
+
account/result wrappers. Unknown fields, nested shapes, and wrong field types
|
|
51
|
+
are omitted with a safe limitation; they are never recursively dumped. Safe
|
|
52
|
+
ordinary scalar facts remain readable. Empty or unsupported summary facets are
|
|
53
|
+
omitted. Plain-text tool answers are passed through, shortened only at whole
|
|
54
|
+
sentence/row boundaries; this is not a general redaction guarantee for arbitrary
|
|
55
|
+
prose. Oversized indivisible rows are omitted entirely with the raw-output hint.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
carrier ask "how many subscribers are there?" --json
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
`--json` is explicit raw access: complete JSON stdout, no banner/spinner; plain
|
|
62
|
+
text is encoded as a JSON string. Raw output may contain sensitive data. Failures
|
|
63
|
+
remain nonzero with errors on stderr. The MCP machine contract and domain
|
|
64
|
+
commands are unchanged. Ambiguous intents and confirmation-required mutations
|
|
65
|
+
still do not execute a resolved tool.
|
|
66
|
+
|
|
32
67
|
### OAuth and terminal handoff
|
|
33
68
|
|
|
34
69
|
Carrier commands, status and Ask the Fleet share credential resolution. Explicit
|
|
@@ -1855,7 +1855,7 @@ function storefrontScreen(input) {
|
|
|
1855
1855
|
// package.json
|
|
1856
1856
|
var package_default = {
|
|
1857
1857
|
name: "@carrierllc/mcp",
|
|
1858
|
-
version: "0.13.
|
|
1858
|
+
version: "0.13.32",
|
|
1859
1859
|
description: "Carrier MCP \u2014 natural-language control of MVNO/eSIM fleets via eSIMVault OCS. Stdio mode for direct integration with Claude Desktop, Cursor, Windsurf, and MCP-compatible clients. Ships the `carrier` CLI (plugin install + white-label eSIM storefront scaffold).",
|
|
1860
1860
|
license: "MIT",
|
|
1861
1861
|
author: "Carrier (Lifecycle Innovations Limited)",
|
|
@@ -4352,6 +4352,32 @@ function ocsArray(data, keys) {
|
|
|
4352
4352
|
}
|
|
4353
4353
|
return [];
|
|
4354
4354
|
}
|
|
4355
|
+
function subscriberIccid(row) {
|
|
4356
|
+
if (row === null || typeof row !== "object") return "";
|
|
4357
|
+
const r = row;
|
|
4358
|
+
const imsiList = r.imsiList;
|
|
4359
|
+
if (Array.isArray(imsiList)) {
|
|
4360
|
+
for (const entry of imsiList) {
|
|
4361
|
+
if (entry && typeof entry === "object") {
|
|
4362
|
+
const v = entry.iccid;
|
|
4363
|
+
if (typeof v === "string" && v.length > 0) return v;
|
|
4364
|
+
if (typeof v === "number") return String(v);
|
|
4365
|
+
}
|
|
4366
|
+
}
|
|
4367
|
+
}
|
|
4368
|
+
for (const key of ["iccid", "ICCID"]) {
|
|
4369
|
+
const v = r[key];
|
|
4370
|
+
if (typeof v === "string" && v.length > 0) return v;
|
|
4371
|
+
if (typeof v === "number") return String(v);
|
|
4372
|
+
}
|
|
4373
|
+
const sim = r.sim;
|
|
4374
|
+
if (sim && typeof sim === "object") {
|
|
4375
|
+
const v = sim.iccid;
|
|
4376
|
+
if (typeof v === "string" && v.length > 0) return v;
|
|
4377
|
+
if (typeof v === "number") return String(v);
|
|
4378
|
+
}
|
|
4379
|
+
return "";
|
|
4380
|
+
}
|
|
4355
4381
|
var FACET_TALLY_MAX = 25;
|
|
4356
4382
|
var OCS_LIST_FACETS = {
|
|
4357
4383
|
templates: [
|
|
@@ -5426,6 +5452,8 @@ export {
|
|
|
5426
5452
|
recordToolDescription,
|
|
5427
5453
|
buildRouterCatalog,
|
|
5428
5454
|
ROUTER_RULES,
|
|
5455
|
+
OCS_LIST_KEYS,
|
|
5456
|
+
subscriberIccid,
|
|
5429
5457
|
withOcsListSummary,
|
|
5430
5458
|
extractDailyUsage,
|
|
5431
5459
|
daysUntil,
|
|
@@ -5491,4 +5519,4 @@ export {
|
|
|
5491
5519
|
package_default,
|
|
5492
5520
|
CARRIER_VERSION
|
|
5493
5521
|
};
|
|
5494
|
-
//# sourceMappingURL=chunk-
|
|
5522
|
+
//# sourceMappingURL=chunk-2P76KIOS.js.map
|