Skip to main content
Glama

Update trunk origination URI

update_origination_uri
DestructiveIdempotent

Change a Vobiz origination URI's label and routing priority to promote a failover destination to primary. Requires uri_id, name, priority, and confirmation.

Instructions

Replace a Vobiz origination URI's label and priority, for example to promote a failover destination to primary. Both name and priority are required; resend the current value you keep. To point at a different host, create a new origination URI and delete this one; weight and enabled are managed in the Vobiz console. Read current values with list_origination_uris first. A priority change applies to the next outbound call on every trunk using the URI. An unknown uri_id raises not_found. Gated by VOBIZ_ENABLE_PROVISIONING and confirm: true.

Input Schema

NameRequiredDescriptionDefault
nameYesLabel of 1-255 characters (resend the current one to keep it). Returned by Vobiz as `description`.
uri_idYesOrigination URI UUID: the id from list_origination_uris or create_origination_uri. Unknown ids raise not_found.
confirmYesMust be true, set only after the user explicitly approved: changing this origination URI.
priorityYesRouting priority, 1-1000: lower is tried first (1 = primary, 2+ = failover). URIs sharing a priority split traffic by weight.

Output Schema

NameRequiredDescriptionDefault
okNoTrue on success. On a failure the result is isError with ok: false plus `error` (kind), `message`, `retryable` and sometimes `http_status`.
updatedNoTrue when the change was applied by this call.
http_statusNoHTTP status Vobiz answered with.
origination_uriNoThe URI after the change.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.4.2
    • changedInput schema / properties / name / description
      Previous value: -"Label (resend the current one to keep it)."New value: +"Label of 1-255 characters (resend the current one to keep it). Returned by Vobiz as `description`."
    • changedInput schema / properties / priority / description
      Previous value: -"Routing priority: lower is tried first (1 = primary, 2+ = failover)."New value: +"Routing priority, 1-1000: lower is tried first (1 = primary, 2+ = failover). URIs sharing a priority split traffic by weight."
    • addedInput schema / properties / uri_id / description
      Added value: +"Origination URI UUID: the id from list_origination_uris or create_origination_uri. Unknown ids raise not_found."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "http_status": {
      +      "description": "HTTP status Vobiz answered with.",
      +      "type": "number"
      +    },
      +    "ok": {
      +      "description": "True on success. On a failure the result is isError with ok: false plus `error` (kind), `message`, `retryable` and sometimes `http_status`.",
      +      "type": "boolean"
      +    },
      +    "origination_uri": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "account_id": {
      +              "description": "Owning account Auth ID.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "created_at": {
      +              "description": "Creation timestamp.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "description": {
      +              "description": "Label given as name when the URI was created.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "enabled": {
      +              "description": "False while the destination is switched off.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "id": {
      +              "description": "Origination URI UUID; use it as primary_uri_uuid or fallback_uri_uuid on a trunk or uri_id here.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "priority": {
      +              "description": "Failover order: lower is tried first.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "transport": {
      +              "description": "SIP transport used to reach it: udp, tcp or tls.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "updated_at": {
      +              "description": "Last-change timestamp.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "uri": {
      +              "description": "SIP destination, e.g. sip:sbc.example.com:5060.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "weight": {
      +              "description": "Load-balancing weight among URIs of the same priority (higher gets more traffic).",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The URI after the change."
      +    },
      +    "updated": {
      +      "const": true,
      +      "description": "True when the change was applied by this call.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.1

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare a destructive, idempotent, open-world write; the description adds substantial context beyond them: the priority change takes effect on the next outbound call across every trunk using the URI, unknown uri_id raises not_found, and the call is gated by VOBIZ_ENABLE_PROVISIONING plus confirm: true. It also flags that both name and priority must be resent to avoid clearing values.

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?

The core action and its motivation lead, followed by prerequisites, exclusions, side effects, error behavior, and gating in descending order of importance. Every sentence carries operational information with no 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?

With an output schema present, return values need not be described, and the annotations already carry the safety profile. The description covers prerequisites, side effects, error semantics, and the confirm/provisioning gates, leaving nothing an agent needs in order 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 genuine value: it emphasizes that both name and priority are required and that unchanged values must be resent, and it documents negative constraints (weight and enabled are not settable here). It does not add format or syntax detail beyond 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: replacing a Vobiz origination URI's label and priority. It also gives a concrete motivating example (promote a failover destination to primary), which makes the operation's intent unmistakable and separates it from create/delete/list_origination_uri siblings.

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 names when to use it (promote failover to primary), when not to (to change host, create a new URI and delete this one), and a prerequisite action (read current values with list_origination_uris first). It also tells the agent which fields are out of scope because they live in the console.

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

Deploy Server

Other Tools