MCP connector tools
The connector at https://mcp.interconnect.solutions/mcp exposes 11 tools. Read tools run straight away; sending tools
require confirm: true — without it the connector refuses and never touches the API.
Every call is JSON-RPC over POST with your key in the Authorization header.
Codes returned by message_status are the same as in the regular API — see
Message statuses.
Reading
balance
Account balance and currency.
Parameters
No parameters.
Request example
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "balance",
"arguments": {}
}
}
curl -X POST 'https://mcp.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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
Registered sender names with the status of each. You can only send from an active name.
Parameters
No parameters.
Request example
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "senders_list",
"arguments": {}
}
}
curl -X POST 'https://mcp.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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
Status of a sent message. Returns a numeric code and its decoding.
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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 request: whether the number exists, which network it is on, whether it has been ported. The service is paid — one request per number.
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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());
Sending
Common rules for sending
confirm: true is mandatory. One call is one number — there are no bulk campaigns. phone is digits only, in international format, and the sender name must be registered and active. The response carries an identifier, not proof of delivery: ask message_status for the outcome.
send_sms
One SMS to one number. 160 Latin or 70 Cyrillic characters in the first message; beyond that it splits into parts, each charged separately.
Parameters
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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
One Viber message. The connector picks the message type itself from the fields you supply: text, text with an image, or text with an image and a button.
Parameters
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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
A cascade: Viber first, then SMS if Viber is not delivered. You are charged for what actually went out, so an undelivered Viber with a fallback costs more than a plain SMS. The texts are set separately — the SMS one usually needs to be shorter.
Parameters
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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
One RCS message. Reaches only devices that support RCS — everyone else needs a separate fallback channel.
Parameters
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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
A synthesised voice call that reads out your text.
Parameters
Request example
- 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",
"confirm": true
}
}
}
curl -X POST 'https://mcp.interconnect.solutions/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",
"confirm": true
}
}
}'
import requests
response = requests.post(
"https://mcp.interconnect.solutions/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",
"confirm": true
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.interconnect.solutions/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",
"confirm": true
}
}
}),
});
console.log(await response.json());
send_whatsapp
Works only if the recipient wrote first or gave consent, and requires a separately registered name and a verified Facebook account.
Parameters
Request example
- JSON-RPC
- cURL
- Python
- Node.js
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"message": "Ваш заказ готов к выдаче",
"confirm": true
}
}
}
curl -X POST 'https://mcp.interconnect.solutions/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",
"message": "Ваш заказ готов к выдаче",
"confirm": true
}
}
}'
import requests
response = requests.post(
"https://mcp.interconnect.solutions/mcp",
headers={"Authorization": "Bearer ВАШ_API_КЛЮЧ"},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "380671234567",
"message": "Ваш заказ готов к выдаче",
"confirm": true
}
}
},
timeout=30,
)
print(response.json())
const response = await fetch("https://mcp.interconnect.solutions/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",
"message": "Ваш заказ готов к выдаче",
"confirm": true
}
}
}),
});
console.log(await response.json());
send_verification_code
Sends a one-time code and generates it for you. This operation has its own address and its own field set: it returns a verify_id the code is later checked against.
Parameters
Request example
- 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.interconnect.solutions/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.interconnect.solutions/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.interconnect.solutions/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());
Errors
The connector passes API errors through as they are, without rewording. Common cases: