Skip to main content
Glama

Assign DIDs to SMS trunk

assign_did_to_sms_trunk
DestructiveIdempotent

Route incoming SMS of one or MANY of the customer's purchased DIDs to an SMS trunk in a single call: did_ids takes 1..100 DID UUIDs and sms_trunk_id the target trunk — or pass null / omit sms_trunk_id to bulk UNASSIGN them (incoming SMS is then disabled). The batch is all-or-nothing: every id must resolve to a DID in the customer account and every DID must pass validation (the SMS trunk must be inbound-capable and each DID in an SMS-enabled group), otherwise NOTHING is changed and the error names the offending ids or number. Returns the SMS trunk (or null when unassigning), the affected DID numbers and their count; a number whose incoming SMS already routed elsewhere is reported as re-routed FROM its previous trunk (assigning replaces the existing routing).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
did_idsYesUUIDs of the DIDs to configure (1..100, all must belong to the customer).
sms_trunk_idNoUUID of the SMS trunk to route incoming SMS to. Pass null (or omit) to unassign the DIDs (disable incoming SMS).

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructive=true and idempotent=true, and the description corroborates rather than contradicts them. It adds substantial beyond-annotation detail: all-or-nothing batch atomicity, the validation preconditions (inbound-capable trunk, SMS-enabled group), error behavior naming offending ids, and the re-routing side effect when a number was already routed.

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

Conciseness4/5

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

A single dense but front-loaded passage leading with the core action and immediately following with the batch/unassign mechanics. Some validation detail is packed into parentheticals, but every clause carries operational information rather than filler.

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 two-parameter mutation with no output schema, the description covers return values (the trunk or null, affected numbers, count), batch failure semantics, and the disabled-incoming-SMS outcome of unassigning. An agent has everything needed to invoke it correctly.

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 the baseline is 3, but the description adds real meaning: the interdependence that every id must belong to the customer account and pass group/trunk validation, and that omitting sms_trunk_id is an unassign rather than an error. The 1..100 range itself is already in the 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 and resource — routing incoming SMS for one or many DIDs to an SMS trunk — plus the scope (single batch call) and the inverse operation (bulk unassign). The 'incoming SMS ... SMS trunk' framing distinguishes it from voice-oriented siblings like assign_did_to_trunk and assign_did_to_capacity_group.

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?

Clear context for both directions of use: assign by providing sms_trunk_id, or unassign by passing null/omitting it, with the consequence (incoming SMS disabled) spelled out. It never explicitly names a sibling alternative to defer to, so it stops short of a 5.

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.

Resources