Skip to main content
Glama
jobinpjoseph707

Touch Flow Base (MCP Counter POC)

MCP Counter POC - Code Execution Architecture

Overview

This is a proof-of-concept (POC) demonstrating the "Code execution with MCP" pattern, which enables AI agents to execute JavaScript code on a server to control external applications. This architecture can be used as a foundation for building interactive, agent-controlled applications.

What Does This POC Do?

This POC implements a Model Context Protocol (MCP) server that:

  1. Exposes a run_script tool to AI agents (like Claude via Gemini CLI)

  2. Executes JavaScript code in a sandboxed environment

  3. Controls a web-based counter application via WebSocket

  4. Synchronizes execution with frontend animations

MCP Counter POC - Code Execution Architecture

Overview

This is a proof-of-concept (POC) demonstrating the "Code execution with MCP" pattern, which enables AI agents to execute JavaScript code on a server to control external applications. This architecture can be used as a foundation for building interactive, agent-controlled applications.

What Does This POC Do?

This POC implements a Model Context Protocol (MCP) server that:

  1. Exposes a run_script tool to AI agents (like Claude via Gemini CLI)

  2. Executes JavaScript code in a sandboxed environment

  3. Controls a web-based counter application via WebSocket

  4. Synchronizes execution with frontend animations

Key Capability: Agent-Controlled UI

An AI agent can write JavaScript code that directly controls the counter displayed in a web browser, with execution paused until animations complete to ensure smooth user experience.

Architecture

graph TD User[User Mobile/Desktop] -->|HTTPS| Vercel[Vercel Frontend] Vercel -->|WebSocket| Tunnel[Localtunnel URL] Tunnel -->|Tunnel| LocalServer[Local Server :3000] LocalServer -->|MCP| Agent[AI Agent (Gemini)] LocalServer -->|Sandbox| VM[VM Context]

Components

  1. server.js - MCP server with:

    • Express web server (port 3000)

    • WebSocket server for real-time communication

    • MCP server exposing run_script tool

    • VM sandbox for secure code execution

  2. index.html - Frontend (Deployed on Vercel) with:

    • Real-time counter display

    • WebSocket client connecting to Localtunnel URL

    • Animation system (3-second delay per update)

    • Pause/Resume controls

  3. launcher.js - Launcher for MCP integration

    • Spawns server.js with correct environment

    • Captures error logs for debugging

The "Code Execution with MCP" Pattern

Traditional Approach (Inefficient)

Agent calls: update_count(1) → Server updates → Frontend shows 1 Agent waits... Agent calls: update_count(2) → Server updates → Frontend shows 2 Agent waits... Agent calls: update_count(3) → Server updates → Frontend shows 3

Problem: Multiple round-trips to the agent for simple loops.

Code Execution Approach (Efficient)

Agent calls: run_script({ code: ` for (let i = 1; i <= 3; i++) { await update_count(i); } ` })

The server executes the entire loop, pausing at each update_count() call until the frontend animation completes.

Benefit: Complex logic runs in a single agent turn, reducing token usage and latency.

How It Works

  1. Agent Generates Code

    • Claude (or another LLM) writes JavaScript to accomplish a task

    • Sends code via the run_script MCP tool

  2. Server Executes in Sandbox

    • Code runs in a VM context with access to:

      • update_count(n): Updates counter and pauses until frontend confirms

      • console.log(): Captures logs returned to agent

      • setTimeout, Promise: For delays and async operations

  3. WebSocket Synchronization

    • Server broadcasts count updates to frontend

    • Frontend displays animation (3-second delay)

    • Frontend sends turn_complete signal when ready

    • Server resumes script execution

  4. Agent Receives Result

    • Script logs and execution status returned to agent

    • Agent can continue with next actions

Setup & Usage

1. Installation

npm install

2. Backend & MCP Setup

  1. Start the local backend:

    node server.js
  2. Configure Gemini (.gemini/settings.json):

    { "mcpServers": { "pm-jarvis": { "command": "node", "args": ["C:\\path\\to\\project\\launcher.js"] } } }

3. Mobile Access (Localtunnel)

To access the app from a mobile device, expose your local backend:

npx localtunnel --port 3000
  • Copy the URL (e.g., https://example.loca.lt).

  • Important: Visit this URL in your browser first and enter your IP as the password.

4. Frontend (Vercel)

  1. Deploy to Vercel:

    vercel deploy --prod
  2. Open the Vercel URL on your device.

  3. Go to Settings and enter your Localtunnel URL.

Use Cases as Base Architecture

This POC can be adapted for:

1. Agent-Controlled Dashboards

  • Replace counter with charts/graphs

  • Agent updates visualizations based on data analysis

2. Interactive Forms & Workflows

  • Agent fills forms step-by-step

  • Validates inputs and handles errors

3. Real-time Notifications

  • Agent processes events and updates UI

  • Users see live status without polling

4. Game Controllers

  • Agent plays games by executing move sequences

  • UI updates reflect game state

5. IoT Device Control

  • Replace WebSocket frontend with IoT devices

  • Agent sends control sequences to hardware

License

MIT

References

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jobinpjoseph707/touch-flow-base'

If you have feedback or need assistance with the MCP directory API, please join our Discord server