Skip to main content
Glama
DevEngageLab

engagelab-sms-mcp

by DevEngageLab

engagelab-sms-mcp

An MCP server that lets AI assistants send SMS messages through EngageLab.

Add it to your MCP client (Cursor, Claude Desktop, etc.) and the AI can send template-based SMS on your behalf.

Prerequisites

  • Node.js 18+

  • An EngageLab account with SMS API credentials (dev_key and dev_secret)

  • At least one approved SMS template in your EngageLab console

Related MCP server: Twilio SMS Server

Quick Start

Cursor

Go to Settings > MCP, click Add new MCP server, and paste:

{
  "mcpServers": {
    "engagelab-sms": {
      "command": "npx",
      "args": ["-y", "engagelab-sms-mcp"],
      "env": {
        "ENGAGELAB_DEV_KEY": "<your_dev_key>",
        "ENGAGELAB_DEV_SECRET": "<your_dev_secret>"
      }
    }
  }
}

Claude Desktop

Open Settings > Developer > Edit Config and add 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. Point the command to npx -y engagelab-sms-mcp and pass the two required environment variables.

Available Tools

send_sms

Send SMS messages through EngageLab using a pre-approved template.

Input:

Field

Type

Required

Description

to

string[]

Yes

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"}

Example input:

{
  "to": ["+8618700001111"],
  "template": {
    "id": "your-template-id",
    "params": {
      "code": "123456"
    }
  }
}

Output:

Field

Type

Description

success

boolean

Whether the request was accepted

plan_id

string

EngageLab plan ID for tracking

total_count

number

Total recipients submitted

accepted_count

number

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

Your EngageLab dev key

ENGAGELAB_DEV_SECRET

Yes

Your 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 transient failures

Troubleshooting

Server fails to start with "Missing required environment variable"

  • Make sure both ENGAGELAB_DEV_KEY and ENGAGELAB_DEV_SECRET are set in the env block of your MCP client config.

send_sms returns error code 3002 ("invalid template id format")

  • Check that your template ID matches an approved template in the EngageLab console.

send_sms returns error code related to template params

  • Verify that template.params keys 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.

License

MIT

Available Tools

1 tool
send_smsSend SMSA

Send SMS through EngageLab using a template. Requires ENGAGELAB_DEV_KEY and ENGAGELAB_DEV_SECRET environment variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget phone numbers.
templateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
messageNo
plan_idNo
successYes
message_idNo
total_countNo
accepted_countNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (write operation), idempotentHint=false, and openWorldHint=true, so the safety profile is largely covered. The description adds the requirement for authentication via environment variables, which is useful context. However, it does not disclose behaviors such as side effects (e.g., actual SMS delivery), rate limits, or failure handling, so it adds only modest value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action and includes essential setup information. Every word earns its place, with no redundant or vague content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has nested objects, an output schema (not shown but indicated), and annotations. The description covers the basic purpose and environment requirements, but does not mention anything about the array nature of 'to', potential multi-recipient behavior, or the need for pre-approved templates (though the schema mentions 'Approved EngageLab SMS template ID'). With an output schema present, return values need not be described, but the description could still be more complete regarding input prerequisites and behavioral nuances.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, with the outer 'template' object lacking a description, and the tool description does not compensate by explaining the parameters. The schema itself provides descriptions for 'to' and the inner fields of 'template' (id and params), but the description merely mentions 'using a template' without elaborating on required structure or parameter semantics. This leaves gaps that could confuse an agent about how to construct valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send SMS'), the target system ('EngageLab'), and the method ('using a template'). It is specific and unambiguous, making it easy for an agent to understand what this tool does even without sibling tools for comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by mentioning the required environment variables (ENGAGELAB_DEV_KEY and ENGAGELAB_DEV_SECRET), which is important for successful invocation. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions, though no sibling tools exist. This gives clear context but no when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • First observedsend_sms

TDQS

A3.8/5.0
Disambiguation5/5

Only one tool exists, so there is no possibility of ambiguity between tools. Every tool has a clearly distinct purpose by virtue of being the only tool.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (send_sms), which is consistent and predictable. With only one tool, naming consistency is trivially maintained.

Tool Count3/5

With just one tool, the server feels thin for an SMS integration, as typical SMS APIs offer more functionality like status checks or template management. However, for a focused send-only use case, it may be appropriate.

Completeness2/5

The tool surface is limited to sending SMS, leaving obvious gaps such as checking delivery status, managing templates, or retrieving message history. Agents cannot perform these operations, which may cause failures for common SMS workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered SMS messaging through Twilio with automatic conversation threading, message status tracking, and webhook support for receiving inbound messages.
    80
    1
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI agents to send, receive, schedule, and manage SMS and MMS messages using the Twilio Programmable Messaging API. It provides comprehensive tools for handling bulk messaging, conversation threads, and real-time inbox monitoring through a secure, production-grade architecture.
    16
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to send SMS, manage contacts, verify numbers, and query campaigns via SMS Masivos platform using natural language.
    30
    26
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevEngageLab/engagelab-sms-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server