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)
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
- https://claude.ai/api/mcp/auth_callback
- https://claude.com/api/mcp/auth_callback
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
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
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
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
- Field: firstName (string, Required)
- Field: lastName (string, Required)
- Field: phoneNumber (string, Required)
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
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
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
- Token lifetime: 4 hours
- Authorization code lifetime: 5 minutes (single use)
- All API calls are subject to your Telinfy account's rate limits and quotas
- Message sending requires valid DLT template IDs (Indian regulatory compliance)
Support