Skip to main content
Glama

switch_create_supplier

MUTATES STATE. Create an external supplier vendor trunk (SIP host/port/transport, auth, codecs, default rate, capacity, CPS, settlement mode) and/or its SMS delivery (HTTP URL or SMPP bind). Needs a label plus at least one way to deliver traffic: sipHost, smsDeliveryUrl, or smppHost with smppSystemId. A new trunk may be held as draft until it passes readiness checks. The provisioning entry point for a termination vendor. Requires an active Switch subscription (402 SWITCH_SUBSCRIPTION_REQUIRED otherwise) and a full-access API key (scoped keys need switch:manage). Test keys are NOT sandboxed here: they read and change your live Switch data.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "label": "<label>"
    },
    "name": "switch_create_supplier"
  }
}

Input Schema

NameRequiredDescriptionDefault
labelYesSupplier name
maxCpsNoMax calls per second
statusNoTrunk status
balanceNoPrepaid credit remaining, in USD
sipHostNoSIP host IP/hostname (voice termination)
sipPortNoSIP port
smppTpsNoSMPP throughput cap, messages per second
capacityNoChannel capacity (concurrent calls)
currencyNoISO 4217 currency code (default USD)
smppHostNoSMPP SMSC host
smppPortNoSMPP port
transportNoTransport; defaults udp
techPrefixNoTech prefix (digits/*/# only)
portalEmailNoSupplier portal login email
smppBindTypeNoSMPP bind type
smppPasswordNoSMPP password (stored sealed, never returned)
smppSystemIdNoSMPP system_id (max 16)
settlementModeNoAP payable or prepaid wallet draw
smsDeliveryUrlNoHTTP SMS delivery URL
sipAuthPasswordNoSIP auth password
sipAuthUsernameNoSIP auth username
supportedCodecsNoCodec list
billingIncrementNoBilling increment in seconds as "initial/subsequent", e.g. 60/60
smsDeliveryMethodNoSMS termination: http (smsDeliveryUrl) or smpp (bind to the SMSC below)
defaultRatePerUnitNoDefault cost rate per unit in USD (per minute for voice, per message for SMS)

Output Schema

NameRequiredDescriptionDefault
idNostring
labelNostring
maxCpsNointeger
sourceNostring: "external" for a carrier you entered; "marketplace" for a trunk promoted from a marketplace purchase
statusNostring: One of: active, disabled, draft, testing, draining, fault.
balanceNoPrepaid credit remaining with this supplier (prepaid settlement)
sipHostNostring: Null on a marketplace trunk: the seller address is never disclosed
sipPortNointeger
capacityNointeger: Max concurrent channels
currencyNostring
createdAtNostring: ISO-8601 timestamp (UTC)
mediaModeNostring: One of: proxy, direct.
reachableNoboolean
transportNostring: One of: udp, tcp, tls.
updatedAtNostring: ISO-8601 timestamp (UTC)
supplierIdNostring: The owning provider; null = ungrouped
techPrefixNostring
reachCheckedAtNostring: ISO-8601 timestamp (UTC)
settlementModeNostring: One of: ap, prepaid.
sipAuthUsernameNostring
smppPasswordSetNoboolean
billingIncrementNostring
smsDeliveryMethodNostring: One of: http, smpp.
defaultRatePerUnitNoCost per minute used when no deck row matches
sipAuthPasswordSetNoboolean: Whether a SIP password is stored. The value is only readable via GET /switch/suppliers/{id}/credentials

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations: discloses that a new trunk may sit in draft until readiness checks pass, that a 402 SWITCH_SUBSCRIPTION_REQUIRED is returned without an active subscription, that scoped keys need switch:manage, and the critical warning that test keys are NOT sandboxed and mutate live data. Annotations only cover readOnly/idempotent/destructive hints, so this is substantial added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Leads with the capitalized 'MUTATES STATE.' warning, then what it creates, then prerequisites, then auth/error conditions. Six dense sentences, each carrying distinct operational information with no restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 25-parameter mutation tool with an output schema present, the description covers everything an agent needs before calling: mutation semantics, minimum viable payload, auth/scope requirements, failure mode (402), and the non-sandboxed test-key hazard. Return values are correctly left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so per-field meaning is already documented, but the description adds a cross-parameter constraint the schema cannot express cleanly: at least one of sipHost, smsDeliveryUrl, or smppHost+smppSystemId must be supplied. That required-field-group rule genuinely helps invocation beyond the flat schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create) and resource (external supplier vendor trunk) and enumerates exactly what the trunk carries (SIP host/port/transport, auth, codecs, rate, capacity, CPS, settlement, SMS delivery). It clearly distinguishes itself from siblings like switch_create_customer and switch_list_suppliers by calling itself 'the provisioning entry point for a termination vendor.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit prerequisites: needs a label plus at least one delivery path (sipHost, smsDeliveryUrl, or smppHost with smppSystemId), and notes the subscription and API-key scope needed. It does not name a sibling alternative (e.g., switch_list_suppliers to check existing suppliers first), so it stops just short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.