π WhatsApp Flows API MCP Server
LocalAbout π WhatsApp Flows API MCP Server
A containerized MCP server for managing interactive WhatsApp surveys and collecting responses, with ERP integration options and background processing for large customer lists.
Key features
- 01Create and send WhatsApp surveys
- 02Integrate with ERP systems
- 03Process jobs in the background
- 04Monitor jobs and queue statistics
- 05Manage Redis through a web UI
Use cases
- 01Send surveys to large customer lists
- 02Connect surveys with ERP systems
- 03Track survey job progress
- 04Inspect Redis data and performance
MCP support
Exposes tools to send surveys as background jobs, check job status, and retrieve queue statistics for MCP clients.
Configuration
Local server config is the same for every client. Copy it into your clientβs MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEπ WhatsApp Flows API MCP Server
A containerized Model Context Protocol (MCP) server for creating and managing WhatsApp surveys with ERP system integration
β¨ Features
- π³ Dockerized Architecture - Complete containerized setup with Redis and background processing
- π§ Modular ERP Integration - Support for Business Central, SAP, Oracle, and custom ERP systems
- β‘ Background Processing - Async job processing for handling large customer lists
- π± WhatsApp Flow Management - Create and send interactive surveys via WhatsApp Business API
- π Monitoring Tools - Built-in dashboards for job monitoring and Redis management
- π Development Support - Hot reload and development containers for rapid iteration
π Quick Start
Prerequisites
Before you begin, ensure you have:
- β Docker and Docker Compose installed
- β WhatsApp Business API credentials
- β Environment variables configured
1οΈβ£ Clone and Configure
git clone https://github.com/Ronnie-Leon76/whatsapp-flows-mcp-server.git
cd whatsapp-flows-mcp-server
# Copy and configure environment variables
cp .env.example .env
# Edit .env with your WhatsApp Business API credentials
2οΈβ£ Start Services
π Production Mode
make start
# or
./scripts/start.sh
π οΈ Development Mode (with hot reload)
make start-dev
# or
./scripts/start-dev.sh
3οΈβ£ Access Services
| Service | URL | Description |
|---|---|---|
| MCP Server | Running in container | Main MCP server (stdio transport) |
| Job Dashboard | http://localhost:3001 | Monitor background jobs |
| Redis Commander | http://localhost:8081 | Redis management interface |
| Redis | localhost:6379 | Redis instance |
ποΈ Architecture
Docker Services Overview
graph TB
A[MCP Server] --> D[Redis Job Queue]
B[Job Worker 1] --> D
C[Job Worker 2] --> D
D --> E[Job Dashboard]
D --> F[Redis Commander]
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#f3e5f5
style D fill:#ffebee
style E fill:#e8f5e8
style F fill:#fff3e0
Core Services
| Service | Purpose | Replicas |
|---|---|---|
| mcp-server | Main MCP server | 1 |
| redis | Job queue and caching | 1 |
| job-worker | Background job processing | 2 |
| job-dashboard | Job monitoring web UI | 1 |
| redis-commander | Redis management UI | 1 |
π οΈ Commands Reference
Make Commands
| Command | Description |
|---|---|
make help | π Show all available commands |
make build | π¨ Build Docker images |
make start | βΆοΈ Start production services |
make start-dev | π οΈ Start development services |
make stop | βΉοΈ Stop all services |
make logs | π View logs from all services |
make logs-mcp | π View MCP server logs |
make logs-celery | π View worker logs |
make clean | π§Ή Clean up Docker resources |
make restart | π Restart all services |
make shell-mcp | π Open shell in MCP container |
make shell-celery | π Open shell in worker container |
make redis-cli | πΎ Open Redis CLI |
NPM Scripts
npm run docker:build # Build Docker images
npm run docker:start # Start production services
npm run docker:start-dev # Start development services
npm run docker:stop # Stop all services
npm run docker:logs # View logs
βοΈ Configuration
π Required Environment Variables
# WhatsApp Business API Configuration
WHATSAPP_ACCESS_TOKEN=your_access_token_here
WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id_here
WHATSAPP_BUSINESS_ACCOUNT_ID=your_business_account_id_here
WHATSAPP_VERIFY_TOKEN=your_verify_token_here
π§ Optional Environment Variables
# Redis Configuration (auto-configured in Docker)
REDIS_URL=redis://redis:6379/0
# Worker Configuration
WORKER_CONCURRENCY=5
# Dashboard Configuration
PORT=3001
# Paths (auto-configured in Docker)
CONFIG_PATH=/app/config
SURVEYS_PATH=/app/surveys
π οΈ Development
Hot Reload Development
# Start development environment with hot reload
make start-dev
# View development logs
docker-compose -f docker-compose.dev.yml logs -f
Local Development (without Docker)
# Start Redis locally
docker run -d -p 6379:6379 redis:7-alpine
# Install dependencies
npm install
# Start MCP server
npm run dev
# Start worker (in separate terminal)
cd celery_app
celery -A tasks worker --loglevel=info
π Monitoring & Debugging
π Job Dashboard
Access at http://localhost:3001 to:
- β Monitor active/completed jobs
- π View job details and progress
- π₯ Monitor worker status
- β‘ Real-time job execution tracking
πΎ Redis Commander
Access at http://localhost:8081 to:
- π Browse Redis keys
- π Monitor Redis performance
- ποΈ View stored data
- π§ Debug Redis issues
π§ New MCP Tools
send-survey- Background job processing for large customer listsget-job-status- Monitor background job progressget-queue-stats- View job queue statistics
π Viewing Logs
# All services
make logs
# Specific service
docker-compose logs -f mcp-server
docker-compose logs -f job-worker
docker-compose logs -f redis
# Follow logs in real-time
docker-compose logs -f --tail=100
π Production Deployment
Docker Compose Production
# Start production services
make start
# Scale workers
docker-compose up -d --scale job-worker=4
# Update services
docker-compose pull
docker-compose up -d
π₯ Health Checks
All services include comprehensive health checks:
| Service | Health Check |
|---|---|
| Redis | redis-cli ping |
| MCP Server | Node.js health endpoint |
| Job Worker | Worker status ping |
πΎ Persistent Data
Data persistence through Docker volumes:
| Volume | Purpose |
|---|---|
redis_data | Redis database |
mcp_config | ERP configurations |
mcp_surveys | Survey definitions |
mcp_logs | Application logs |
worker_logs | Worker logs |
π§ Troubleshooting
Common Issues
π« Services won't start
# Check Docker status
docker-compose ps
# View service logs
make logs
# Check system resources
docker stats
π΄ Redis connection issues
# Test Redis connection
make redis-cli
ping
# Check Redis logs
docker-compose logs redis
β οΈ Jobs not processing
# Check worker status
make logs-celery
# Access job dashboard
open http://localhost:3001
# Check Redis queue
make redis-cli
LLEN job_queue
π Environment variables not loaded
# Verify .env file exists and is configured
cat .env
# Restart services
make restart
# Check environment in container
docker-compose exec mcp-server env | grep WHATSAPP
π Debugging
# Access container shells
make shell-mcp # MCP server container
make shell-celery # Worker container
# View container resources
docker stats
# Inspect container configuration
docker-compose config
π License
This project is licensed under the MIT License - see the LICENSE file for details.
β Star this repository if you find it helpful!
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.