Перейти к основному содержимому

Инструменты MCP-коннектора

Коннектор https://mcp.alphasms.ua/mcp отдаёт ассистенту 11 инструментов. Инструменты чтения выполняются сразу; инструменты отправки требуют confirm: true — без него коннектор отвечает отказом и в API не обращается.

Каждый вызов — JSON-RPC методом POST, ключ в заголовке Authorization. Коды, которые возвращает message_status, совпадают с обычным API — см. Статусы сообщений.

Чтение

balance

Остаток на счету и валюта.

Параметры

Параметров нет.

Пример запроса

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

senders_list

Зарегистрированные имена отправителя со статусом каждого. Отправлять можно только с активного имени.

Параметры

Параметров нет.

Пример запроса

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

message_status

Статус отправленного сообщения. Возвращает числовой код и расшифровку.

Пример запроса

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

hlr_lookup

HLR-запрос: существует ли номер, в какой он сети, не перенесён ли к другому оператору. Услуга платная — один запрос на номер.

Пример запроса

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

Отправка

Общее для всех отправок

confirm: true обязателен. Один вызов — один номер, массовых рассылок нет. phone — только цифры в международном формате, имя отправителя должно быть зарегистрировано и активно. В ответе приходит идентификатор, а не факт доставки: статус спрашивайте через message_status.

send_sms

Одно SMS на один номер. 160 символов латиницей или 70 кириллицей в первом сообщении, дальше делится на части, каждая тарифицируется отдельно.

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_sms",
"arguments": {
"phone": "380671234567",
"signature": "ALPHASMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}

send_viber

Одно сообщение в Viber. Тип коннектор собирает сам по переданным полям: текст, текст с картинкой или текст с картинкой и кнопкой.

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_viber",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш заказ отправлен",
"image": "https://example.com/promo.jpg",
"link": "https://example.com/order/42",
"button": "Отследить",
"confirm": true
}
}
}

send_viber_with_sms_fallback

Каскад: сначала Viber, если он не доставлен — SMS. Списывается за то, что реально ушло, поэтому недоставленный Viber с досылкой стоит дороже одиночного SMS. Тексты задаются отдельно — в SMS обычно нужен более короткий.

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_viber_with_sms_fallback",
"arguments": {
"phone": "380671234567",
"viber_signature": "AlphaSMS",
"viber_message": "Ваш заказ отправлен, отследить: https://example.com/order/42",
"sms_signature": "ALPHASMS",
"sms_message": "Заказ отправлен",
"confirm": true
}
}
}

send_rcs

Одно сообщение RCS. Доходит только на устройства с поддержкой RCS — для остальных нужен отдельный запасной канал.

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_rcs",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}

send_voice

Синтезированный голосовой вызов с зачитыванием текста.

Параметры

phoneстрокаобязательный
Номер получателя, только цифры, без ведущего нуля: 380671234567. Для этого типа платформа принимает номер числом
messageстрокаобязательный
Текст, который будет зачитан
confirmбулевообязательный
Обязательно true. Без него коннектор отвечает отказом и в API не обращается
languageстрока
Язык озвучивания, например en-GB или uk-UA
genderстрока
Пол голоса: male или female
nameстрока
Имя голосовой модели, например en-GB-Standard-A
dtmfбулево
Собирать ответ абонента кнопками телефона. По умолчанию нет
idчисло
Ваш идентификатор сообщения. Если не задан, коннектор сгенерирует его сам и вернёт в ответе — иначе сообщение станет неотслеживаемым
hookстрока
URL для вебхуков по этому сообщению. Отказ приёма (No route, Not enough money, ошибка валидации) придёт туда отдельным вебхуком со status: REJECTED. А статус доставки — нет: для этого типа платформа адрес не сохраняет и шлёт статус только на адрес уведомлений из настроек API

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_voice",
"arguments": {
"phone": "380671234567",
"message": "Ваш код подтверждения: 1 2 3 4",
"language": "uk-UA",
"confirm": true
}
}
}

send_whatsapp

Собственного типа сообщения у WhatsApp нет. Коннектор отправляет запрос типа pipeline с этапом whatsapp — см. Отправка OTP кода (WhatsApp). Отправка возможна только по маршруту, заведённому под этот набор этапов: без него платформа отвечает No route и ничего не списывает. Дойдёт, только если получатель ранее написал первым или дал согласие, а имя отправителя зарегистрировано в WhatsApp Business.

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш заказ готов к выдаче",
"confirm": true
}
}
}
примечание

sms_signature и sms_message задаются парой: с одним из них коннектор отвечает отказом ещё до обращения в API. Вместе они превращают запрос в пайплайн whatsappsms, а под него нужен отдельный маршрут.

message_status не найдёт сообщение pipeline — ваш id платформа для него не сохраняет. Коннектор возвращает id и состав этапов, чтобы было видно, что именно ушло в очередь.

send_verification_code

Отправляет одноразовый код и сам его генерирует. У операции отдельный адрес и свой набор полей: возвращается verify_id, по которому код потом сверяется.

Пример запроса

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_verification_code",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"channel": "sms",
"confirm": true
}
}
}

Ошибки

Коннектор передаёт ошибки API как есть, без переформулирования. Частые случаи: