Skip to main content
Glama

List trunk IP ACL entries

list_ip_acl_entries
Read-only

Audit account-wide IPv4 addresses and CIDR ranges trusted for SIP trunk IP authentication, returning ID, label, enabled state, and paginated results for PBXs, SBCs, or carriers.

Instructions

List the IP access control entries on this Vobiz account: the IPv4 addresses and CIDR ranges allowed to send SIP traffic to trunks without digest credentials, with id, label and enabled state. Entries are account-wide and IP authentication is checked before digest authentication on every trunk. Use it to audit which PBXs, SBCs or carriers are trusted; add with add_ip_acl_entry, change with update_ip_acl_entry, remove with delete_ip_acl_entry. Pagination is stateless: pass limit and offset on every call (nothing is saved between calls) and follow pagination.next_offset.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_ip_acl_entries"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoRecords per page, 1-100. Defaults to the server's VOBIZ_DEFAULT_PAGE_SIZE (20).
offsetNoNumber of records to skip (default 0); pass pagination.next_offset from the previous page.

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.
countNoIP ACL entries in this page.
paginationNoStateless paging: pass next_offset as offset to continue.
ip_acl_entriesNoIP ACL entries; empty when the account has none.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.4.2
    • changedInput schema / properties / limit / description
      Previous value: -"Max 100. Defaults to the server's VOBIZ_DEFAULT_PAGE_SIZE (20)."New value: +"Records per page, 1-100. Defaults to the server's VOBIZ_DEFAULT_PAGE_SIZE (20)."
    • addedInput schema / properties / offset / description
      Added value: +"Number of records to skip (default 0); pass pagination.next_offset from the previous page."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "description": "IP ACL entries in this page.",
      +      "type": "number"
      +    },
      +    "ip_acl_entries": {
      +      "description": "IP ACL entries; empty when the account has none.",
      +      "items": {
      +        "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 entry was created.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "enabled": {
      +            "description": "False while the entry is switched off.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "IP ACL entry UUID; use it as ipacl_uuid on a trunk or ip_acl_id here.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "ip_address": {
      +            "description": "Allow-listed IPv4 address or CIDR block.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "updated_at": {
      +            "description": "Last-change timestamp.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "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"
      +    },
      +    "pagination": {
      +      "additionalProperties": {},
      +      "description": "Stateless paging: pass next_offset as offset to continue.",
      +      "properties": {
      +        "has_more": {
      +          "description": "True when another page exists.",
      +          "type": "boolean"
      +        },
      +        "limit": {
      +          "description": "Page size applied.",
      +          "type": "number"
      +        },
      +        "next_offset": {
      +          "description": "offset to pass for the next page, or null on the last page.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "offset": {
      +          "description": "Offset applied.",
      +          "type": "number"
      +        },
      +        "total": {
      +          "description": "Total matching records, or null when Vobiz did not report one.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds non-obvious behavioral context: entries are account-wide, IP authentication is evaluated before digest authentication on every trunk, and pagination is stateless with nothing persisted between calls. The stateless-pagination warning in particular prevents a real misuse pattern.

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?

Four sentences, front-loaded with the resource definition, then behavior, then routing, then pagination mechanics. Each sentence earns its place, though the single dense paragraph could be split to make the pagination caveat more scannable.

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-value explanation is unnecessary. For a two-parameter read tool with full annotation coverage, the description supplies everything an agent needs: scope, auth ordering, sibling routing, and pagination protocol.

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 limit/offset bounds and defaults are already documented, making 3 the baseline. The description goes slightly beyond the schema by explaining that pagination state is not retained server-side and that pagination.next_offset from the previous page should be passed on every call, which is operational meaning the schema does not convey.

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 ('List the IP access control entries on this Vobiz account') and immediately defines the resource's semantics: IPv4 addresses/CIDR ranges permitted to send SIP traffic without digest credentials. It is clearly distinguishable from sibling CRUD tools like add_ip_acl_entry and update_ip_acl_entry, which it names directly.

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 states when to use it ('audit which PBXs, SBCs or carriers are trusted') and routes to the alternatives by name for each other operation (add/update/delete). No inference is required to pick this tool over its siblings.

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