Skip to main content
Glama

List phone numbers

list_phone_numbers
Read-only

List phone numbers on a Vobiz account and sub-accounts with status, capabilities, and fees. Filter by status or search by number digits.

Instructions

List the phone numbers on this Vobiz account and its sub-accounts with status, capabilities, linked application and fees (GET /numbers). Optional status filter and number search; omitted filters are not applied. Paging is stateless: pass page and per_page on every call and stop when pagination.has_more is false. For one number's details use get_phone_number_details; for only the numbers that can send SMS/MMS use list_messaging_numbers.

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_phone_numbers"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo1-based page number (default 1). Use pagination.next_page from the previous result.
searchNoDigits to match anywhere in the number (leading + optional), e.g. 91987 or +14155550123.
statusNoOnly numbers in this state: active (in service), pending_purchase, pending_release, released (no longer on the account), blocked or quarantined. Omit for every state.
per_pageNoNumbers per page, 1-100. Defaults to the server's VOBIZ_DEFAULT_PAGE_SIZE (20).

Output Schema

NameRequiredDescriptionDefault
okNoTrue on success; false when the result is an error (then error, message and retryable are set).
numbersNoNumbers on this page.
is_trialNoPresent and true when the account is still a trial account.
paginationNo
trial_messageNoVobiz's note about trial limits, when is_trial is true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.4.2
    • addedInput schema / properties / page / description
      Added value: +"1-based page number (default 1). Use pagination.next_page from the previous result."
    • changedInput schema / properties / per_page / description
      Previous value: -"Max 100. Defaults to the server's VOBIZ_DEFAULT_PAGE_SIZE (20)."New value: +"Numbers per page, 1-100. Defaults to the server's VOBIZ_DEFAULT_PAGE_SIZE (20)."
    • changedInput schema / properties / search / description
      Previous value: -"Filter by (part of) a phone number."New value: +"Digits to match anywhere in the number (leading + optional), e.g. 91987 or +14155550123."
    • addedInput schema / properties / status / description
      Added value: +"Only numbers in this state: active (in service), pending_purchase, pending_release, released (no longer on the account), blocked or quarantined. Omit for every state."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "is_trial": {
      +      "description": "Present and true when the account is still a trial account.",
      +      "type": "boolean"
      +    },
      +    "numbers": {
      +      "description": "Numbers on this page.",
      +      "items": {
      +        "description": "One phone number as Vobiz returns it: e164, status, capabilities (voice, sms...), linked application, sub-account, monthly and setup fees, billing dates."
      +      },
      +      "type": "array"
      +    },
      +    "ok": {
      +      "description": "True on success; false when the result is an error (then error, message and retryable are set).",
      +      "type": "boolean"
      +    },
      +    "pagination": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "has_more": {
      +          "description": "True when another page exists.",
      +          "type": "boolean"
      +        },
      +        "next_page": {
      +          "description": "Page number to pass next, or null on the last page.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "page": {
      +          "description": "Page that was returned.",
      +          "type": "number"
      +        },
      +        "per_page": {
      +          "description": "Page size that was applied.",
      +          "type": "number"
      +        },
      +        "returned": {
      +          "description": "Numbers on this page.",
      +          "type": "number"
      +        },
      +        "total": {
      +          "description": "Total matching numbers, or null when Vobiz did not report it.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "trial_message": {
      +      "description": "Vobiz's note about trial limits, when is_trial is true."
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description goes further by disclosing that paging is stateless and must be re-supplied every call, and names the termination condition (pagination.has_more is false) – real behavioral context an agent cannot infer from the annotations. It stops short of mentioning auth/permission requirements.

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?

Three dense sentences, front-loaded with purpose and scope before the filter and paging mechanics, then the sibling routing. Every clause carries information, though the single paragraph packs paging, filtering and alternatives tightly enough that a bulleted split would read better.

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-field documentation is unnecessary. With annotations covering the safety profile and the description covering scope, filter omission semantics, stateless pagination and sibling routing, an agent has everything needed to call this correctly.

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%: page, per_page, search and the status enum are all documented in the schema with formats, ranges and defaults. The description's 'optional status filter and number search; omitted filters are not applied' largely restates what the schema's status description already says ('Omit for every state'), so it adds little beyond the baseline.

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 phone numbers'), plus the scope ('on this Vobiz account and its sub-accounts') and what each row carries (status, capabilities, linked application, fees). The endpoint reference (GET /numbers) and the explicit disambiguation from get_phone_number_details and list_messaging_numbers make it unmistakable among 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 routes the agent: use this for the full list, get_phone_number_details for one number, list_messaging_numbers for SMS/MMS-capable numbers only. It also states the filter semantics ('omitted filters are not applied'), so the agent knows an unfiltered call returns everything rather than nothing.

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