Skip to main content
Glama

Update Voice IN Number List

update_voice_in_number_list
Destructive

Update one of the authenticated customer's Voice IN Number Lists (caller-ID filters for inbound calls). Pass the list id and only the fields to change; mode, default_action and entry semantics are as in create_voice_in_number_list. remove_numbers entries are matched EXACTLY by their stored value — do NOT guess formats ("+4930..." and "4930..." are different entries): look up the exact stored values with get_voice_in_number_list first, or use values you added earlier in this conversation. Changes apply immediately to every trunk the list is attached to, and atomically — on any error nothing is changed. Returns the updated list or a readable error (e.g. naming the remove_numbers entries that do not exist in the list).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the Voice IN Number List to update (from list_voice_in_number_lists).
modeNoNew matching mode. Applies to ALL existing entries at once.
nameNoNew name of the list.
add_numbersNoEntries to add — same format rules as `numbers` in create_voice_in_number_list (up to 500 per call). Values already in the list are rejected.
default_actionNoNew action for calls whose caller number matches no entry.
remove_numbersNoExisting entries to remove, matched EXACTLY by their stored value (character-for-character: "+4930..." and "4930..." are different entries; entries are unique within a list). Look up exact values via get_voice_in_number_list — any unknown value makes the WHOLE update fail and roll back (the unmatched values are named in the error).
add_numbers_actionNoAction the added entries carry: "allow" or "reject". Default: the opposite of the list default_action.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, idempotentHint=false and readOnlyHint=false, and the description adds substantial context beyond them: changes apply immediately to every attached trunk, updates are atomic (nothing changes on error), and errors name the offending remove_numbers values. This is exactly the extra behavioral detail an agent needs for a destructive mutation.

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-loads purpose, then the field-selection guidance, then the exact-match warning and atomicity guarantee in a logical order. It is dense but nearly every clause is actionable; the exact-match caveat appears in both description and schema, a minor redundancy.

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?

With no output schema, the description still states the return ('the updated list or a readable error') and covers the destructive/atomic semantics an agent needs. For a 7-parameter mutation tool, nothing essential to correct invocation is missing.

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; the description adds meaning by warning that remove_numbers entries match character-for-character with a concrete '+4930...' vs '4930...' example and by pointing to create_voice_in_number_list for mode/default_action semantics. Some of the remove_numbers detail duplicates the schema, so it does not fully exceed the schema's contribution.

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+resource ('Update ... Voice IN Number Lists') and immediately glosses the domain ('caller-ID filters for inbound calls'), so the agent knows exactly what entity is being modified. It is distinguishable from the create/get/list/delete siblings of the same resource.

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?

Explicitly says to pass the list id and only the fields to change, defers mode/default_action/entry semantics to create_voice_in_number_list, and prescribes a prerequisite workflow: look up exact stored values with get_voice_in_number_list first, or reuse values added earlier in the conversation. The when-and-how is fully specified.

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