The carrier CLI
Your entire eSIM fleet from the terminal. 40+ deterministic commands across six domains, a natural-language fallback, MCP stdio mode, and a white-label storefront scaffold — all in one binary.
Install
The CLI ships inside the @carrierllc/mcp npm package and installs two binaries: carrier (the CLI) and carrier-mcp (the stdio MCP server). Node 22+ required for the npm paths.
Homebrew (macOS / Linux)
brew tap Lifecycle-Innovations-Limited/carrier
brew trust --tap Lifecycle-Innovations-Limited/carrier # Homebrew 5+ requires trusting third-party taps
brew install carrier
carrier --versionnpm (global)
npm i -g @carrierllc/mcp
carrier --versionnpx (no install)
npx -y -p @carrierllc/mcp carrier-mcpUpgrading: brew update && brew upgrade carrier or npm i -g @carrierllc/mcp@latest.
Authentication
Two modes. Interactive use needs no credentials at all; headless use takes an API key from the environment.
- 01OAuth on first use (interactive).
carrier plugin installregisters the zero-credential MCP URLhttps://mcp.carrier.llc/mcpin Claude Code. The first tool call opens Clerk sign-in / sign-up in your browser (Google, GitHub, or email). No token to paste. Stuck?claude mcp auth carrier. - 02API key (headless / CI). The fleet commands and
carrier askcall the remote MCP directly and read a bearer credential from the environment, in this order:CARRIER_API_KEY,CARRIER_ORG_API_KEY,ESIMVAULT_API_TOKEN,CARRIER_OCS_API_TOKEN.
Headless setup
# Console → Settings → API Keys (keys start with ak_)
export CARRIER_API_KEY=ak_...
carrier ask "show fleet health"
carrier subscribers list --account-id 123 --jsonCore commands
carrierInteractive home: status, plugin + MCP install, optional storefront scaffold.
carrier init [--dir <path>] [--yes] [--full]Guided setup. --yes uses Carrier defaults with no prompts (plugin + scaffold + build); --full runs the classic plugin + storefront wizard.
carrier statusMCP / plugin / auth status with concrete next steps.
carrier plugin installInstall the Carrier Claude Code plugin and register the zero-cred MCP (OAuth on first use).
carrier plugin statusPlugin + MCP registration state and auth next steps.
carrier open <signup|signin|console|onboarding|mcp>Open Carrier account and product URLs in your browser.
carrier examplesNatural-language fleet prompts for Claude, plus the full domain command map.
carrier ask "<intent>"Natural-language fallback for anything the discrete commands miss. Needs CARRIER_API_KEY or an OCS token.
carrier --version / --helpVersion and help. Every subcommand also accepts --help.
Fleet commands
137 fleet commands, taken from the CLI registry. Download the Markdown or JSON list, or the full pack.
--json— raw tool response on stdout, ready forjq; diagnostics go to stderr.--commit— write commands run as a dry run by default. Nothing changes until you re-run with--commit.- Usage windows (
--start/--end) are clamped to 7 days — OCS rejects wider windows. Omit both for the last 7 days.
carrier subscribers
Look up, inspect and change subscribers.carrier subscribers list --account-id <id> --iccid <iccid> --msisdn <msisdn> --imsi <imsi> --activation-code <code> --status <status> --limit <n> --offset <n>List subscribers. With no filter, uses your default account (lowest-id account under your reseller).
MCP list_subscribers
carrier subscribers get --iccid <iccid> --msisdn <msisdn> --gz-counterFull record for one subscriber by ICCID or MSISDN.
MCP get_subscriber
carrier subscribers location --iccid <iccid>Last-known location from the most recent cell tower usage.
MCP get_subscriber_location
carrier subscribers usage --iccid <iccid> --start <date> --end <date>Daily data, voice and SMS usage over a window of up to 7 days.
MCP subscriber_usage
carrier subscribers events --iccid <iccid> --start <date> --end <date>Network attach/detach events over a window of up to 7 days.
MCP subscriber_network_events
carrier subscribers active-period --iccid <iccid>First and last usage dates for one subscriber.
MCP subscriber_active_period
carrier subscribers esim-status --account-id <id> --reseller-id <id>eSIM state counts per account: active, suspended, inventory.
MCP esim_status_per_account
carrier subscribers set-status --iccid <iccid> --status <status>Change a subscriber's status.
MCP modify_subscriber_status
carrier subscribers set-balance --iccid <iccid> --amount <amount> --mode <mode>Add to or replace a subscriber's balance.
MCP modify_subscriber_balance
carrier subscribers sim-status show --iccid <iccid>SIM/eSIM status at the SIM provider level, distinct from OCS status.
MCP get_sim_provider_status
carrier subscribers sim-status set --iccid <iccid> --status <status>Change the SIM/eSIM status at the SIM provider level. ENABLED and DISABLED map to OCS Affected and Free.
MCP change_sim_status
carrier subscribers phone-number set --iccid <iccid> --phone-number <e164> --phone-type <type>Assign a phone number (MSISDN) to a subscriber.
MCP affect_subscriber_phone_number
carrier subscribers contact set --iccid <iccid> --first-name <name> --last-name <name> --company <name> --email <email> --phone-number <number>Update contact details on a subscriber. Omitted fields stay unchanged.
MCP modify_subscriber_contact_info
carrier subscribers mobile-plan set --iccid <iccid> --plan-id <id>Change the mobile pricing plan a subscriber is billed under.
MCP modify_subscriber_mobile_plan
carrier subscribers voip-plan set --iccid <iccid> --plan-id <id>Change the VoIP pricing plan assigned to a subscriber.
MCP modify_subscriber_voip_plan
carrier subscribers traffic set --iccid <iccid> --data <bool> --moc <bool> --mtc <bool> --sms <bool>Enable or disable data, calls and SMS per traffic type. Omit a flag to leave it unchanged.
MCP set_subscriber_traffic_restrictions
carrier subscribers bitrate show --iccid <iccid>Current HLR-level bandwidth cap for a subscriber.
MCP hlr_get_bitrate
carrier subscribers bitrate set --iccid <iccid> --bitrate <bps> --bitrate-string <level>Set an HLR-level bandwidth cap. Bits per second are mapped onto the OCS KB_ enum.
MCP hlr_set_bitrate
carrier subscribers greenzone reset --iccid <iccid>Reset the Green Zone byte counter to zero. Irreversible.
MCP reset_subscriber_gz_counter
carrier subscribers cell-location --radio-type <type> --mcc <mcc> --mnc <mnc> --lac <lac> --cell-id <id> --signal-strength <dbm>Resolve a raw cell tower tuple to coordinates (Bridge4IP GeoSense).
MCP get_subscriber_location_by_cell_id
carrier packages
Packages assigned to a subscriber.carrier packages list --iccid <iccid>Packages on one subscriber, with allowance and expiry.
MCP list_subscriber_packages
carrier packages assign --iccid <iccid> --template-id <id> --account-id <id> --request-key <key> --start-date <date> --end-date <date> --validity-period <days> --business-kind <kind> --business-id <id> --business-line <line> --business-verb <verb>Assign a one-time package from a template.
MCP assign_package
carrier packages set-status --iccid <iccid> --package-id <id> --status <status>Activate or deactivate one package without deleting it.
MCP modify_package_status
carrier packages set-expiry --iccid <iccid> --package-id <id> --expires <date> --validity-days <n>Move a package's expiry date. Pass an absolute date or a day count.
MCP modify_package_expiry
carrier packages set-limits --iccid <iccid> --package-id <id> --limits <json>Change data, voice or SMS ceilings on an assigned package.
MCP modify_package_limits
carrier packages assign-recurring --iccid <iccid> --template-id <id> --activate-at-first-use --start-time <iso>Assign an auto-renewing package from a recurring-enabled template.
MCP assign_recurring_package
carrier packages recurring set --iccid <iccid> --package-id <id> --action <action>Pause or restart the auto-renewal of a recurring package.
MCP stop_resume_recurring_package
carrier packages active-period set --iccid <iccid> --package-id <id> --start <date> --end <date> --comment <text>Move the start and/or end of a package's active period.
MCP modify_subscriber_package_active_period
carrier packages clean --iccid <iccid>Remove ALL packages from a subscriber. Irreversible.
MCP clean_all_packages
carrier packages delete --iccid <iccid> --package-id <id>Permanently remove one package from a subscriber.
MCP delete_subscriber_package
carrier templates
The package template catalog.carrier templates listBrowse package templates available for assignment.
MCP list_package_templates
carrier templates create --template <json>Create a package template from a JSON configuration.
MCP create_package_template
carrier templates set-core --template-id <id> --changes <json>Change name, limits, cost, validity or zone on a template.
MCP modify_template_core
carrier templates set-recurring --template-id <id> --changes <json>Change auto-renewal settings on a template.
MCP modify_template_recurring
carrier templates set-throttling --template-id <id> --changes <json>Change throttling thresholds. Applies to existing packages too.
MCP modify_template_throttling
carrier zones
Location zones and destination lists.carrier zones list --reseller-id <id> --verbose <bool>Location zones with countries and operators. Prefer this over `elements`.
MCP list_detailed_location_zones
carrier zones elements --zone-id <id>Raw zone elements. Upstream OCS returns malformed rows for some zones.
MCP list_location_zones
carrier zones create --zone <json>Create a location zone from a JSON configuration.
MCP create_location_zone
carrier zones network-profile set --zone-id <id> --network-profile-id <id>Attach or change the network profile on an existing location zone.
MCP change_network_profile_of_location_zone
carrier zones destinations --reseller-id <id>Destination list catalog for voice and SMS packages.
MCP list_destination_lists
carrier zones prefixes --destination-list-id <id>Dialling prefixes inside one destination list.
MCP list_destination_prefixes
carrier steering
Network steering lists and operator preference.carrier steering list --reseller-id <id>Steering lists configured for this reseller.
MCP list_steering_lists
carrier steering assign --iccid <iccid> --list-id <id>Assign a steering list to a subscriber. Follow with `push`.
MCP modify_subscriber_steering_list
carrier steering push --iccid <iccid>Push the assigned operator preference list to the device now.
MCP push_steering_to_subscriber
carrier network-default
Which networks a SIM gets per country. Default: the cheapest available.carrier network-default showShow the org network default (cheapest_available, all or custom) and what applies today. New assignments only.
MCP get_network_default
carrier network-default set --mode <mode> --list-id <id>Store the org network default. Changes no SIM and writes nothing to OCS; applies to new assignments.
MCP set_network_default
carrier network-default plan --countries <codes> --sim-mode <mode> --sim-list-id <id> --package-mode <mode> --package-list-id <id> --reseller-id <id>Show which networks a SIM would get in the given countries. Read only. Falls back to all networks with a loud warning when the tariff is missing.
MCP plan_network_default
carrier accounts
Reseller accounts: balances and subscriber moves.carrier accounts list --reseller-id <id>Accounts under a reseller with name, balance and type.
MCP list_reseller_accounts
carrier accounts balance set --account-id <id> --amount <amount> --mode <mode>Add to or replace an account's monetary balance.
MCP modify_account_balance
carrier accounts move-subscribers --src-account-id <id> --dest-account <id> --range-type <type> --range-start <value> --range-end <value>Move a contiguous IMSI or ICCID range of subscribers to another account.
MCP move_subscriber_range_to_account
carrier reseller
The reseller the token belongs to.carrier reseller show --reseller-id <id>Full reseller record: balance, pricing plans, contact and traffic config.
MCP get_reseller_info
carrier tariff
Wholesale tariffs: mobile and VoIP rates.carrier tariff show --reseller-id <id> --country <name|iso2> --traffic-type <type> --verbose <bool>Per-country wholesale rates for data, voice and SMS.
MCP get_tariff
carrier tariff voip --reseller-id <id>VoIP tariff catalog for a reseller.
MCP list_subscriber_voip_tariff
carrier tariff voip-rules --voip-plan-id <id>Rate rules inside one VoIP plan.
MCP list_voip_tariff_rule
carrier sms
Mobile-terminated SMS to subscribers.carrier sms send --iccid <iccid> --msisdn <msisdn> --message <text> --sender <sender>Send an MT SMS to one subscriber.
MCP send_sms
carrier sponsors
Sponsor networks backing the eSIM profiles.carrier sponsors list --reseller-id <id>Sponsor carriers available to this reseller.
MCP list_sponsors
carrier network-profiles
Roaming configuration profiles for zones and provisioning.carrier network-profiles listNetwork profiles available to this reseller.
MCP list_network_profiles
carrier webhooks
Bridge4IP webhook and relay flag status.carrier webhooks show --reseller-id <id>Current relay flags (LU, Gy, VoIP, calls+SMS) and notification webhooks.
MCP carrier_webhook_config
carrier intelligence
Composite reports over the fleet.carrier intelligence fleet-health --account-id <id>eSIM counts, low-balance accounts and what needs attention.
MCP fleet_health
carrier intelligence diagnose --iccid <iccid>Why one subscriber is offline, throttled or failing to attach.
MCP diagnose_subscriber
carrier intelligence anomalies --iccid <iccid>Usage spikes and burn rates that exhaust the package early.
MCP detect_usage_anomalies
carrier intelligence churn --iccid <iccid>Churn risk score with contributing factors.
MCP churn_risk
carrier intelligence optimize --iccid <iccid>Better-fitting package for one subscriber, with the saving.
MCP optimize_package
carrier intelligence coverage --account-id <id> --limit <n>Networks subscribers actually attach to, against your steering lists.
MCP audit_network_coverage
carrier intelligence high-cost --account-id <id> --limit <n> --threshold-pct <n>Subscribers whose consumption erodes the margin.
MCP high_cost_subscribers
carrier intelligence marketing --account-id <id>Where subscribers and revenue concentrate, and which markets grow.
MCP marketing_intelligence
carrier intelligence country-entry --iccid <iccid> --expected-country <iso2>Country a subscriber is in now, optionally diffed against the last known one.
MCP detect_country_entry
carrier api-keys
Mint Carrier API keys (ak_…) for headless and CI usecarrier api-keys create --name <name> --description <text> --seconds-until-expiration <n>Create an org API key. The secret is shown once and never stored by the CLI.
carrier onboard
Connect a new account to OCS without opening a browsercarrier onboard statusShow how far onboarding has got. Same state the console renders.
carrier onboard org --name <name> --website <url> --country <iso2> --operator-type <type>Record who the operator is (step 1).
carrier onboard connect --token <token>Connect your own eSIMVault token (step 2, BYO). Verified against OCS, then stored encrypted; the token is never echoed back.
carrier onboard managedLet Carrier provision the OCS sub-account instead (step 2, the primary path). Idempotent, and clears any BYO token.
carrier onboard plan --template-id <id> --display-name <name>Record the starting plan template (step 3).
carrier onboard plan-skipSkip the plan step and come back to it later (step 3).
carrier onboard test-esimRead 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.
carrier onboard completeMark onboarding done (step 5).
carrier affiliate
Carrier affiliate program: profile, referral link and commissionscarrier affiliate statusRead-only: returns the affiliate profile, referral code, link, counts, money owed and paid, and Connect payouts status for the authenticated operator.
MCP affiliate_status
carrier affiliate commissions --limit <n>Read-only: returns the list of commission records for the authenticated operator.
MCP affiliate_commissions
carrier affiliate joinJoin the Carrier affiliate program and generate a personal referral code and link.
MCP affiliate_join
carrier billing
Carrier plan credits, spend thresholds and rate-limit statecarrier billing events --limit <n>View recent billing threshold events: notifications, invoice triggers, hard cap alerts, and overage pauses.
MCP billing_events
carrier billing configure --overages-enabled <bool> --billing-threshold-cents <n> --hard-cap-cents <n> --auto-pause-on-cap <bool> --notify-at-pct <list> --notification-email <email> --notification-phone <phone> --webhook-url <url>Configure your billing preferences: enable/disable overages, set billing thresholds (bill shock prevention), configure notification percentages, and set hard spending caps.
MCP configure_billing
carrier billing creditsRead how much of this Carrier MCP plan is left: credits remaining, daily free credits, overage state, volume discount tier, and billing threshold state.
MCP credit_balance
carrier billing plansView all available Carrier MCP pricing plans with credit allotments, features, overage rates, and volume discount tiers.
MCP pricing_plans
carrier billing projection --days-to-project <n>Project your credit usage and costs for the remainder of the billing period based on current consumption rate.
MCP usage_projection
carrier billing rate-limit --endpoint <endpoint>Inspect Bridge4IP OCS rate-limit governor state — bucket fill levels, per-endpoint limits, and 80% alert thresholds.
MCP rate_limit_status
carrier wallet
The Carrier prepaid wallet: balance and top-upscarrier wallet balanceRead the caller organisation's Carrier prepaid wallet: current balance and auto-top-up settings.
MCP wallet_balance
carrier wallet topup --pack <pack>Create a Stripe Checkout link so a human can top up the Carrier prepaid wallet by card.
MCP wallet_topup_checkout
carrier wallet auto-topup --pack-cents <n>Charge the organisation's saved card off-session, right now, and credit the Carrier prepaid wallet with the pack.
MCP wallet_auto_topup
carrier stripe
Money in the operator's connected Stripe accountcarrier stripe balanceRead the money sitting in the operator's connected Stripe account: available and pending, split per currency.
MCP stripe_connect_balance
carrier stripe payouts --limit <n> --status <status>List money Stripe has already sent from the operator's connected account to their bank, newest first.
MCP stripe_connect_payouts
carrier stripe charges --limit <n> --starting-after <after>List recent payments (charges) on the operator's connected Stripe account, e.g. storefront purchases.
MCP stripe_connect_charges_list
carrier stripe disputes --limit <n> --status <status>List chargebacks customers have raised with their bank against the operator's connected Stripe account.
MCP stripe_connect_dispute_list
carrier stripe refund --charge-id <id> --amount-cents <n> --reason <reason> --confirm-token <token>Refund money to a customer on one charge in the operator's connected Stripe account.
MCP stripe_connect_refund
carrier radar
Stripe Radar fraud reviews and value listscarrier radar reviews --open-only <bool> --limit <n>List the Stripe Radar fraud reviews waiting on a manual approve/decline decision, newest first.
MCP radar_review_list
carrier radar approve --review-id <id> --confirm-token <token>Clear a Stripe Radar fraud review so the held charge is captured and the money is taken.
MCP radar_review_approve
carrier radar decline --review-id <id> --confirm-token <token>Always refuses and calls nothing: Stripe has no endpoint to decline a Radar review (its Reviews API only lists, retrieves and approves).
MCP radar_review_decline
carrier radar rule-toggle --rule-id <id> --enabled <bool>Report a Stripe Radar rule's state. Stripe exposes no API to change it, so this changes nothing.
MCP radar_rule_toggle
carrier radar value-list add --value-list-id <id> --value <value> --confirm-token <token>Add one value to an existing Stripe Radar value list, changing how every future charge is scored.
MCP radar_value_list_add
carrier greenzone
The Bridge4IP Greenzone whitelistcarrier greenzone list --from-portal <bool>List current Greenzone whitelist entries from the KV cache.
MCP greenzone_whitelist_list
carrier greenzone add --host <host> --ip <ip>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.
MCP greenzone_whitelist_add
carrier greenzone remove --host <host> --ip <ip>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.
MCP greenzone_whitelist_remove
carrier agent
Steel browsing agents: one-off tasks and cron schedulescarrier agent ask --prompt <prompt> --max-steps <n>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.
MCP ui_agent_ask
carrier agent status --task-id <id>Poll the status of a browser agent task dispatched by ui_agent_ask or any ui_* tool.
MCP ui_agent_status
carrier agent pendingReturns all browser automation tasks that are currently paused waiting for human input.
MCP ui_agent_list_pending
carrier agent reply --task-id <id> --reply <reply>Resumes a browser automation task that paused waiting for input.
MCP ui_agent_reply
carrier agent usageReturns an estimated Anthropic API cost for Steel agent tasks dispatched this calendar month.
MCP ui_agent_usage
carrier agent schedule listLists all Steel recurring schedules stored in KV.
MCP ui_agent_schedule_list
carrier agent schedule create --name <name> --cron <cron> --prompt-template <template>Creates a recurring Steel agent run on a cron schedule.
MCP ui_agent_schedule_create
carrier agent schedule pause --schedule-id <id>Pauses an active Steel recurring schedule.
MCP ui_agent_schedule_pause
carrier agent schedule resume --schedule-id <id>Resumes a paused Steel recurring schedule.
MCP ui_agent_schedule_resume
carrier agent schedule delete --schedule-id <id>Permanently deletes a Steel recurring schedule.
MCP ui_agent_schedule_delete
carrier portal
OCS portal changes that only exist in the web UI, driven by Kapturecarrier portal account create --name <name> --description <description> --initial-balance <n>Creates a new sub-account under the reseller via the OCS web dashboard.
MCP ui_create_account
carrier portal steering build --steering-list-id <n> --add-operators <list> --remove-operators <list> --operator-type <type>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.
MCP ui_build_steering_list
carrier portal steering create --name <name> --description <description>Create a new, empty network steering list (OPLMN preference set) by driving the OCS web dashboard, because the OCS REST API cannot create one.
MCP ui_create_steering_list
carrier portal steering set-account --account-id <n> --steering-list-id <n>Assigns or removes a steering list at the account level via the OCS web dashboard.
MCP ui_set_account_steering_list
carrier portal relay request --reseller-id <n> --relay-gy <bool> --relay-calls-sms <bool> --relay-voip <bool> --reason <reason>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.
MCP ui_request_reseller_relay_change
carrier portal destinations create --name <name> --prefixes <list> --description <description>Creates a new destination list (named set of phone number prefixes for MOC call permissions) via the OCS web dashboard.
MCP ui_create_destination_list
carrier portal destinations edit --destination-list-id <n> --add-prefixes <list> --remove-prefixes <list> --new-name <name>Edits an existing destination list via the OCS web dashboard.
MCP ui_edit_destination_list
carrier portal destinations delete --destination-list-id <n>Delete a destination list — a named set of phone-number prefixes — by driving the OCS web dashboard.
MCP ui_delete_destination_list
carrier portal zones edit --zone-id <n> --new-name <name> --add-countries <list> --remove-countries <list>Edits an existing location zone via the OCS web dashboard. `create_location_zone` is available via API; edit is UI-only.
MCP ui_edit_location_zone
carrier portal zones delete --zone-id <n>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.
MCP ui_delete_location_zone
carrier portal templates delete --template-id <n>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.
MCP ui_delete_package_template
carrier events
Buffered OCS event history per subscribercarrier events ocs --iccid <iccid> --limit <n> --event-types <list> --since <since>Return the last N OCS events buffered for a given ICCID.
MCP list_recent_ocs_events
carrier events countries --subscriber-id <id> --start-date <date> --end-date <date> --limit <n>Return cross-border movement history for a subscriber, reconstructed from OCS Gy charging events.
MCP subscriber_country_history
carrier events depletion --subscriber-id <id> --since <since>Look up bundle depletion events for a subscriber (or list recent fleet-wide depletions).
MCP subscriber_depletion_events
carrier panels
MCP UI surfaces. A terminal sees the underlying data, not the panel.carrier panels fleet --account-id <n>Fleet overview as a UI panel. Prefer `carrier intelligence fleet-health` in a terminal; use --json to read the panel's data.
MCP fleet_health_app
carrier panels topup --iccid <iccid> --delta <n> --preview <bool>Adjust the OCS account balance behind one subscriber. Previews unless --preview false.
MCP balance_topup_form
carrier panels provision --step <step> --wizard-id <id> --subscriber-iccid <iccid> --package-template-id <n>Step through the provisioning wizard. Pass --step confirm to execute; every earlier step only reads.
MCP provision_esim_wizard
carrier env
This environment: credentials, catalog and machine-readable contextcarrier env infoView your Carrier environment configuration — active organization, reseller details, connected services, and deployment environment.
MCP environment_info
carrier env credentialsReport 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).
MCP credential_status
carrier env rotate --new-token <token> --confirm <bool>Replace the stored eSIMVault API token with one you supply.
MCP rotate_credentials
carrier env catalog --category <category> --tier <tier>Browse the Carrier service catalog — discover available services, their requirements, endpoints, and documentation.
MCP service_catalog
carrier env llm-context --format <format> --include-examples <bool>Generate a comprehensive LLM context document describing your Carrier environment, available tools, current tier, usage patterns, and best practices.
MCP llm_context
carrier env describe --tool-name <name>Get full documentation for any registered Carrier MCP tool: description, parameters, 2-3 example invocations, required scope, destructive flag, and guidance.
MCP carrier_ask_describe
carrier brand
Storefront brand assetscarrier brand logo --name <name> --accent <accent> --tagline <tagline>Generate a storefront logo (SVG always; PNG when an image key is configured on the Carrier worker).
MCP generate_storefront_logo
carrier atlas
Carrier Atlas coverage catalog. Configured networks, not live radio telemetry.carrier atlas coverage --country <country> --status <status> --technology <technology>List the mobile networks Carrier Atlas has configured for one country.
MCP get_atlas_coverage
carrier atlas network --mcc <mcc> --mnc <mnc>Read one mobile network from Carrier Atlas by MCC and MNC, including the latest status sample and the last 24 hours of probes.
MCP get_atlas_network_status
Examples
# Read: fleet overview, one subscriber, usage
carrier intelligence fleet-health
carrier subscribers get --iccid 8944500000000000000
carrier subscribers usage --iccid 8944500000000000000 --start 2026-08-10 --end 2026-08-17
# Pipe JSON into jq
carrier subscribers list --account-id 123 --json | jq '.[].iccid'
# Write: always previews first, then --commit applies
carrier subscribers set-status --iccid 8944500000000000000 --status SUSPENDED
carrier subscribers set-status --iccid 8944500000000000000 --status SUSPENDED --commit
# Anything the commands miss, in plain words
carrier ask "which subscribers in account 123 are close to their data limit?"White-label storefront
Scaffold a fully branded eSIM storefront (Next.js, from the Mango template), preview it locally, and deploy it to Cloudflare Workers — three commands.
carrier site create [dir] [--name --domain --accent --yes]Scaffold a white-labeled eSIM storefront from the Mango template, with brand config and generated logo.
carrier site deploy [dir] [--name <worker>]Install deps, build, and deploy the storefront to Cloudflare Workers (needs wrangler login).
carrier site logo [dir]Regenerate the storefront logo — SVG always; PNG when an image key is available.
End to end
carrier site create ./my-storefront --name "Nomad Mobile" --accent "#ff5a1f"
cd my-storefront && pnpm install && pnpm dev # local preview
carrier site deploy ./my-storefront # build + deploy (npx wrangler login first)Re-brand anytime by editing src/brand.config.ts in the scaffolded project.
MCP stdio mode
The same package ships carrier-mcp, a local stdio MCP server for Claude Desktop, Cursor, Windsurf and any MCP-compatible client. Your OCS token stays on your machine — no outbound auth call to Carrier.
Run directly
ESIMVAULT_API_TOKEN=<your-token> npx -y -p @carrierllc/mcp carrier-mcpClaude Desktop / Cursor / Windsurf — mcp.json
{
"mcpServers": {
"carrier": {
"command": "npx",
"args": ["-y", "-p", "@carrierllc/mcp", "carrier-mcp"],
"env": { "ESIMVAULT_API_TOKEN": "<your-token>" }
}
}
}Prefer the hosted server? (zero-cred, OAuth on first use)
claude mcp add --transport http carrier https://mcp.carrier.llc/mcpFull tool reference: API Reference · MCP Server architecture
Troubleshooting
“No headless token in the environment”
Fleet commands and carrier ask need a credential. Export CARRIER_API_KEY=ak_… (Console → Settings → API Keys), or use the interactive Claude path where OAuth runs on first use.
MCP returns 401 / 403
The key was rejected. Confirm it is a valid org key from app.carrier.llc, and that OCS onboarding is complete (carrier open onboarding).
brew install fails on a pre-release macOS
If Homebrew reports Xcode as outdated, fall back to npm i -g @carrierllc/mcp. Also make sure you ran brew trust --tap Lifecycle-Innovations-Limited/carrier — Homebrew 5+ refuses untrusted third-party formulae.
`claude` CLI not on PATH during plugin install
The plugin files are still copied; finish wiring manually: claude mcp add --transport http carrier https://mcp.carrier.llc/mcp.
A write command did nothing
By design. Write commands preview as a dry run; add --commit to apply the change.
Usage window rejected
OCS caps usage queries at 7 days. The CLI clamps wider windows and tells you when it moved the start date.