SendPulse WhatsApp MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SENDPULSE_ACCOUNTS | No | Several accounts, as JSON: {"brand_a":{"id":"...","secret":"..."},"brand_b":{...}}. Every tool then takes an account argument. Ignored when SENDPULSE_CLIENT_ID and SENDPULSE_CLIENT_SECRET are set. | |
| SENDPULSE_CLIENT_ID | No | SendPulse API Client ID from Settings > API > Client credentials. Used with SENDPULSE_CLIENT_SECRET for a single account. | |
| SENDPULSE_READ_ONLY | No | Set to 1 to expose only the 10 read tools. Sending, tagging, flows and campaigns are not registered at all. | |
| SENDPULSE_CLIENT_SECRET | No | SendPulse API Client Secret from Settings > API > Client credentials. Used with SENDPULSE_CLIENT_ID for a single account. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sendpulse_list_botsA | List all connected WhatsApp bots for an account. Use this first to get bot IDs. |
| sendpulse_get_bot_statsB | Get subscriber counts and message statistics for a specific bot. |
| sendpulse_get_contactA | Get a WhatsApp contact's details by their contact ID. |
| sendpulse_get_contacts_by_tagB | Get all contacts that have a specific tag. |
| sendpulse_create_contactB | Create a new WhatsApp contact by phone number. |
| sendpulse_send_messageA | Send a message to a contact. Only works within the 24-hour messaging window after the contact last messaged. Use sendpulse_send_template outside that window. |
| sendpulse_send_templateA | Send a pre-approved WhatsApp template to a contact. Works outside the 24-hour window. Templates must be approved in Meta Business Manager. |
| sendpulse_send_template_by_phoneA | Send a pre-approved WhatsApp template directly by phone number without needing a contact ID. |
| sendpulse_set_contact_variableB | Set one or more custom variables on a contact. |
| sendpulse_set_contact_tagsB | Add one or more tags to a contact. |
| sendpulse_set_contact_nameC | Update the display name of a WhatsApp contact in SendPulse. |
| sendpulse_remove_contact_tagC | Remove a specific tag from a contact. |
| sendpulse_pause_contact_automationA | Pause all automated flows for a contact for a specified number of minutes (e.g. while a human agent is handling the chat). |
| sendpulse_resume_contact_automationB | Resume automated flows for a contact, cancelling any active pause. |
| sendpulse_disable_contactB | Disable a contact so they stop receiving bot messages. |
| sendpulse_enable_contactA | Re-enable a previously disabled contact. |
| sendpulse_list_chatsB | List all active chats for a WhatsApp bot. |
| sendpulse_get_chat_messagesC | Get message history for a contact. |
| sendpulse_list_flowsB | List all automation flows configured for a bot. |
| sendpulse_run_flowC | Trigger a specific automation flow for a contact. |
| sendpulse_run_flow_by_triggerC | Trigger an automation flow for a contact using a keyword trigger. |
| sendpulse_send_campaignB | Send a broadcast message to all bot subscribers. Optionally schedule with send_at or filter recipients. |
| sendpulse_send_template_campaignB | Send a pre-approved WhatsApp template to all bot subscribers as a campaign. |
| sendpulse_list_tagsB | List all contact tags defined for a bot. |
| sendpulse_list_variablesB | List all custom contact variables defined for a bot. |
| sendpulse_list_triggersB | List all keyword triggers configured for a bot's flows. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Most tools have clearly distinct resource+action purposes, but several pairs can be confused: send_campaign vs send_template_campaign, send_template vs send_template_by_phone, and run_flow vs run_flow_by_trigger. Descriptions clarify the differences, so an agent can recover, but selection requires careful reading.
All tool names follow a consistent sendpulse_ prefix plus snake_case verb_noun/verb_noun_qualifier pattern (e.g., sendpulse_create_contact, sendpulse_get_contacts_by_tag, sendpulse_set_contact_variable). No mixed conventions or vague naming.
At 26 tools, the surface is heavy for a WhatsApp bot-management server, and some pairs feel like variants of the same operation (run_flow/run_flow_by_trigger, enable/disable contact, send_campaign/send_template_campaign). It is not extreme, but the count is borderline bloated.
Core lifecycle operations are covered: contacts (create/get/enable/disable/tag/variable/name/pause/resume), messaging and templates, campaigns, flows, triggers, chats, bots, and stats. Minor gaps exist, such as no hard delete-contact operation and no direct listing of templates or campaigns, but agents can work around them.