Omnichannel MCP: The "One-to-Many" Merchant Rail
What We Built
The Omnichannel MCP (Model Context Protocol) is an enterprise-grade AI dispatch system. It transforms a single natural language prompt into a synchronized distribution of localized marketing content across six channels (Email, WhatsApp, Push, Glance, PayU, Instagram). The system utilizes an MCP server to orchestrate LLM-powered generation (yielding 72 unique, culturally localized variants per deal) and dispatches them to a real-time Next.js Dashboard.
Key Architecture Decisions
- Dual-Transport Synchronization: Standard webhooks face payload size limits. We decoupled data transfer from signaling by persisting full heavy payloads (including rich Apple-grade HTML) to a Redis Audit Trail, then firing a lightweight "ping" to the UI. This ensures 100% atomic delivery and bypasses serverless 4KB limits.
- Resilience Engine (Exponential Backoff): To handle serverless cold-starts and network instability, the dispatcher uses strict retry logic with exponential backoff (2^n * 1000ms). Delivery attempts and recoveries are fully visible in the dashboard terminal.
- Zero-Config "Demo Mode": To ensure a frictionless evaluation experience, the MCP server gracefully falls back to a mocked "Zomato Gold" intelligence layer if API keys are omitted.
How to Run It Locally
The system is optimized for a zero-friction setup. You do not need to clone the repository or install dependencies.
Option A: Claude Desktop (Recommended)
- Update Config
Open your claude_desktop_config.json and add the specific server configuration:
{
"mcpServers": {
"grabon-omnichannel": {
"command": "npx",
"args": ["-y", "@santhoshramesh/grabon-mcp@1.1.5"],
"env": {
"GEMINI_API_KEY": "",
"UPSTASH_REDIS_REST_URL": "",
"UPSTASH_REDIS_REST_TOKEN": ""
}
}
}
}
(Leaving the keys blank safely triggers Demo Mode for instant evaluation).
- Open the Dashboard
Navigate to the Live Dashboard: omnichannel-mcp-dashboard.vercel.app
- Test the Integration
In Claude Desktop, prompt: "Distribute the Zomato Gold deal." Watch the dashboard populate with real-time payload deliveries and variant matrices.
Option B: Terminal / CLI Testing
If you prefer to test outside of Claude, you can instantly boot the server using the official MCP Inspector. Run this npx command in any terminal:
npx -y @modelcontextprotocol/inspector npx -y @santhoshramesh/grabon-mcp@1.1.5
(Note: To test with live payload persistence, append your GEMINI_API_KEY and UPSTASH keys as environment variables before the command).
What I'd Do Differently With More Time
If given more time to scale this beyond an MVP, I would focus on:
- True Message Queuing: Replace the lightweight
ntfy.shsignaling with a production-grade broker like Apache Kafka or AWS SQS to handle millions of concurrent webhook dispatches with guaranteed ordering. - End-to-End Testing: Implement Cypress or Playwright test suites to automate the verification of all 72 variant UI renders across different viewports.
- A/B Test Analytics Integration: Build an analytics pipeline to track the actual conversion rates of the "Urgency" vs. "Value" variants and feed that data back into the LLM context for continuous optimization.
- Authentication & Multi-Tenancy: Wrap the dashboard in NextAuth to allow different marketing teams (e.g., Food vs. Travel) to have scoped, secure views of their specific deal distributions.











