@carrierllc/mcp 0.13.0 → 0.13.3
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 +4 -3
- package/dist/{chunk-ZUUC3J4J.js → chunk-2TVU2GRC.js} +1529 -1130
- package/dist/chunk-2TVU2GRC.js.map +1 -0
- package/dist/cli.js +61 -13
- package/dist/cli.js.map +1 -1
- package/dist/index.js +95 -47
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/plugin/carrier/README.md +2 -1
- package/plugin/carrier/skills/issue-esim/SKILL.md +92 -0
- package/plugin/carrier/skills/provision/SKILL.md +2 -0
- package/dist/chunk-ZUUC3J4J.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carrierllc/mcp",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.3",
|
|
4
4
|
"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).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Carrier (Lifecycle Innovations Limited)",
|
package/plugin/carrier/README.md
CHANGED
|
@@ -50,7 +50,8 @@ instructions.
|
|
|
50
50
|
|
|
51
51
|
| Command | Does |
|
|
52
52
|
|---|---|
|
|
53
|
-
| `/carrier:
|
|
53
|
+
| `/carrier:issue-esim` | Issue one eSIM via `connectivity.intent` (the vibe-coder path) |
|
|
54
|
+
| `/carrier:provision` | Operator path: inventory stock + a starter package |
|
|
54
55
|
| `/carrier:subscribers` | List / inspect / suspend / resume / terminate subscribers |
|
|
55
56
|
| `/carrier:packages` | Create, assign, optimize data packages |
|
|
56
57
|
| `/carrier:usage` | Usage, projections, depletion, anomalies |
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: issue-esim
|
|
3
|
+
description: Issue one Carrier eSIM with POST /v1/connectivity/intents. Use when someone wants global connectivity, a test eSIM, or test_global_1gb. Do not use the operator OCS catalog for this.
|
|
4
|
+
argument-hint: "[test_global_1gb|test_eu_1gb|live plan slug] [idempotency key]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Issue one eSIM
|
|
8
|
+
|
|
9
|
+
This is the developer path. It is one object, `connectivity.intent`, not the OCS method list.
|
|
10
|
+
|
|
11
|
+
The description above is the trigger. Load this skill when the task is connectivity. Do not load the operator MCP catalog first: clients inject every tool on that server before a skill can hide them.
|
|
12
|
+
|
|
13
|
+
## Install, if this skill is not already available
|
|
14
|
+
|
|
15
|
+
Once per user, so every project sees it:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx skills add https://carrier.llc -g -a cursor -a claude-code -y
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If that host is not published yet, install this directory:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx skills add https://github.com/Lifecycle-Innovations-Limited/carrier.llc/tree/main/apps/mcp-stdio/plugin/carrier/skills/issue-esim -g -a cursor -a claude-code -y
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Issue
|
|
28
|
+
|
|
29
|
+
`POST https://api.carrier.llc/v1/connectivity/intents`
|
|
30
|
+
|
|
31
|
+
Required header: `Idempotency-Key` (stable per order, max 255 characters).
|
|
32
|
+
|
|
33
|
+
Auth: `Authorization: Bearer` with an `ak_` key from the console. Do not put the key in the repo.
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{ "plan": "test_global_1gb" }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Plans:
|
|
40
|
+
|
|
41
|
+
- `test_global_1gb` and `test_eu_1gb` succeed immediately, set `livemode` false, and never call the network. They work on the free tier. The ICCID `8900000000000000001` and SM-DP+ `test.smdp.carrier.llc` are fixtures.
|
|
42
|
+
- Any other slug is a live catalogue plan. It draws one eSIM from the caller's own account and needs the write scope. Do not fall back to a platform stock account.
|
|
43
|
+
|
|
44
|
+
The same key and body return the original intent. Do not issue a second SIM to "make sure".
|
|
45
|
+
|
|
46
|
+
Confirm a plan later with `POST /v1/connectivity/intents/:id/confirm` when the first call omitted `plan`.
|
|
47
|
+
|
|
48
|
+
## One-tool MCP
|
|
49
|
+
|
|
50
|
+
`carrier-intent` is a separate process with one tool, `create_connectivity_intent`. It posts the intent above. It is not registered on `https://mcp.carrier.llc/mcp`.
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"mcpServers": {
|
|
55
|
+
"carrier-intent": {
|
|
56
|
+
"command": "npx",
|
|
57
|
+
"args": ["-y", "-p", "@carrierllc/mcp-intent", "carrier-intent"],
|
|
58
|
+
"env": { "CARRIER_API_KEY": "" }
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Put the `ak_` key in that env block on the machine. Call the tool with `plan` and `idempotency_key`. If the package is not installed yet, use the HTTP call in the previous section.
|
|
65
|
+
|
|
66
|
+
## After it succeeds
|
|
67
|
+
|
|
68
|
+
- Read `esim.iccid` and `esim.smdp_address` back to the user.
|
|
69
|
+
- Webhooks: `POST /v1/connectivity/webhook_endpoints` with an https URL. The secret is shown once. Deliveries use `Carrier-Signature`.
|
|
70
|
+
- Test usage: `POST /v1/connectivity/usage_records` with the intent id and `quantity_mb`. A live intent refuses a self-reported quantity (`network_metered`) because the wallet meter already debits those bytes.
|
|
71
|
+
|
|
72
|
+
## If the person is new, use these sentences
|
|
73
|
+
|
|
74
|
+
A skill is a note your AI reads so it follows the same steps every time.
|
|
75
|
+
A plug lets an AI app press a button. This plug has one button: give this order a SIM.
|
|
76
|
+
This other plug opens every button a phone company uses to run many SIMs.
|
|
77
|
+
These are the same switchboard buttons, typed into a terminal instead of clicked. People call that a CLI.
|
|
78
|
+
An intent is your ask: please attach a SIM to this order. The same ask twice does not make two SIMs.
|
|
79
|
+
A product is the offer you sell: how much data, how many days, which countries, and the price. Saving it does not charge anyone.
|
|
80
|
+
A package is the data sitting on one SIM after it is issued. A code package, such as the library named @carrierllc/sdk, is a different thing.
|
|
81
|
+
A subscriber is one SIM line, and the person or device that line belongs to.
|
|
82
|
+
On this page a client is the small code library your app uses to ask for a SIM. A customer is the person who buys that SIM.
|
|
83
|
+
A country list is the countries someone typed on an offer. Carrier stores that list. It does not look up a live coverage map.
|
|
84
|
+
Steering is which mobile networks a SIM is told to join. Changing it is a job for the person who runs the SIMs.
|
|
85
|
+
A green zone is a short list of sites that can stay reachable after the data is used up, so someone can get help, pay, or download the SIM again.
|
|
86
|
+
|
|
87
|
+
## Do not
|
|
88
|
+
|
|
89
|
+
- Do not register `https://mcp.carrier.llc/mcp` to issue this SIM. That server is the operator fleet.
|
|
90
|
+
- Do not call `assign_package`, `affectPackageToSubscriber`, or another OCS write to issue this SIM.
|
|
91
|
+
- Do not invent coverage, fair-use, or a second network.
|
|
92
|
+
- Do not put a token in the repo.
|
|
@@ -6,6 +6,8 @@ argument-hint: "[account/reseller] [country or package] [qty]"
|
|
|
6
6
|
|
|
7
7
|
# Provision eSIM
|
|
8
8
|
|
|
9
|
+
A developer adding one SIM to an app should use the `issue-esim` skill (`POST /v1/connectivity/intents`) instead of this operator path.
|
|
10
|
+
|
|
9
11
|
Issue free eSIM stock and assign a starter package so SIMs are ready to activate.
|
|
10
12
|
|
|
11
13
|
Inputs from `$ARGUMENTS` (ask for anything missing): target **account/reseller**, destination **country/region** or **package template**, and **quantity** (default 1).
|