Telinfy MCP Server -Technical Documentation

Overview

Telinfy MCP Server provides programmatic access to Telinfy's communication platform through the Model Context Protocol (MCP). It enables AI assistants to send SMS, WhatsApp, and RCS messages, manage phonebook contacts, and retrieve campaign analytics on behalf of authenticated users.

Server Details

Property

Value

Server URL
https://mcp.telinfy.com
Transport
Streamable HTTP (MCP spec 2025-06-18)
Protocol Version
2025-06-18
Authentication
OAuth 2.0 Authorization Code + PKCE (S256)
Token Lifetime
4hours
CORS Origins
claude.ai, claude.com

Authentication OAuth 2.0 Flow

Discovery Endpoints

Endpoint

Method

Description

/.well-known/oauth-protected-resource
GET
RFC 8707 resource metadata
/.well-known/oauth-authorization-server
GET
RFC 8414 authorization server metadata
/register
POST
RFC 7591 dynamic client registration
/authorize
GET
Returns login page
/authorize
POST
Processes login, returns authorization code
/token
POST
Exchanges code for access token (with PKCE)

Allowed Redirect URIs

MCP Endpoints

Method

Path

Auth Required

Description

HEAD
/ or /mcp
No
Protocol discovery — returns MCP-Protocol-Version header
GET
/ or /mcp
Yes
Opens SSE event stream
POST
/ or /mcp
Partial
JSON-RPC method calls. initialize, tools/list, and notifications/* are public; tools/call requires auth

Tools

SMS

send_sms

Send SMS messages through bulk SMS gateway with DLT compliance.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

campName
string
Yes
Campaign name
RType
integer
Yes
Route type: 0 = promotional, 1 = transactional
sn
string
Yes
Sender ID (6 characters max)
msg
string
Yes
Message content (must match DLT template
mnos
string
Yes
Mobile number(s), 10-digit format
template_id
string
Yes
DLT registered template ID
uniCode
integer
No
0 = ASCII (default), 1 = Unicode
mf
integer
No
1 = plain text (default), 2 = flash SMS
cnt
integer
No
Recipient count (default: 1)

schedule_sms

Schedule an SMS campaign for future delivery.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

campName
string
Yes
Campaign name
RType
integer
Yes
Route type
sn
string
Yes
Sender name
msg
string
Yes
Message content
mnos
string
Yes
Mobile numbers
execTime
string
Yes
Execution time YYYY-MM-DD HH:mm:ss
template_id
string
Yes
DLT template ID
uniCode
integer
No
Unicode flag (default: 0)
mf
integer
No
Message format (default: 1)
cnt
integer
No
Message count (default: 1)

scheduleDynamicCampaign

Schedule a dynamic SMS campaign using an Excel file and template variables.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

campName
string
Yes
Campaign name
RType
integer
Yes
Route type: 0 = promotional, 1 = transactional
mob
string
Yes
Excel column containing mobile numbers (e.g., "A")
senderName
string
Yes
Sender name
fr
integer
Yes
Start row in Excel
tr
integer
Yes
End row in Excel
fn
string
Yes
Filename of uploaded Excel (must exist on server)
pSheetName
string
Yes
Sheet name (e.g., "Sheet1")
msg
string
Yes
DLT message template with variables
template_id
string
Yes
DLT template ID
columnMappings
object
Yes
Variable-to-column mapping (e.g., {"var1": "B"})
execTime
string
Yes
Scheduled time YYYY-MM-DD HH:mm:ss
dynamicjson
integer
Yes
Set to 1
uniCode
integer
No
Unicode flag (default: 0)

fetch_sms_campaign_report

Fetch detailed delivery report for a specific SMS campaign.
Annotations: readOnlyHint: true, destructiveHint: false

Parameter

Type

Required

Description

cid
string
Yes
Campaign ID

get_sms_schedule

Fetch the list of all scheduled SMS campaigns. No parameters required.
Annotations: readOnlyHint: true, destructiveHint: false

getMessageReport

Fetch SMS message reports and delivery status for sent messages. No parameters required.
Annotations: readOnlyHint: true, destructiveHint: false

WhatsApp

send_whatsapp_campaign

Send a WhatsApp campaign using a pre-created template.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

campaign_name
string
Yes
Campaign name
numbers
string
Yes
Comma-separated phone numbers
template_name
string
Yes
WhatsApp template name
components
array
No
Template components (array of objects)
number_type
string
No
"indian" (default) or "international"
has_custom_media
boolean
No
Default: false
media_id
string
No
Media attachment ID

whatsapp_campaign

List all WhatsApp campaigns. No parameters required.
Annotations: readOnlyHint: true, destructiveHint: false

fetch_whatsapp_smart_report

Fetch WhatsApp delivery analytics for a date range.
Annotations: readOnlyHint: true, destructiveHint: false

Parameter

Type

Required

Description

frmDate
string
Yes
Start date YYYY-MM-DD HH:mm:ss
toDate
string
Yes
End date YYYY-MM-DD HH:mm:ss
download_Status
boolean
Yes
Include download data

RCS

fetch_rcs_report

Fetch RCS message delivery report.
Annotations: readOnlyHint: true, destructiveHint: false

Parameter

Type

Required

Description

frmDate
string
Yes
Start date
toDate
string
Yes
End date
download_Status
boolean
Yes
Include download data (default: true)

Contacts / Phonebook

create_phonebook

Create a new phonebook group with contacts.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

groupName
string
Yes
Group name
contacts
array
Yes
Array of contact objects

Each contact object

get_phonebook_groups

List all phonebook groups. No parameters required.
Annotations: readOnlyHint: true, destructiveHint: false

get_group_contacts

Get all contacts in a specific group.
Annotations: readOnlyHint: true, destructiveHint: false

Parameter

Type

Required

Description

groupID
string
Yes
Group ID

delete_contact_group

Permanently delete a phonebook group and all its contacts.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

groupID
string
Yes
Group ID to delete

edit_contact

Edit an existing contact's name and phone number.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

contactID
string
Yes
Contact ID
name
string
Yes
Updated name
phone
string
Yes
Updated phone number

toggle_contact_status

Activate or deactivate a contact in a phonebook group.
Annotations: readOnlyHint: false, destructiveHint: true

Parameter

Type

Required

Description

groupID
string
Yes
Group ID
phoneNumber
string
Yes
Contact phone number
status
integer
Yes
1 = active, 0 = inactive

Example Prompts

Send an SMS

"Send an SMS campaign named 'April Promo' to 9876543210 using sender ID TELNFY, route type 1 (transactional), with message 'Your order #1234 has been shipped' and DLT template ID 1107161234567890"

View Campaign Reports

"Show me my SMS message reports and delivery status"

Manage Contacts

"Create a phonebook group called 'Sales Team' with two contacts: Rahul Sharma 9876543210 and Priya Patel 9123456789"

Schedule a Campaign

"Schedule an SMS campaign named 'Weekend Sale' to be sent on 2026-04-12 at 10:00:00 to numbers 9876543210,9123456789 using sender SALE01 with message 'Flat 50% off this weekend!' and template ID 1107161234567890"

WhatsApp Campaign

"Send a WhatsApp campaign called 'Order Update' to 919876543210 using template 'order_confirmation'"

Error Handling

Scenario

Response

Invalid/expired token
401 Unauthorized with WWW-Authenticate header
Missing required parameters
Tool returns descriptive error text
Telinfy API error
HTTP status code and backend error message forwarded
Unknown tool name
"ERROR: Unknown tool: <name>"
Unknown JSON-RPC method
{"code": -32601, "message": "Method not found: <method>"}

Rate Limits & Constraints

Support