Skip to main content

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​

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

senders_list​

Registered sender names with the status of each. You can only send from an active name.

Parameters​

No parameters.

Request example​

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

message_status​

Status of a sent message. Returns a numeric code and its decoding.

Request example​

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

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​

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

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.

Request example​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_sms",
"arguments": {
"phone": "447700900789",
"signature": "DemoSender",
"message": "Your code is 1234",
"confirm": true
}
}
}

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.

Request example​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_viber",
"arguments": {
"phone": "447700900789",
"signature": "DemoSender",
"message": "Your order has been dispatched",
"image": "https://example.com/promo.jpg",
"link": "https://example.com/order/42",
"button": "Track it",
"confirm": true
}
}
}

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.

Request example​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_viber_with_sms_fallback",
"arguments": {
"phone": "447700900789",
"viber_signature": "DemoSender",
"viber_message": "Your order has been dispatched, track it: https://example.com/order/42",
"sms_signature": "DemoSender",
"sms_message": "Order dispatched",
"confirm": true
}
}
}

send_rcs​

One RCS message. Reaches only devices that support RCS — everyone else needs a separate fallback channel.

Request example​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_rcs",
"arguments": {
"phone": "447700900789",
"signature": "DemoSender",
"message": "Your code is 1234",
"confirm": true
}
}
}

send_voice​

A synthesised voice call that reads out your text.

Request example​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_voice",
"arguments": {
"phone": "447700900789",
"message": "Your confirmation code is 1 2 3 4",
"language": "en-GB",
"confirm": true
}
}
}

send_whatsapp​

The connector sends a pipeline request with whatsapp as its stage, that is free-form text: it reaches the subscriber only within 24 hours after their last message. Templates, files and one-time codes are sent through the JSON API — see Send WhatsApp message. Sending works only over a route registered for that set of stages: without it the platform answers No route and charges nothing. The message reaches the recipient only if they wrote first or gave consent, and the sender name is registered in WhatsApp Business.

Request example​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "send_whatsapp",
"arguments": {
"phone": "447700900789",
"signature": "DemoSender",
"message": "Your order is ready for pickup",
"confirm": true
}
}
}
note

sms_signature and sms_message are set as a pair: with only one of them the connector refuses before it calls the API. Together they turn the request into a whatsapp → sms pipeline, which needs a route of its own.

message_status will not find a pipeline message — the platform does not store your id for it. The connector answers with the id and the list of stages, so you can see what went into the queue.

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.

Request example​

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

Errors​

The connector passes API errors through as they are, without rewording. Common cases: