Skip to main content
Glama

List SIP endpoints

list_sip_endpoints
Read-only

Lists SIP endpoints on a Vobiz account, showing registration status, SIP URI, username, alias, and attached application; filter by username, alias, app, or sub-account.

Instructions

List the SIP endpoints on this Vobiz account: soft-phones, desk phones and WebRTC clients that register at registrar.vobiz.ai. Shows each endpoint's endpoint_id, username, alias, SIP URI, attached application and whether a device is registered. Filter by username, alias, application or sub-account; for one endpoint's live registration details (contact, expiry, user agent) use get_sip_endpoint. Pagination is stateless: pass limit and offset on every call (nothing is saved between calls) and follow pagination.next_offset. Passwords are never shown here. The user can view or reset them in the Vobiz console.

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.
sub_accountNoOnly endpoints owned by this sub-account (Auth ID SA_...).
alias_containsNoOnly endpoints whose alias contains this text.
application_idNoOnly endpoints attached to this application (app_id from list_applications).
username_containsNoOnly endpoints whose username contains this text (letters, digits, _).
without_applicationNotrue = only endpoints with no application attached; false = only endpoints that have one. Omit for both.

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.4.2
    • changedInput schema / properties / alias_contains / description
      Previous value: -"Filter: alias contains this text."New value: +"Only endpoints whose alias contains this text."
    • changedInput schema / properties / application_id / description
      Previous value: -"Filter: endpoints attached to this application."New value: +"Only endpoints attached to this application (app_id from list_applications)."
    • 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."
    • changedInput schema / properties / sub_account / description
      Previous value: -"Filter: endpoints of this sub-account."New value: +"Only endpoints owned by this sub-account (Auth ID SA_...)."
    • changedInput schema / properties / username_contains / description
      Previous value: -"Filter: username contains this text."New value: +"Only endpoints whose username contains this text (letters, digits, _)."
    • changedInput schema / properties / without_application / description
      Previous value: -"true = only endpoints with no application attached."New value: +"true = only endpoints with no application attached; false = only endpoints that have one. Omit for both."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "description": "Endpoints in this page.",
      +      "type": "number"
      +    },
      +    "endpoints": {
      +      "description": "Endpoints; empty when the account has none.",
      +      "items": {
      +        "additionalProperties": {},
      +        "description": "Endpoint object as Vobiz returned it; any password field is replaced with [redacted].",
      +        "properties": {
      +          "alias": {
      +            "description": "Friendly name.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "allow_message": {
      +            "description": "Messaging permitted.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "allow_video": {
      +            "description": "Video calls permitted.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "allow_voice": {
      +            "description": "Voice calls permitted.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "application": {
      +            "description": "Attached application: an app_id string in lists, an object with app_id, app_name and answer_url in get_sip_endpoint, or null."
      +          },
      +          "created_at": {
      +            "description": "Creation timestamp.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "endpoint_id": {
      +            "description": "Numeric endpoint ID.",
      +            "type": [
      +              "string",
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "resource_uri": {
      +            "description": "API path of the endpoint.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sip_registered": {
      +            "description": "\"true\" while a device is registered, otherwise \"false\".",
      +            "type": [
      +              "string",
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "sip_registration": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": {},
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Present only while registered: contact, expires, user_agent, received."
      +          },
      +          "sip_uri": {
      +            "description": "SIP URI of the endpoint (sip:username@registrar.vobiz.ai).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sub_account": {
      +            "description": "Owning sub-account Auth ID, or null.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "updated_at": {
      +            "description": "Last-change timestamp.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "username": {
      +            "description": "SIP username the device registers with.",
      +            "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.6/5.0
Behavior5/5

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

Annotations cover only readOnlyHint/openWorldHint, and the description adds real behavioral context beyond them: pagination is stateless with nothing persisted between calls, next_offset must be followed, and passwords are deliberately excluded with the console as the escape hatch. No annotation contradiction.

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 resource and its members, then filtering, then the alternative tool, then pagination and credential notes — a logical progression with no padding. It is dense, but every sentence still serves a purpose; only the password sentence is marginal.

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 no explanation, and the description still adds filtering behavior, stateless pagination, the sibling routing, and credential handling. Nothing needed to invoke this zero-required-parameter list tool correctly is missing.

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 the baseline is 3. The description's filter list (username, alias, application, sub-account) and the limit/offset instructions largely restate what the schema already documents field-by-field, adding little new parameter meaning.

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?

Specific verb+resource ('List the SIP endpoints on this Vobiz account') with concrete scope detail (soft-phones, desk phones, WebRTC clients registering at registrar.vobiz.ai). It also names the enumerated fields returned and explicitly distinguishes itself from get_sip_endpoint, which handles single-endpoint detail.

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?

Names the alternative tool (get_sip_endpoint) and the exact condition that selects it ('for one endpoint's live registration details'). It also provides filter axes and states what the tool is not for (password viewing/reset → Vobiz 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