MCPWhatsApp
WhatsApp MCP Assistant is a client-server application designed to send and schedule WhatsApp messages. It uses Mistral's language model for interpreting user intents and Twilio for messaging. The system offers a CLI interface for ease of use.
WhatsApp MCP Assistant (Client-Server)
This project builds a client-server pipeline to send and schedule WhatsApp messages using natural language. The server interprets user intent with Mistral's LLM and uses Twilio to perform the actual WhatsApp messaging.
Files
mcp_server.py
: The main MCP server that uses Mistral for interpreting user input and calls Twilio to send messages.mcp_client.py
: Simple CLI client for interacting with the server using free-form natural language.config.py
: Stores API keys and constants including phone number config.
Server-Client Idea
The server parses your intent using Mistral's LLM and converts it into actionable instructions (like sending a message). The client is a CLI interface where you type prompts like "Send a message to Nir", and the backend handles the rest.
Twilio:
Twilio provides a programmable WhatsApp messaging API. It's used here to send messages or simulate scheduling via WhatsApp.
⚠️ WhatsApp 24-Hour Window Limitation (Twilio)
If you're using Twilio's WhatsApp API, note that freeform messages (i.e., regular text messages) are only allowed within a 24-hour window after the user last messaged your WhatsApp number.
If you attempt to send a message outside of that window, you'll see this error in your Twilio dashboard: "Failed to send freeform message because you are outside the allowed window. If you are using WhatsApp, please use a Message Template"
✅ To fix this:
- You must use a pre-approved Message Template for messages sent after the 24-hour window.
- You can create templates in your Twilio Console > Messaging > Templates.
💡 For local testing:
If you’re just testing this with your own number and it’s failing, make sure you’ve sent a message to the Twilio number from your own WhatsApp recently — that resets the 24-hour window.
MCP Idea:
The MCP Server wraps a function-calling capable LLM (Mistral) to dynamically route user intent to appropriate tools (send/schedule WhatsApp messages). The client allows CLI-based prompt entry.
How to Run
-
Install dependencies:
pip install twilio requests fastapi
-
Update
config.py
with real values. -
Run the server:
python mcp_server.py
-
In another terminal, run the client:
python mcp_client.py