Sponsored by Deepsite.site

🚀 WhatsApp Flows API MCP Server

Created By
Ronnie-Leon766 months ago
WhatsApp Flows MCP Server for business to automate survey creation and data collection through WhatsApp platform
Content

🚀 WhatsApp Flows API MCP Server

Docker TypeScript Redis WhatsApp

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

ServiceURLDescription
MCP ServerRunning in containerMain MCP server (stdio transport)
Job Dashboardhttp://localhost:3001Monitor background jobs
Redis Commanderhttp://localhost:8081Redis management interface
Redislocalhost:6379Redis 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

ServicePurposeReplicas
mcp-serverMain MCP server1
redisJob queue and caching1
job-workerBackground job processing2
job-dashboardJob monitoring web UI1
redis-commanderRedis management UI1

🛠️ Commands Reference

Make Commands

CommandDescription
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 lists
  • get-job-status - Monitor background job progress
  • get-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:

ServiceHealth Check
Redisredis-cli ping
MCP ServerNode.js health endpoint
Job WorkerWorker status ping

💾 Persistent Data

Data persistence through Docker volumes:

VolumePurpose
redis_dataRedis database
mcp_configERP configurations
mcp_surveysSurvey definitions
mcp_logsApplication logs
worker_logsWorker 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!

Report Bug · Request Feature · Contribute

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Serper MCP ServerA Serper MCP Server
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
CursorThe AI Code Editor
Tavily Mcp
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
WindsurfThe new purpose-built IDE to harness magic
DeepChatYour AI Partner on Desktop
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Playwright McpPlaywright MCP server
ChatWiseThe second fastest AI chatbot™
Amap Maps高德地图官方 MCP Server