System Architecture
High-level data flow between User, Tuya AI, MCP Servers, and the Rankify Cloud Bridge.
sequenceDiagram
participant User as 👤 User (T5AI Board)
participant Cloud as ☁️ Tuya AI Workflow
participant MCP_Browser as 🐳 Browser MCP (Docker/HF)
participant MCP_Device as 🐳 Device MCP (Docker/HF)
participant Vercel as 🚀 Cloud Bridge (Vercel)
participant Supabase as 💾 Supabase DB
participant Extension as 🧩 Chrome Extension (Local)
participant Browser as 🌐 Browser / Local PC
rect rgb(230, 240, 255)
Note over User, Cloud: 📢 PHASE 1: TRIGGER
User->>Cloud: Voice: "Open YouTube"
Cloud->>Cloud: Speech-to-Text (STT) & Intent Analysis
end
rect rgb(230, 255, 240)
Note over Cloud, Browser: ⚡ PHASE 2: BROWSER AUTOMATION (Direct Execution)
Note right of Cloud: Intent: Browser
Cloud->>MCP_Browser: execute_browser_command(...)
Note right of MCP_Browser: 📦 Docker Container
Tuya Client → localhost:7860 → FastAPI MCP_Browser->>Vercel: POST /api/execute Vercel->>Supabase: INSERT command (status=pending) loop Extension Polling (Every 3s) Extension->>Vercel: GET /api/poll Vercel->>Supabase: SELECT pending commands end Vercel-->>Extension: Return Command Extension->>Browser: Execute Script / Action Browser-->>Extension: Result Extension->>Vercel: POST /api/result Vercel->>Supabase: UPDATE command (result) Vercel-->>MCP_Browser: Return JSON Result MCP_Browser-->>Cloud: Action Success Cloud->>User: TTS: "Opened YouTube" end rect rgb(240, 255, 240) Note over Cloud, Browser: 🏠 PHASE 3: DEVICE CONTROL (Via Extension/Bridge) Note right of Cloud: Intent: IoT Control Cloud->>MCP_Device: control_device(...) Note right of MCP_Device: 📦 Docker Container
Tuya Client → localhost:7860 → FastAPI MCP_Device->>Vercel: POST /api/execute (type=device_control) Vercel->>Supabase: INSERT command Vercel-->>Extension: Return Command (via poll) Extension->>Browser: Local Device Control / API Browser-->>Extension: Success Extension->>Vercel: POST /api/result Vercel-->>MCP_Device: Result MCP_Device-->>Cloud: Action Success Cloud->>User: TTS: "Device turned on" end
Tuya Client → localhost:7860 → FastAPI MCP_Browser->>Vercel: POST /api/execute Vercel->>Supabase: INSERT command (status=pending) loop Extension Polling (Every 3s) Extension->>Vercel: GET /api/poll Vercel->>Supabase: SELECT pending commands end Vercel-->>Extension: Return Command Extension->>Browser: Execute Script / Action Browser-->>Extension: Result Extension->>Vercel: POST /api/result Vercel->>Supabase: UPDATE command (result) Vercel-->>MCP_Browser: Return JSON Result MCP_Browser-->>Cloud: Action Success Cloud->>User: TTS: "Opened YouTube" end rect rgb(240, 255, 240) Note over Cloud, Browser: 🏠 PHASE 3: DEVICE CONTROL (Via Extension/Bridge) Note right of Cloud: Intent: IoT Control Cloud->>MCP_Device: control_device(...) Note right of MCP_Device: 📦 Docker Container
Tuya Client → localhost:7860 → FastAPI MCP_Device->>Vercel: POST /api/execute (type=device_control) Vercel->>Supabase: INSERT command Vercel-->>Extension: Return Command (via poll) Extension->>Browser: Local Device Control / API Browser-->>Extension: Success Extension->>Vercel: POST /api/result Vercel-->>MCP_Device: Result MCP_Device-->>Cloud: Action Success Cloud->>User: TTS: "Device turned on" end
Did you know?
You must have minimal knowledge of terms from Tuya platform, procedure of creating
database, hosting site, etc.
If no, just clone repo to an IDE with AI coder agent model, they will help you in
everything just Vibe hijack.