MCP
engagelab-sms-mcp is an MCP (Model Context Protocol) server that enables AI assistants to send SMS messages through the EngageLab platform. Once added to an MCP-compatible client (such as Cursor, Claude Desktop, etc.), the AI can send template-based SMS messages on your behalf.
Prerequisites
- Node.js 18+
- An EngageLab account with SMS API credentials (
dev_keyanddev_secret) - At least one approved SMS template
Tip: API credentials can be created and managed on the API Keys page in the EngageLab console.
Configuration
Cursor
Go to Settings > MCP, click Add new MCP server, and paste the following configuration:
{
"mcpServers": {
"engagelab-sms": {
"command": "npx",
"args": ["-y", "engagelab-sms-mcp"],
"env": {
"ENGAGELAB_DEV_KEY": "<your_dev_key>",
"ENGAGELAB_DEV_SECRET": "<your_dev_secret>"
}
}
}
}
Replace <your_dev_key> and <your_dev_secret> with the actual credentials obtained from the EngageLab console.
Claude Desktop
Open Settings > Developer > Edit Config and add the following to mcpServers:
{
"mcpServers": {
"engagelab-sms": {
"command": "npx",
"args": ["-y", "engagelab-sms-mcp"],
"env": {
"ENGAGELAB_DEV_KEY": "<your_dev_key>",
"ENGAGELAB_DEV_SECRET": "<your_dev_secret>"
}
}
}
}
Other MCP Clients
Any MCP client that supports stdio transport can use this server. Set the command to npx -y engagelab-sms-mcp and pass the required environment variables.
Available Tools
send_sms
Send SMS messages through EngageLab using a pre-approved template.
Request Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
| to | string[] | Yes | List of target phone numbers (international format recommended, e.g. +8618700001111) |
| template.id | string | Yes | Approved EngageLab SMS template ID |
| template.params | object | Yes | Template variable values, e.g. {"code": "123456"} |
Request Example:
{
"to": ["+8618700001111"],
"template": {
"id": "your-template-id",
"params": {
"code": "123456"
}
}
}
Response Parameters:
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the request was accepted |
| plan_id | string | EngageLab plan ID for tracking |
| total_count | number | Total number of recipients submitted |
| accepted_count | number | Number of recipients accepted for delivery |
| message_id | string | Message identifier (if available) |
| message | string | Status or error description |
| code | number | EngageLab response code (0 = success) |
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
| ENGAGELAB_DEV_KEY | Yes | — | EngageLab dev key |
| ENGAGELAB_DEV_SECRET | Yes | — | EngageLab dev secret |
| ENGAGELAB_BASE_URL | No | https://smsapi.engagelab.com |
API base URL |
| ENGAGELAB_REQUEST_TIMEOUT_MS | No | 10000 |
Request timeout in milliseconds |
| ENGAGELAB_MAX_RETRIES | No | 1 |
Max retry attempts for failures |
Troubleshooting
Server fails to start with "Missing required environment variable"
- Ensure both
ENGAGELAB_DEV_KEYandENGAGELAB_DEV_SECRETare correctly set in theenvblock of your MCP client configuration.
send_sms returns error code 3002 ("invalid template id format")
- Verify that the template ID matches an approved template in the EngageLab console.
send_sms returns template parameter errors
- Confirm that the keys in
template.paramsexactly match the variable names defined in your EngageLab template.
SMS not received
- Use international phone number format (e.g.
+8618700001111). - Confirm the template is approved and not suspended.
