Content
# 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](https://www.twilio.com/console/sms/whatsapp/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
1. Install dependencies:
```bash
pip install twilio requests fastapi
```
2. Update `config.py` with real values.
3. Run the server:
```bash
python mcp_server.py
```
4. In another terminal, run the client:
```bash
python mcp_client.py
```
Connection Info
You Might Also Like
awesome-mcp-servers
A collection of MCP servers.
git
A Model Context Protocol server for Git automation and interaction.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
oh-my-opencode
Background agents · Curated agents like oracle, librarians, frontend...
Appwrite
Build like a team of hundreds