Інструменти MCP-конектора
Конектор https://mcp.alphasms.ua/mcp віддає асистенту 11 інструментів. Інструменти читання виконуються
одразу; інструменти надсилання вимагають confirm: true — без нього конектор відповідає
відмовою і до API не звертається.
Кожен виклик — JSON-RPC методом POST, ключ у заголовку Authorization.
Коди, які повертає message_status, збігаються зі звичайним API — див.
Статуси повідомлень.
Читання
balance
Залишок на рахунку та валюта.
Параметри
Параметрів немає.
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "balance",
"arguments": {}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "balance",
"arguments": {}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "balance",
"arguments": {}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "balance",
"arguments": {}
}
}),
});
console.log(await response.json());
senders_list
Зареєстровані імена відправника зі статусом кожного. Надсилати можна лише з активного імені.
Параметри
Параметрів немає.
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "senders_list",
"arguments": {}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "senders_list",
"arguments": {}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "senders_list",
"arguments": {}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "senders_list",
"arguments": {}
}
}),
});
console.log(await response.json());
message_status
Статус надісланого повідомлення. Повертає числовий код і розшифрування.
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "message_status",
"arguments": {
"id": 1730112045
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "message_status",
"arguments": {
"id": 1730112045
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "message_status",
"arguments": {
"id": 1730112045
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "message_status",
"arguments": {
"id": 1730112045
}
}
}),
});
console.log(await response.json());
hlr_lookup
HLR-запит: чи існує номер, у якій він мережі, чи не перенесений до іншого оператора. Послуга платна — один запит на номер.
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hlr_lookup",
"arguments": {
"phone": 380671234567
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hlr_lookup",
"arguments": {
"phone": 380671234567
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hlr_lookup",
"arguments": {
"phone": 380671234567
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hlr_lookup",
"arguments": {
"phone": 380671234567
}
}
}),
});
console.log(await response.json());
Надсилання
Спільне для всіх надсилань
confirm: true обов'язковий. Один виклик — один номер, масових розсилок немає. phone — лише цифри в міжнародному форматі, ім'я відправника має бути зареєстроване й активне. У відповіді приходить ідентифікатор, а не факт доставки: статус питайте через message_status.
send_sms
Одне SMS на один номер. 160 символів латиницею або 70 кирилицею в першому повідомленні, далі ділиться на частини, кожна тарифікується окремо.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_sms",
"arguments": {
"phone": "380671234567",
"signature": "ALPHASMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_sms",
"arguments": {
"phone": "380671234567",
"signature": "ALPHASMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_sms",
"arguments": {
"phone": "380671234567",
"signature": "ALPHASMS",
"message": "Ваш код 1234",
"confirm": true
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_sms",
"arguments": {
"phone": "380671234567",
"signature": "ALPHASMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}),
});
console.log(await response.json());
send_viber
Одне повідомлення у Viber. Тип конектор збирає сам за переданими полями: текст, текст із картинкою або текст із картинкою і кнопкою.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"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
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"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
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"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
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"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
}
}
}),
});
console.log(await response.json());
send_viber_with_sms_fallback
Каскад: спершу Viber, а якщо його не доставлено — SMS. Списується за те, що реально пішло, тож недоставлений Viber із досиланням коштує дорожче за одиничне SMS. Тексти задаються окремо — у SMS зазвичай потрібен коротший.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"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
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"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
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"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
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"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
}
}
}),
});
console.log(await response.json());
send_rcs
Одне повідомлення RCS. Доходить лише на пристрої з підтримкою RCS — для решти потрібен окремий запасний канал.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_rcs",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_rcs",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_rcs",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш код 1234",
"confirm": true
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_rcs",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваш код 1234",
"confirm": true
}
}
}),
});
console.log(await response.json());
send_voice
Синтезований голосовий виклик із зачитуванням тексту.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"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
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"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
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"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
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"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
}
}
}),
});
console.log(await response.json());
send_whatsapp
Власного типу повідомлення у WhatsApp немає. Конектор надсилає запит типу pipeline з етапом whatsapp — див. Відправка OTP коду (WhatsApp). Надсилання можливе лише за маршрутом, заведеним під цей набір етапів: без нього платформа відповідає No route і нічого не списує. Дійде, лише якщо отримувач раніше написав першим або дав згоду, а ім'я відправника зареєстроване у WhatsApp Business.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваше замовлення готове до видачі",
"confirm": true
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваше замовлення готове до видачі",
"confirm": true
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваше замовлення готове до видачі",
"confirm": true
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"message": "Ваше замовлення готове до видачі",
"confirm": true
}
}
}),
});
console.log(await response.json());
sms_signature і sms_message задаються парою: з одним із них конектор відповідає відмовою ще до звернення в API. Разом вони перетворюють запит на пайплайн whatsapp → sms, а під нього потрібен окремий маршрут.
message_status не знайде повідомлення pipeline — ваш id платформа для нього не зберігає. Конектор повертає id і склад етапів, щоб було видно, що саме пішло в чергу.
send_verification_code
Надсилає одноразовий код і сам його генерує. У цієї операції окрема адреса і свій набір полів: повертається verify_id, за яким код потім звіряється.
Параметри
Приклад запиту
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_verification_code",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"channel": "sms",
"confirm": true
}
}
}
curl -X POST 'https://mcp.alphasms.ua/mcp' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ВАШ_API_КЛЮЧ' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_verification_code",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"channel": "sms",
"confirm": true
}
}
}'
import requests
response = requests.post(
"https://mcp.alphasms.ua/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_verification_code",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"channel": "sms",
"confirm": true
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.alphasms.ua/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ВАШ_API_КЛЮЧ",
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_verification_code",
"arguments": {
"phone": "380671234567",
"signature": "AlphaSMS",
"channel": "sms",
"confirm": true
}
}
}),
});
console.log(await response.json());
Помилки
Конектор передає помилки API як є, без переформулювання. Часті випадки: