Skip to main content
Glama

Update trunk credential

update_trunk_credential
DestructiveIdempotent

Rotate a trunk credential's SIP password, pause or re-enable its authentication, or edit its description on Vobiz. Only the fields you pass change; the username stays fixed.

Instructions

Rotate a trunk credential's password, enable or disable it, or change its description on Vobiz. The username is permanent; to rename, create a new credential and delete the old one. A new password takes effect for the next SIP authentication; only the fields you pass change. Prefer enabled: false over delete_trunk_credential when access may be needed again. Returns the updated credential with the password redacted. An unknown credential_id raises not_found. Gated by VOBIZ_ENABLE_PROVISIONING and confirm: true.

Input Schema

NameRequiredDescriptionDefault
confirmYesMust be true, set only after the user explicitly approved: changing this trunk credential.
enabledNofalse pauses authentication with this credential without deleting it; true re-enables it.
passwordNoSECRET: the trunk credential's new SIP password (8+ characters; 12+ with mixed case, digits and symbols recommended). It is sent to Vobiz once and never shown again.
descriptionNoFree-text note of up to 255 characters, e.g. why or when the password was rotated.
credential_idYesTrunk credential UUID: the id from list_trunk_credentials or create_trunk_credential. Unknown ids raise not_found.

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`.
noteNoReminder that passwords are never returned here.
changedNoNames of the fields sent to Vobiz.
updatedNoTrue when the change was applied by this call.
credentialNoThe credential after the change, password redacted.
http_statusNoHTTP status Vobiz answered with.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.4.2
    • addedInput schema / properties / credential_id / description
      Added value: +"Trunk credential UUID: the id from list_trunk_credentials or create_trunk_credential. Unknown ids raise not_found."
    • addedInput schema / properties / description / description
      Added value: +"Free-text note of up to 255 characters, e.g. why or when the password was rotated."
    • changedInput schema / properties / enabled / description
      Previous value: -"false pauses authentication with this credential without deleting it."New value: +"false pauses authentication with this credential without deleting it; true re-enables it."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "changed": {
      +      "description": "Names of the fields sent to Vobiz.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "credential": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "account_id": {
      +              "description": "Owning account Auth ID.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "created_at": {
      +              "description": "Creation timestamp.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "description": {
      +              "description": "Free-text note, if any.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "enabled": {
      +              "description": "False while authentication with this credential is paused.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "id": {
      +              "description": "Credential UUID; use it as credential_uuid on a trunk or credential_id here.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "password": {
      +              "description": "Always [redacted]; the real password is never returned.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "realm": {
      +              "description": "SIP digest realm the client must present, {account_id}.sip.vobiz.ai.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "updated_at": {
      +              "description": "Last-change timestamp.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "username": {
      +              "description": "SIP username (permanent).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The credential after the change, password redacted."
      +    },
      +    "http_status": {
      +      "description": "HTTP status Vobiz answered with.",
      +      "type": "number"
      +    },
      +    "note": {
      +      "description": "Reminder that passwords are never returned here.",
      +      "type": "string"
      +    },
      +    "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"
      +    },
      +    "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 only give the safety profile (destructive, idempotent, open-world). The description adds substantive behavior beyond them: password is redacted in the return, a new password takes effect at the next SIP authentication, only passed fields change (true partial-update semantics despite the mutation), unknown credential_id raises not_found, and the env-var/confirm gate. No contradiction with annotations.

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?

Five tight sentences, front-loaded with the three supported operations before edge cases (rename), the destructive-alternative guidance, and the return/error/gating notes. Every sentence carries distinct information; nothing is padding.

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?

An output schema exists so return values need not be re-explained, and annotations cover the safety profile. The description fills the remaining gaps an agent needs: partial-update behavior, rename limitation, error on unknown id, secret redaction, and the provisioning gate.

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 still adds meaning the schema does not: 'The username is permanent', that only supplied fields change, and that a new password only applies at next SIP auth. Those are semantics beyond the field-level descriptions, though parameter-by-parameter detail is largely left to 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 ('Rotate a trunk credential's password, enable or disable it, or change its description') and enumerates exactly the mutable fields. It also carves out what it cannot do (rename) and routes that case to create/delete, distinguishing it cleanly from create_trunk_credential and delete_trunk_credential. An agent can pick it correctly 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?

Explicitly names the alternative tool and the condition selecting it: 'Prefer enabled: false over delete_trunk_credential when access may be needed again.' It also states the gating prerequisites (VOBIZ_ENABLE_PROVISIONING and confirm: true), which tells the agent when the call will even succeed.

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