whatsapp-flows-mcp-server

Ronnie-Leon76/whatsapp-flows-mcp-server

3.2

If you are the rightful owner of whatsapp-flows-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A containerized Model Context Protocol (MCP) server for creating and managing WhatsApp surveys with ERP system integration.

Tools
  1. send-survey

    Background job processing for large customer lists.

  2. get-job-status

    Monitor background job progress.

  3. get-queue-stats

    View job queue statistics.

๐Ÿš€ 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 file for details.


โญ Star this repository if you find it helpful!

Report Bug ยท Request Feature ยท Contribute