@carrierllc/sdk
v0.2.21
Published
TypeScript client for the Carrier API, MCP server, and CLI.
Downloads
1,686
Readme
@carrierllc/sdk
TypeScript client for the Carrier API, the hosted MCP server, and the carrier CLI. intents.create issues one eSIM. call uses an OpenAPI operation id. Mcp speaks Streamable HTTP. Cli runs the binary with an argument list. restTools, mcpTools, and cliTools return plain tool objects. Pass inputSchema through the Vercel AI SDK jsonSchema() helper. This package does not depend on that SDK.
import { Carrier } from "@carrierllc/sdk"
const carrier = new Carrier(process.env.CARRIER_API_KEY ?? "")
const intent = await carrier.intents.create(
{ plan: "test_global_1gb", metadata: { order: "123" } },
{ idempotencyKey: "order_123" },
)intents.create posts to /v1/connectivity/intents. Issuance requires a stable caller key matching [A-Za-z0-9][A-Za-z0-9_.:-]{0,199} (1–200 ASCII characters). The same key and body identify the original operation; they do not prove provider exactly-once completion. After transport/body loss, CarrierError has code: "outcome_unknown", the original idempotencyKey, and retryable: false. The SDK sends once, disables redirects, and never generates a replacement key. Preserve the key and reconcile; do not automatically retry or reissue. products.create posts to /v1/connectivity/products. The price on a product is catalogue data. Neither call debits a wallet.
import { Cli, Mcp, restTools } from "@carrierllc/sdk"
const accounts = await carrier.call("list_reseller_accounts")
const issued = await carrier.call("create_connectivity_intent", {
body: { plan: "test_global_1gb" },
idempotencyKey: "order_123",
})
const session = new Mcp(process.env.ESIMVAULT_API_TOKEN ?? "")
const tools = await session.listTools()
await session.callTool("list_subscribers", { limit: 5 })
const cli = new Cli()
await cli.run(["subscribers", "list", "--limit", "5"])
const agentTools = restTools(carrier)new Mcp(token, { auth: "bearer" }) sends an OAuth access token or a Clerk organization API key. The default sends ?TOKEN= to https://mcp.carrier.llc/mcp. Cli never invokes a shell. Catalog entries marked internal do not accept a customer API key.
npm install @carrierllc/[email protected] installs this surface. 0.1.0 only creates connectivity intents and products. The published tarball is the compiled dist output, including the generated operation catalog.
