Skip to main content
Glama

Update PSTN Voice IN Trunk

update_pstn_trunk
Destructive

Update one of the authenticated customer's PSTN / call-forwarding Voice IN Trunks. Pass the trunk id and ONLY the fields to change; fields have the same semantics as in create_pstn_trunk. Changing destination is confirmation-gated: the preview shows the new destination's per-minute rate (amounts are in USD) — show the price to the user before confirming. Updates without a destination change apply immediately. For SIP trunks use update_sip_trunk; for phone.systems™ trunks use update_phone_systems_trunk.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the PSTN Voice IN Trunk to update.
popNoDIDWW Point of Presence the trunk is served from. Null unpins the trunk and lets DIDWW pick.
nameNoNew friendly name of the Voice IN Trunk.
weightNoLoad-balancing weight among trunk-group members of the same priority; higher is preferred (default 65535).
priorityNoPriority of this trunk; DIDWW contacts the lowest-numbered priority first. Range 0-65535.
cli_formatNoFormat of the caller ID sent to the customer equipment (default e164).
cli_prefixNoPrefix prepended to the caller ID. Letters, digits, "+" and "#" only, up to 7 characters. Null removes the prefix.
descriptionNoDescription of the Voice IN Trunk. Null clears it.
destinationNoNew phone number to forward calls to, digits only (e.g. "48452006332"). Confirmation-gated.
capacity_limitNoMaximum number of simultaneous calls for the Voice IN Trunk. Null lifts the limit.
trunk_group_idNoVoice IN Trunk Group UUID to assign the trunk to (or null to detach).
ringing_timeoutNoSeconds to wait for a 200 OK after a 18x ringing response before ending the routing attempt with the "Ringing timeout" disconnect code. Null restores the platform default.
confirmation_tokenNoOnly needed when changing `destination`. Leave empty on the first call — it returns the per-minute rate preview + a confirmation_token and changes nothing; re-call with the token to apply the change.
src_number_list_idNoVoice IN Number List UUID (from list_voice_in_number_lists) to apply as the caller-ID (source number) filter on this trunk, or null to detach the current one.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered; the description adds genuine behavioral detail beyond that — the two-phase destination change (preview + confirmation_token, USD pricing shown to the user) and that non-destination updates apply immediately. It does not, however, describe what a rejected/failed update looks like or any permission requirements.

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?

Front-loaded with the core action and scope, then alternatives, then the gating caveat — a sensible priority order with no filler sentences. The mid-sentence em-dash clause about USD pricing is slightly dense but still earns its place.

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

Completeness4/5

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

For a 14-parameter mutation with no output schema, the description covers the critical non-obvious behaviors: partial updates, sibling routing, and the confirmation-gated destination path. It omits any statement of required permissions/account scope and error behavior, which is the remaining gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all 14 parameters are already documented, including the confirmation_token protocol and destination semantics. The description adds only a deferral ('fields have the same semantics as in create_pstn_trunk') and the USD note, so the baseline 3 is appropriate.

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 ('Update ... PSTN / call-forwarding Voice IN Trunks') and explicitly disambiguates from the two nearest siblings: update_sip_trunk and update_phone_systems_trunk. An agent can pick the right tool without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit routing rules ('For SIP trunks use update_sip_trunk; for phone.systems™ trunks use update_phone_systems_trunk'), the partial-update convention ('pass the trunk id and ONLY the fields to change'), and the condition that triggers the confirmation flow versus immediate application.

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