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

WhatsApp has no message type of its own. The connector sends a pipeline request with whatsapp as its stage — see Send OTP Code (WhatsApp). 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 whatsappsms 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: