@theyahia/voximplant-mcp
This server integrates Voximplant's cloud telephony API into MCP, enabling call management, SMS, recordings, ACD queues, routing, and account operations.
Call Management
Retrieve call history for a specified date range with pagination (
get_call_history)Initiate outbound calls via a routing rule (
start_call)View currently active call sessions (
get_active_calls)Access call recordings and transcription links for a given period (
get_recordings)
SMS & Messaging
Send individual SMS messages (
send_sms)Retrieve SMS history filterable by date range, sender, and recipient (
get_sms_history)Send bulk A2P SMS campaigns (up to 100 numbers) (
send_a2p_sms)Retrieve A2P SMS delivery history (
get_a2p_sms_history)
ACD / SmartQueue
Get ACD queue state and operator availability (
get_acd_state,get_sq_state)List ACD queues with skills and agent counts (
get_queues)Retrieve ACD skills catalog (
get_skills)
Routing & Applications
List Voximplant applications, optionally with rules/scenarios (
get_applications)Retrieve routing rules for a specific application (
get_rules)
VoxEngine Scenarios
List available VoxEngine scenarios (
get_scenarios)Update the code or name of a scenario (
update_scenario)
Phone Numbers & Caller IDs
List account phone numbers with SMS support info and bindings (
get_phone_numbers)List Caller IDs and their verification status (
get_caller_ids)
Account & Billing
Get account info (balance, tariff, limits) with sensitive fields like
api_keyhidden (get_account_info)Retrieve billing transaction history (
get_transaction_history)
Users
List users on the Voximplant account (
get_users)
Pre-built Skills (Prompts)
skill-call-history: Summarize call history for the last 24 hoursskill-account-info: Quickly retrieve account balance, tariff, and limits
Error Handling: Errors are returned as {"error": "..."} with an isError flag.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@theyahia/voximplant-mcpShow my recent call history"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-сервер для Voximplant — облачная телефония, звонки и SMS через ИИ
🌍 Часть WWmcp — коллекции из 46 MCP-серверов для развивающихся рынков (Россия, СНГ, MENA, Gulf, SE Asia, Africa). Единственная коллекция MCP, покрывающая не-западные API.
Если вы искали, как подключить Voximplant к нейросети, поднять историю звонков и записи разговоров или запустить обзвон и A2P-рассылку из чата — это оно. 21 инструмент и 2 скилла: звонки и их записи, SMS, сценарии VoxEngine, правила маршрутизации, очереди ACD/SmartQueue, телефонные номера и биллинг. Спрашиваете «сколько звонков потеряли вчера» — получаете цифру со ссылками на записи.
Установка
1. Получите ключи
VOXIMPLANT_ACCOUNT_ID и VOXIMPLANT_API_KEY — в панели управления Voximplant (раздел API).
Аутентификация по
api_keyофициально помечена как deprecated, но рабочая — её достаточно, если доступ к аккаунту есть только у вас. Современная альтернатива — service-account JWT (RS256); этот сервер использует классическийaccount_id+api_key.
2. Подключите сервер
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"voximplant": {
"command": "npx",
"args": ["-y", "@theyahia/voximplant-mcp"],
"env": {
"VOXIMPLANT_ACCOUNT_ID": "your-id",
"VOXIMPLANT_API_KEY": "your-key"
}
}
}
}Claude Code:
claude mcp add voximplant -e VOXIMPLANT_ACCOUNT_ID=your-id -e VOXIMPLANT_API_KEY=your-key -- npx -y @theyahia/voximplant-mcpVS Code / Cursor:
{
"servers": {
"voximplant": {
"command": "npx",
"args": ["-y", "@theyahia/voximplant-mcp"],
"env": {
"VOXIMPLANT_ACCOUNT_ID": "your-id",
"VOXIMPLANT_API_KEY": "your-key"
}
}
}
}Streamable HTTP:
npx @theyahia/voximplant-mcp --http
# Сервер: http://localhost:3000/mcp · health: http://localhost:3000/health · порт: PORT=8080Related MCP server: VoIPbin MCP Server
Инструменты (21)
Инструмент | Описание |
| История звонков за период |
| Инициировать исходящий звонок по правилу (номер передаётся сценарию через customData) |
| Состояние ACD-очередей: звонки в очереди, статусы операторов |
| Текущее состояние SmartQueue-очереди |
| Ссылки на записи разговоров (и transcription_url) за период |
| Список хранилищ записей |
| Отправить SMS |
| История SMS за период |
| История доставки A2P-SMS |
| ⚠️ Массовая A2P-рассылка (до 100 номеров) — действие с оплатой |
| Информация об аккаунте (баланс, тариф). Секреты ( |
| История биллинговых транзакций (расходы) |
| Список приложений (опц. с правилами/сценариями) |
| Правила маршрутизации приложения |
| Телефонные номера аккаунта (поддержка SMS, привязка) |
| Caller ID и статус их верификации |
| ACD-очереди (опц. с навыками и числом операторов) |
| Каталог навыков ACD для маршрутизации |
| Список сценариев VoxEngine |
| Обновить код/имя сценария VoxEngine |
| Список пользователей |
Формат вывода: инструменты возвращают pretty-JSON ответа API; ошибки приходят как
{ "error": "..." }с флагомisError. Ответget_account_infoпроходит строгий витлист — секретные поля (api_key,callback_salt) в него не попадают.
Скиллы (2)
Скилл | Описание |
| Сводка истории звонков за последние 24 часа |
| Информация об аккаунте Voximplant |
Примеры
Покажи историю звонков за вчера
Отправь SMS на +79001234567
Что сейчас в ACD-очередях — кто свободен?
Покажи баланс и расходы за январь
Какие у меня номера с поддержкой SMS?
Обнови сценарий 123 — добавь логирование
Начни звонок на +79001234567 по правилу 456
Дай ссылки на записи звонков за вчераWWmcp — связки с соседними серверами
Voximplant закрывает голос и SMS; соседние серверы из WWmcp дополняют сценарий:
tgstat-mcp— аналитика Telegram-каналовyookassa-mcp— платежи и чекиvk-ads-mcp— рекламные кампании VK Ads
Пример сценария: «Найди должников по платежам (yookassa), обзвони их голосом по сценарию (voximplant) и отправь SMS-напоминание тем, кто не ответил».
Разработка
npm install
npm run build # компиляция в dist/ (тесты исключены)
npm run typecheck # проверка типов, включая тесты
npm test # vitestПроверка живых предположений об API (имена методов, параметры) — в docs/VERIFICATION.md.
⭐ Поддержать
Если сервер полезен — поставьте звезду этому репозиторию и WWmcp. Это помогает другим найти коллекцию серверов для не-западных API.
Лицензия
MIT
Available Tools
23 toolsget_a2p_sms_historyB
История доставки A2P-SMS с фильтрами по номерам, статусу и периоду.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| to_date | No | Конец периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| from_date | No | Начало периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| source_number | No | Фильтр по номеру отправителя (SenderID) | |
| delivery_status | No | Фильтр по статусу доставки | |
| destination_number | No | Фильтр по номеру получателя |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the resource and filters, offering no information about side effects (e.g., read-only nature), pagination behavior, rate limits, or response format. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence with no filler. It conveys the essential purpose efficiently and is appropriately sized for a straightforward history retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 optional parameters and no output schema, the description is adequate but minimal. It does not mention that all filters are optional, nor does it describe the response structure or pagination defaults (though these are partially captured in the schema). An agent could call it correctly, but more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 7 parameters have individual descriptions. The tool description merely summarizes them as 'filters by numbers, status and period' without adding new semantics beyond what the schema already provides. Thus the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves A2P-SMS delivery history with filters, which distinguishes it from the sibling get_sms_history by specifying the A2P type. However, it does not explicitly contrast with siblings, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_sms_history or send_a2p_sms. The description only states what it does, not when it should be chosen, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoA
Получить информацию об аккаунте Voximplant (баланс, тариф, лимиты). Секретные поля (api_key, callback_salt) скрыты из ответа.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that secret fields (api_key, callback_salt) are hidden, which is useful. However, it does not mention authentication requirements, rate limits, or any side effects (though it is likely read-only). The disclosure adds some value but is incomplete for a read operation without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, two sentences, with the main purpose front-loaded and the security detail as a secondary note. Every sentence contributes value, and there is no unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple parameterless get operation, covering what is returned and what is hidden. However, it does not address error handling or how this tool fits into the broader toolset. Given the many sibling tools, a brief mention of when to use this over others would improve completeness, but the lack of output schema is mitigated by the explicit field list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema is empty with 100% coverage. The baseline for 0 parameters is 4; the description adds no parameter-specific information, which is acceptable given there are none. The schema already fully describes the input expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('get'), the resource ('account information'), and specifies the content (balance, tariff, limits). It distinguishes this tool from siblings like get_transaction_history or get_users by focusing on account-level settings, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_transaction_history or get_call_history. The description only states what it does, leaving the agent to infer the appropriate context. Since there are many sibling tools, explicit exclusions or conditions would be valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_acd_stateB
Получить состояние ACD-очередей Voximplant (звонки в очереди, статусы операторов).
| Name | Required | Description | Default |
|---|---|---|---|
| acd_queue_id | No | Фильтр по ID очереди ACD: число, список через запятую или 'any'. По умолчанию — все очереди. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It conveys that this is a state read operation and names the returned dimensions (queued calls and operator statuses), but it does not explicitly cover permissions, exact return shape, or any other behavioral constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loads the action, and contains no filler; the parenthetical adds a compact clarification of the queue state. It could be improved with explicit usage guidance rather than more text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter state query, the description is minimally adequate and clarifies what 'state' means. However, since there is no output schema, some return-structure details such as counts, arrays, status codesses, or empty-result behavior are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is already fully described in the schema, including filtering by ID/list/'any' and the default of all queues. The description adds no extra parameter meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: retrieve the state of Voximplant ACD queues, and it gives concrete meaning for that state: calls in queue and operator statuses. It is distinguishable from list-type tools like get_sq/queues by the 'state' focus, though it does not explicitly name a competing sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_sq_state, get_queues, or get_call_history, and no prerequisites or conditions are mentioned. The intended use is only inferable from the name and brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applicationsC
Список приложений Voximplant (опционально с правилами/сценариями).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| with_rules | No | Включить правила маршрутизации | |
| application_id | No | Фильтр по ID приложения | |
| with_scenarios | No | Включить сценарии | |
| application_name | No | Фильтр по имени приложения |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states that the tool lists applications, but does not mention that it is a read-only operation, whether it has side effects, or any pagination or performance implications. The lack of safety or side-effect information is a significant gap for a tool that may be called by an agent without prior knowledge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, brief sentence that front-loads the main purpose. It is concise, but perhaps too terse – it omits any elaboration on usage, defaults, or behavior. It is not verbose, but the brevity sacrifices essential information for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, the description is insufficient. It fails to mention pagination defaults, filtering capabilities beyond rules/scenarios, or any return value specifics. An agent would have to rely entirely on the schema and might not know how to effectively use this listing tool beyond a trivial call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds minimal value by explicitly mentioning 'rules/scenarios', which maps to the with_rules and with_scenarios parameters, but that is also evident from the parameter descriptions. No additional semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('list') and resource ('Voximplant applications'), and mentions optional inclusion of rules/scenarios. It clearly indicates what the tool does, but does not explicitly differentiate it from sibling tools like get_scenarios or get_rules, which are related but distinct resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions. The agent is left to infer that this is for listing applications, but no explicit usage guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_caller_idsB
Список Caller ID аккаунта и статус их верификации.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| active | No | Только активные/верифицированные | |
| offset | No | Смещение (offset) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. It implies a read-only list operation, which is helpful, but it does not disclose authentication requirements, rate limits, or any potential side effects (though likely none). It also does not state what happens when no caller IDs exist or how the verification status is represented, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. It is efficient and front-loaded with the key information, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 optional parameters, no output schema), the description covers the essential purpose but does not describe the return structure (e.g., array of objects with fields). Without an output schema, the agent must infer the return shape from the description, which is somewhat incomplete but acceptable for a straightforward list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter (count, active, offset) is already well-documented. The tool description adds no additional context about parameter semantics, such as how to combine filters or whether 'active' means 'verified'. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('list') and resource ('Caller ID') and mentions the verification status, making the purpose clear. It does not explicitly differentiate from siblings like get_phone_numbers, but the resource is distinct enough that an agent can infer the tool's specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, exclusions, or broader context. An agent would not know if this overlaps with get_phone_numbers or get_sms_history, and there is no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_call_historyB
Получить историю звонков Voximplant за период.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| to_date | Yes | Конец периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| from_date | Yes | Начало периода (YYYY-MM-DD HH:mm:ss, UTC) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavior. The 'get' verb implies a read-only operation, which is helpful, but the description doesn't disclose any explicit behavior such as pagination nad, ordering, or absence of side effects. It does add the period-scoping behavior, which is the main value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence in Russian with no filler. It states core purpose immediately and does not waste words, but it is slightly under-specified; extra context on what is included or excluded would raise the value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% parameter schema coverage and a simple read-only operation, the description is almost sufficient. However, given no output schema, no annotations, and many sibling history tools, a bit more detail about the returned data or when to prefer this over get_sms_history would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters fully. The description only reinforces that the two date parameters define a period, adding no extra semantic beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the resource ('историю звонков' = call history) and the operation ('Получить' = get), with a period constraint. It is unambiguous about what is returned, though it does not explicitly distinguish itself from sibling tools like get_sms_history or get_transaction_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool compared to alternatives. The description doesn't mention exclusions, prerequisites, or use cases, so an agent cannot infer when this should be chosen over other history/summary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phone_numbersB
Список телефонных номеров аккаунта Voximplant (привязка, поддержка SMS, продление).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| country_code | No | Код страны (напр. RU) | |
| sms_supported | No | Только номера с поддержкой SMS | |
| application_id | No | Фильтр по ID приложения |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. 'List...phone numbers' signals that this is a read-only inquiry, and the parenthetical adds some data-context detail. It still doesn't explain pagination behavior, response shape, or any account-level constraints such as permissions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence. It front-loads the core action and resource, then adds a parenthetical that adds relevant scope. There is no waste or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple list operation with fully described parameters, and the description conveys that it returns account phone numbers with some associated context such as SMS support and renewal. However, with no output schema and no annotations, it could be more explicit about what the returned records contain and how pagination works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds minimal extra meaning beyond that; 'поддержка SMS' loosely maps to sms_supported, but it adds no meaningful semantics for count, offset, country_code, or application_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('list') and the resource ('phone numbers of the Voximplant account') clearly in one sentence. It is not a mere tautology, though it does not explicitly differentiate itself from sibling tools such as get_sms_history or get_call_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance explains when to choose this tool over alternatives, when not to use it, or any prerequisites. The parenthetical mentions features like SMS support and renewal, but does not connect them to filter parameters or intended use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_queuesB
Список ACD-очередей Voximplant (опционально с навыками и числом операторов).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| with_skills | No | Включить навыки очередей | |
| application_id | No | ID приложения (обычно требуется API для скоупа очередей) | |
| with_operatorcount | No | Включить число операторов |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. 'List' indicates a read-only retrieval operation, and the optional flags signal that the response can be enriched, but the description does not discuss pagination behavior, rate limits, authentication, or whether application_id is required for scoping. Basic read-only transparency is present, yet key operational details remain implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence without filler. It front-loads the core operation and resource, then compresses the optional capabilities into a short parenthetical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description leaves the return structure unstated, and the role of pagination and application scoping is not described in the description. However, the schema covers all parameters and the tool has no required arguments, so the description is sufficient for a basic list operation but with real gaps around return and scoping context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains all four parameters. The description's mention of skills and operator counts adds only a brief non-technical paraphrase of with_skills and with_operatorcount, rather than deeper meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('ACD queues') and the operation ('list') clearly, and it even notes the optional enrichments (skills and operator count). It is not fully specific enough to distinguish from siblings like get_acd_state or get_sq_state without checking those tools, but the resource name makes the general purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to choose this tool over sibling tools, nor does it state exclusions such as obtaining real-time ACD state from get_acd_state or heading to get_skills for standalone skill information. The usage context is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordingsA
Получить список записей разговоров за период. Возвращает URL для скачивания записи (и transcription_url, если транскрипция готова).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..100) | |
| offset | No | Смещение (offset) | |
| to_date | Yes | Конец периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| from_date | Yes | Начало периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| call_session_history_id | No | ID конкретной сессии для получения записи |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal that the tool returns a download URL and optionally a transcription_url when transcription is ready, which is useful. However, it does not mention pagination, error handling, or that it is a read-only operation, leaving some behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the primary purpose first and then highlights key return values. It is concise with zero filler, making it easy for an agent to quickly grasp the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately compensates by naming the download URL and transcription_url as key return fields. It also implies a list response ('list of ... recordings'). While it doesn't detail the full response structure or pagination, these are partially covered by the schema parameters (count/offset). The coverage is good for a simple list-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning every parameter is already documented in the input schema. The description adds minimal value beyond the schema—only reinforcing the 'period' association with from_date/to_date. It does not clarify count, offset, or call_session_history_id beyond their existing schema descriptions, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Get a list of call recordings for the period' (Получить список записей разговоров за период). It specifies the verb (get) and resource (list of call recordings) with a time-period qualifier. However, it does not explicitly distinguish itself from siblings like get_call_history or get_record_storages, so it misses the full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving recordings within a date range but provides no explicit guidance on when to use this tool over alternatives or when not to use it. No comparison to sibling tools or exclusions are mentioned, so it only weakly suggests the intended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_record_storagesB
Список хранилищ записей разговоров.
| Name | Required | Description | Default |
|---|---|---|---|
| record_storage_name | No | Фильтр по имени хранилища записей |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only listing operation, but does not explicitly state that it is safe, nor does it describe any filtering behavior, pagination, or side effects. It gives the basic type of action (listing storages) but nothing about how the tool behaves beyond its name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase with no unnecessary words. It is front-loaded with the core purpose. Every word earns its place, making it efficiently scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is minimally adequate but leaves gaps. It does not state what fields each record storage contains, any default behavior (e.g., returns all storages), or the structure of the result. Since the output schema is missing, a bit more detail about the returned items would improve the agent's ability to use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, since the only parameter has a description: 'Фильтер по имени хранилища записей' (filter by record storage name). The tool description does not add any extra meaning to this parameter beyond what the schema already provides. The baseline of 3 is appropriate because the schema covers the parameter fully and the description merely in a similar way.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific resource: 'Список хранилищ записей разговоров' (list of call recording storages), which names both the resource (storages) and the operation (list/get). It is distinct from siblings like get_recordings or get_call_history, though it does not explicitly name alternatives. This makes the purpose clear, but it is more of a noun phrase than an explicit action statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool vs get_recordings, get_call_history, or other siblings. There is no mention of prerequisites, when not to use it, or related alternatives. The agent is left to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rulesB
Получить правила маршрутизации Voximplant для приложения.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| application_id | Yes | ID приложения |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It says 'get', implying a read operation, but does not explicitly state that it has no side effects, nor does it describe the return format or any pagination behavior (though the schema implies count/offset). The description is too minimal to establish behavioral transparency beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, directly to the point, with no wasted words. It is front-loaded with the action and resource, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema, the description is minimally sufficient: it tells the agent it will get routing rules. However, it does not describe the shape of the returned data or any caveats (e.g., large rule sets). The schema covers pagination, so the essential calling parameters are present, but the overall context is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds nothing beyond the schema, which is acceptable baseline for full coverage, but does not enhance comprehension of parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and the resource (Voximplant routing rules for an application). It distinguishes from sibling 'get' tools by specifying 'routing rules', which is a distinct concept from e.g. get_queues or get_acd_state. It lacks a mention of any alternative or sibling, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention the required application_id context or any scenario where this tool is preferred. The description is purely a statement of function, with no usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scenariosC
Получить список сценариев Voximplant.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| scenario_name | No | Фильтр по имени сценария |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure. It only states 'get list' with no mention of side effects, permission requirements, pagination behavior, or response format. For a read operation, the lack of explicit read-only declaration is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the core purpose. There is zero fluff, and every word adds value. It is as short as possible while remaining informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal for a tool with 3 optional parameters, no output schema, and no annotations. It lacks information about pagination limits, filtering semantics, or expected response structure. An agent would need to open the schema to understand basic usage, but even then, broader context (e.g., what scenarios are) is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has a description in the schema. The tool description adds no additional meaning about the parameters (e.g., how count/offset interact or how scenario_name filters). Baseline 3 applies because schema adequately documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a get operation on the resource 'list of scenarios' within the Voximplant domain. It is specific enough to distinguish from unrelated siblings like get_users or send_sms, but does not differentiate it from closely related scenario tools (e.g., update_scenario) beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not mention filtering capabilities, pagination, or any conditions that would favor this tool over others. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillsB
Каталог навыков (skills) ACD для маршрутизации.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| skill_name | No | Фильтр по имени навыка |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Каталог' suggests a read-only listing, but the description does not explicitly state that, nor does it mention response contents, pagination behavior, authentication needs, or side effects. This is a significant gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler; the resource and purpose are front-loaded. It is concise enough, though the brevity leaves behavioral and usage details unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with zero required parameters and 100% schema coverage, the description is minimally workable. Still, there is no output schema, no annotation context, and no mention of response format or pagination, so an agent must make reasonable assumptions beyond the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains count, offset, and skill_name. The description adds no parameter-level details, but the high coverage makes the baseline score appropriate. It only provides loose context that these skills are relevant to routing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource clearly: 'Каталог навыков (skills) ACD для маршрутизации' (catalog of ACD routing skills). This makes the tool’s purpose inferable and distinguishes it from action-oriented sibling tools like send_sms or update_scenario. It does not name a sibling or use an explicit verb, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Для маршрутизации' implies the tool is relevant when working with ACD routing/skills. However, the description does not explicitly say when to choose this over related siblings like get_acd_state, skill-account-info, or skill-call-history, and gives no exclusion or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sms_historyB
Получить историю SMS-сообщений за период с фильтрами по номерам.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| to_date | Yes | Конец периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| from_date | Yes | Начало периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| source_number | No | Фильтр по номеру отправителя | |
| destination_number | No | Фильтр по номеру получателя |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only says 'get history', which implies a read operation, but it does not disclose pagination behavior, result shape, read-only side effects, timezone nuances, or limitations. It adds little beyond what the tool name already suggests.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler. It states the core action and scope immediately, which is an economical structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (6 params) and full schema coverage, the description is minimally adequate for invoking the tool but omits contextual help such as the output shape, clarification of standard SMS vs A2P, and relationship to sibling get_a2p_sms_history. The agent may need to probe the API to learn expected return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the input schema already fully describes each parameter. The description rephrases the date range as 'period' and the number filters as 'фильтрами по номерам', but it does not add additional semantics such as numeric ranges, defaults, or format behavior that are not already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb/resource clearly: 'get SMS message history over a period with filters by numbers'. This is easy to parse and distinguishes from call-history siblings. However, it does not explicitly differentiate from the sibling get_a2p_sms_history, so it misses one point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The description does not mention get_a2p_sms_history, send_sms, or any conditions that would select this tool over sibling tools. The agent must infer usage solely from the name and filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sq_stateC
Текущее состояние SmartQueue-очереди (операторы, задачи).
| Name | Required | Description | Default |
|---|---|---|---|
| sq_queue_id | Yes | ID SmartQueue-очереди: число, список через запятую или 'any' | |
| sq_queue_name | No | Имя SmartQueue-очереди (альтернатива id) | |
| application_id | Yes | ID приложения |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of explaining the call's behavior. It suggests a read-only snapshot by saying 'current state' and mentions operators/tasks, but it never explicitly says it performs a read operation, whether side effects exist, what happens for not found queues, or what the response format is. For a tool with zero annotations, this leaves meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact phrase that names the resource and its contents: 'Current state of SmartQueue queue (operators, tasks)'. There is no fluff or irrelevant wording. It is front-loaded and short, though the brevity itself means a small amount of useful elaboration (e.g., a verb) could be included without becoming overlong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema defining the response shape, the description must at least convey what happens when the tool is called. It says it returns 'current state (operators, tasks)', but gives zero hints about the structure of those objects, the time horizon (is it real-time?), or any constraints. It also does not clarify the required combination of parameters or typical failure modes. In a set of many state/tool tools, this is underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema gives descriptions for all three parameters, and schema coverage is reported as 100%—so the burden lies on the schema, not the tool description. The description adds nothing about how to pass parameters, their meaning, or any dependencies; but because the schema already includes the needed detail, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the core function: getting the current state of a SmartQueue, and names the data it covers (operators and tasks). It goes beyond a mere restatement of the tool name, which adds specificity. However, it does not explicitly differentiate from siblings like get_acd_state, relying on the 'SmartQueue' qualifier to set it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool, which conditions suit it, or what alternatives to prefer. The description is purely a statement of what it returns and omits any comparison to sibling tools such as get_acd_state or get_queues, so an agent must infer suitability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transaction_historyC
История биллинговых транзакций за период (расходы аккаунта).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) | |
| to_date | Yes | Конец периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| from_date | Yes | Начало периода (YYYY-MM-DD HH:mm:ss, UTC) | |
| transaction_type | No | Фильтр по типу транзакции |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation with the word 'История' (history), but says nothing about pagination behavior, response format, account scoping, or any side effects. This is a significant gap for a financial/history tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, front-loads the domain and key qualifier. It is appropriately sized for a simple read tool, though it could have included a bit more context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 params, no output schema, and many history-related siblings, the description is thin. It covers the core purpose and the date scoping, but omits usage guidance and behavioral details. It is minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds only the 'period' concept, which loosely informs from_date/to_date, and 'account expenses' but nothing beyond the schema. It neither compensates nor adds meaningful parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a clear resource ('billing transactions') and scope ('for a period', 'account expenses'). It distinguishes this from call/SMS history siblings by explicitly saying 'billing' and 'расходы аккаунта', though it does not name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of get_call_history, get_sms_history, get_account_info, or other siblings. The description only says what it does, not which situations call for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usersC
Получить список пользователей Voximplant.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей (1..200) | |
| offset | No | Смещение (offset) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'get', implying a read operation, but does not mention pagination behavior, potential large result sets, rate limits, authentication requirements, or error handling. The agent gains no insight into operational characteristics beyond a basic fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. It is front-loaded with the verb and resource, and every word earns its place. Although extremely sparse, conciseness is excellent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 documented parameters, no output schema), the description is still incomplete. It fails to indicate the return format, any limits beyond parameter bounds, or pagination semantics. With no output schema, the agent is left to infer the response structure, which is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for count and offset including defaults and constraints. The tool description adds no additional meaning about how these parameters affect behavior, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get') and the resource ('list of users'), identifying it as a Voximplant operation. It is distinct from sibling tools that target other resources like skills, call history, or SMS. However, it lacks any additional context to differentiate it beyond the resource name, which is straightforward in this case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or scenarios where this tool is preferred. While the purpose is obvious given the resource, the description offers no situational context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_a2p_smsA
⚠️ ДЕЙСТВИЕ С ОПЛАТОЙ: массовая A2P-рассылка SMS (до 100 получателей) через зарегистрированный SenderID. Реально отправляет сообщения и тарифицируется — обязательно подтвердите номера и текст с пользователем перед вызовом, не вызывайте автоматически.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Текст сообщения | |
| src_number | Yes | Зарегистрированный SenderID / номер отправителя A2P | |
| store_body | No | Сохранять тело сообщения в истории | |
| dst_numbers | Yes | Список номеров получателей (до 100) в формате E.164 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the action incurs charges, actually sends messages, and requires user confirmation. It does not mention the return format or potential side effects like history storage (though store_body parameter hints at it), but for a billing-sensitive tool, the payment warning is strong behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the critical payment warning, then specifies the action and constraints. Every element adds value—no fluff, no repetition of schema data. The warning pyramid (danger first, then specifics) is effective for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that performs a paid mass SMS send, the description covers the key actionable information: the billing implications, the need for explicit user confirmation, recipient limit, and the required context. There is no output schema, but the description doesn't need to explain return values for this use case. An agent can safely decide whether to call it and how to proceed with user confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions covering 100% of the schema. The description itself adds no additional parameter semantics beyond what the schema already provides. Per rubric, baseline 3 is appropriate when schema coverage is high and the description doesn't need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('mass A2P SMS distribution'), the resource (via registered SenderID), and a clear scope (up to 100 recipients). It distinguishes this from regular SMS by emphasizing the A2P channel and bulk nature, and the sibling 'send_sms' is implicitly differentiated by the mass vs. single-message context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use guidance: must confirm numbers and text with the user before calling, and explicitly forbids automatic invocation. It also implies this is a paid operation, which is critical context for when this tool should be chosen over non-billed alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_smsC
Отправить SMS через Voximplant.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Номер отправителя или буквенный sender ID | |
| sms_body | Yes | Текст сообщения | |
| destination | Yes | Номер получателя в формате E.164, напр. +79001234567 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description only says 'Send SMS via Voximplant', which implies a mutation but does not mention side effects, permission requirements, rate limits, or any other behavioral traits. This is almost entirely uninformative for an agent assessing the safety or consequences of calling the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that does not waste words. It is front-loaded with the core action, but it is arguably under-specified rather than efficiently concise. It earns a 4 because it is short and clear, though it sacrifices substance for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three required parameters and no output schema, the description is too sparse to provide contextual completeness. It fails to mention when to use this tool versus send_a2p_sms, any prerequisites (e.g., phone number format), or what happens after sending. Given sibling tools exist and no annotations help, this description leaves significant gaps in essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions (source, destination, sms_body), including a format example for destination. The description adds no additional parameter information. Baseline of 3 is appropriate since the schema already documents the parameters effectively and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send SMS) and the resource (SMS via Voximplant), providing a specific verb and resource. However, it does not distinguish this from sibling tools like send_a2p_sms, which may have overlapping functionality. The purpose is clear but lacks sibling differentiation, hence a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like send_a2p_sms or get_sms_history. The description merely states the action without any context, prerequisites, or exclusions. An agent would have to infer usage from the name alone, which is insufficient for deciding between this and similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skill-account-infoA
Получить информацию об аккаунте Voximplant: баланс, тариф, лимиты.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation with no side effects, but lacks disclosure on behavior such as data freshness, potential errors, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is direct, front-loaded with verb and resource, and contains no extraneous information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists three key data categories, providing a good sense of the tool's return. However, it does not describe the response format or mention if additional fields are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, but the description adds meaning by specifying the returned data (balance, tariff, limits), which is valuable beyond the empty schema. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves Voximplant account information including balance, tariff, and limits. It distinguishes from siblings like get_account_info by listing specific attributes, but does not explicitly differentiate its scope from potentially similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_account_info or other sibling tools. The description provides no context about prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skill-call-historyA
Получить сводку истории звонков за последние 24 часа.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It neither confirms that the operation is read-only nor describes any side effects, permissions, or limitations. The word 'summary' implies aggregation but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that delivers the essential information without any redundancy. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is minimally complete. However, it lacks context about what the summary includes (e.g., call counts, durations) and how it differs from get_call_history, which is a sibling tool. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so baseline is 4. The description adds meaning by specifying the 24-hour window, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'summary of call history for the last 24 hours', providing a specific time constraint that distinguishes it from siblings like get_call_history which may be broader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_call_history or get_active_calls). The description is too brief to provide usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_callA
Инициировать исходящий звонок через Voximplant по правилу маршрутизации. Номер назначения передаётся сценарию через customData — сценарий VoxEngine должен его обработать.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | ID правила маршрутизации (StartScenarios запускает его сценарий) | |
| caller_id | No | Caller ID — передаётся сценарию в customData (StartScenarios не имеет отдельного параметра caller_id). | |
| destination | Yes | Назначение звонка (номер E.164, SIP URI или внутренний extension). Передаётся сценарию через customData: сценарий читает VoxEngine.customData() и инициирует звонок (callPSTN/callPBX/callSIP). | |
| script_custom_data | No | Переопределить customData целиком. Если задано — destination/caller_id игнорируются. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It explains that the destination is passed via customData to the VoxEngine scenario, which must process it, and that script_custom_data can override. However, it does not disclose side effects (e.g., call cost, required permissions) or the expected outcome of the call initiation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the purpose and key data-flow detail. No redundant wording or filler. It is optimally concise for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that initiates a call, with no output schema and no annotations, the description is too sparse. It does not mention the return value (e.g., call ID, success status), error conditions, or any post-call behavior. An agent would be unsure what the tool actually returns or how to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is documented in detail. The description adds value by explaining how parameters interrelate: destination and caller_id are transmitted via customData, and script_custom_data overrides them. This provides context beyond the individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: initiating an outbound call via Voximplant using a routing rule. It is distinct from sibling tools, which are mostly get_* or send_sms operations. The purpose is unambiguous and the tool name is not merely restated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus others, no mention of prerequisites (such as having a rule or scenario configured), and no exclusions. The description implies it is the tool for starting calls but does not help an agent decide between it and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_scenarioC
Обновить код или имя сценария VoxEngine. Позволяет агенту динамически менять логику звонка.
| Name | Required | Description | Default |
|---|---|---|---|
| script | No | Новый JavaScript-код сценария VoxEngine | |
| scenario_id | Yes | ID сценария Voximplant | |
| scenario_name | No | Новое имя сценария (необязательно) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies mutation but does not state side effects, permission requirements, reversibility, or impact on ongoing calls. The claim about 'dynamically changing call logic' is vague and could even be misinterpreted as affecting live calls without qualification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core action. It is not bloated, though it could be slightly better structured by front-loading the required parameter or adding a note about checking existing scenarios first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is under-specified. It does not mention that scenario_id is required, what happens to active calls using the old script, whether the change takes effect immediately, or any confirmation/response behavior. An agent might invoke it without understanding risks, making this incomplete for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters have descriptive names and meanings in the schema. The description only mirrors the schema by mentioning 'code or name', without adding deeper relationships (e.g., whether script and scenario_name are mutually exclusive or how scenario_id is used). Since coverage is high, the baseline of 3 is appropriate, but the description adds minimal extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('update') and the resource ('VoxEngine scenario'), and specifies what can be updated ('code or name'). It differentiates from sibling tools, which are mostly read-only getters, so the purpose is distinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, nor any mention of prerequisites (e.g., retrieving the scenario first with get_scenarios). The phrase 'allows the agent to dynamically change call logic' gives a high-level use case but not concrete usage conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
v2.0.0- Added
get_a2p_sms_history - Added
get_acd_state - Removed
get_active_calls - Added
get_applications - Changed
get_call_history5 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Количество записей"New value: +"Количество записей (1..200)" - changed
Input schema / properties / from_date / descriptionPrevious value: -"Начало периода (YYYY-MM-DD HH:mm:ss)"New value: +"Начало периода (YYYY-MM-DD HH:mm:ss, UTC)" - changed
Input schema / properties / offset / descriptionPrevious value: -"Смещение"New value: +"Смещение (offset)" - added
Input schema / properties / offset / minimumAdded value: +0 - changed
Input schema / properties / to_date / descriptionPrevious value: -"Конец периода (YYYY-MM-DD HH:mm:ss)"New value: +"Конец периода (YYYY-MM-DD HH:mm:ss, UTC)"
- Added
get_caller_ids - Added
get_phone_numbers - Added
get_queues - Added
get_record_storages - Changed
get_recordings5 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Количество записей (1..100)" - changed
Input schema / properties / from_date / descriptionPrevious value: -"Начало периода (YYYY-MM-DD HH:mm:ss)"New value: +"Начало периода (YYYY-MM-DD HH:mm:ss, UTC)" - added
Input schema / properties / offset / descriptionAdded value: +"Смещение (offset)" - added
Input schema / properties / offset / minimumAdded value: +0 - changed
Input schema / properties / to_date / descriptionPrevious value: -"Конец периода (YYYY-MM-DD HH:mm:ss)"New value: +"Конец периода (YYYY-MM-DD HH:mm:ss, UTC)"
- Changed
get_rules3 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Количество правил"New value: +"Количество записей (1..200)" - changed
Input schema / properties / offset / descriptionPrevious value: -"Смещение"New value: +"Смещение (offset)" - added
Input schema / properties / offset / minimumAdded value: +0
- Changed
get_scenarios3 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Количество сценариев"New value: +"Количество записей (1..200)" - changed
Input schema / properties / offset / descriptionPrevious value: -"Смещение"New value: +"Смещение (offset)" - added
Input schema / properties / offset / minimumAdded value: +0
- Added
get_skills - Changed
get_sms_history5 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Количество записей (1..200)" - changed
Input schema / properties / from_date / descriptionPrevious value: -"Начало периода (YYYY-MM-DD HH:mm:ss)"New value: +"Начало периода (YYYY-MM-DD HH:mm:ss, UTC)" - added
Input schema / properties / offset / descriptionAdded value: +"Смещение (offset)" - added
Input schema / properties / offset / minimumAdded value: +0 - changed
Input schema / properties / to_date / descriptionPrevious value: -"Конец периода (YYYY-MM-DD HH:mm:ss)"New value: +"Конец периода (YYYY-MM-DD HH:mm:ss, UTC)"
- Added
get_sq_state - Added
get_transaction_history - Changed
get_users3 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Количество пользователей"New value: +"Количество записей (1..200)" - changed
Input schema / properties / offset / descriptionPrevious value: -"Смещение"New value: +"Смещение (offset)" - added
Input schema / properties / offset / minimumAdded value: +0
- Added
send_a2p_sms - Changed
send_sms5 fields changed- changed
Input schema / properties / destination / descriptionPrevious value: -"Номер получателя"New value: +"Номер получателя в формате E.164, напр. +79001234567" - added
Input schema / properties / destination / minLengthAdded value: +1 - added
Input schema / properties / sms_body / minLengthAdded value: +1 - changed
Input schema / properties / source / descriptionPrevious value: -"Номер отправителя"New value: +"Номер отправителя или буквенный sender ID" - added
Input schema / properties / source / minLengthAdded value: +1
- Changed
start_call5 fields changed- changed
Input schema / properties / caller_id / descriptionPrevious value: -"Номер в Caller ID (если не указан — берётся из правила)"New value: +"Caller ID — передаётся сценарию в customData (StartScenarios не имеет отдельного параметра caller_id)." - changed
Input schema / properties / destination / descriptionPrevious value: -"Номер назначения для звонка"New value: +"Назначение звонка (номер E.164, SIP URI или внутренний extension). Передаётся сценарию через customData: сценарий читает VoxEngine.customData() и инициирует звонок (callPSTN/callPBX/callSIP)." - added
Input schema / properties / destination / minLengthAdded value: +1 - changed
Input schema / properties / rule_id / descriptionPrevious value: -"ID правила маршрутизации для звонка"New value: +"ID правила маршрутизации (StartScenarios запускает его сценарий)" - changed
Input schema / properties / script_custom_data / descriptionPrevious value: -"Кастомные данные для сценария VoxEngine"New value: +"Переопределить customData целиком. Если задано — destination/caller_id игнорируются."
- Changed
update_scenario1 field changed- changed
Input schema / properties / script / descriptionPrevious value: -"Новый JavaScript код сценария VoxEngine"New value: +"Новый JavaScript-код сценария VoxEngine"
13 tool updates
v1.2.3- First observed
get_account_info - First observed
get_active_calls - First observed
get_call_history - First observed
get_recordings - First observed
get_rules - First observed
get_scenarios - First observed
get_sms_history - First observed
get_users - First observed
send_sms - First observed
skill-account-info - First observed
skill-call-history - First observed
start_call - First observed
update_scenario
TDQS
Scored across 23 tools
There is direct overlap between get_account_info and skill-account-info, which appear to expose the same account information, and get_call_history and skill-call-history are also very similar. Additionally, get_acd_state, get_sq_state, and get_queues all touch queue/state concepts and may be confused without reading carefully.
Most tools follow a clear get_* pattern, with action verbs like send_, start_, and update_ for mutations. However, skill-account-info and skill-call-history break the convention using hyphenated noun phrases, creating a noticeable inconsistency in an otherwise predictable naming scheme.
23 tools is on the heavy side and borders on overwhelming for a single MCP server. The breadth is somewhat justified by Voximplant's wide platform surface, but duplicate account-info and call-history tools inflate the count without adding real capability.
The tool surface is heavily read-oriented: most resources are queryable, but mutation coverage is sparse. There is no create/delete/update for users, phone numbers, queues, rules, or scenarios beyond update_scenario, and no way to manage recordings or caller IDs, so agents cannot perform full lifecycle operations.
Maintenance
Related MCP Connectors
Hosted MCP server for the Wavix telecom platform: SMS, voice, 2FA, SIP, numbers, 10DLC, CDRs.
MCP server for Vonage API documentation, code snippets, tutorials, and troubleshooting.
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP Server that integrates various Vonage APIs as MCP tools, to make it easier for developers to work with and create Vonage applications.47 npm3Apache 2.0

VoIPbin MCP Serverofficial
AlicenseBqualityCmaintenanceAn MCP server that enables AI assistants to interact with the VoIPbin CPaaS platform, exposing tools for managing calls, flows, messaging, conferencing, and more.521MIT- AlicenseAqualityAmaintenanceMCP server for Planfix API enabling task, project, contact, and comment management with 10 tools and 2 skills.2026 npm3MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that provides SMS sending, CSV bulk SMS, and voice calling capabilities via the Vonage API.Apache 2.0