Remote Control MCP (Electrobun)
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Remote Control MCP (Electrobun)
A desktop remote-control MCP server built with Electrobun. It captures a user-selected screen and exposes mouse/keyboard control + screenshots as an MCP (Model Context Protocol) server, reachable from anywhere through a WebSocket tunnel — so external agents and tools can drive the machine.
Native input simulation currently targets Linux (via
/dev/uinput). See Setup & permissions.
Working on this codebase with an AI agent? Read AGENTS.md first — it documents the architecture and the non-obvious gotchas.
Features
Screen capture — pick a display via the Web
getDisplayMediaAPI and take JPEG screenshots (90% quality).Synthetic mouse — click at absolute pixel coordinates (left/right/middle).
Synthetic keyboard — type text (with human-like timing) and press named keys with modifiers.
Remote MCP server — 5 tools (
get_system_info,screenshot,click,type_text,press_key) exposed over a WebSocket tunnel with a stable public URL.In-app test panel — exercise clicks/typing/keys locally before going remote.
Related MCP server: win-rdp-mcp
Architecture (short version)
Electrobun runs two processes that talk over RPC:
Bun process (
src/bun/) — OS access:/dev/uinput(FFI),xrandr, persistent storage.Webview (
src/mainview/) — UI, screenshots, and the MCP server + WebSocket tunnel client.
Native actions are forwarded from the webview to Bun via RPC; screenshots are captured in the webview from the active screen-share stream. Full detail and the data-flow diagram live in AGENTS.md.
src/
├── bun/
│ ├── index.ts # RPC schema + handlers, window, screen-size detection, KV store
│ └── uinput.ts # FFI → /dev/uinput: VirtualMouse + VirtualKeyboard
└── mainview/
├── index.html # UI
├── index.css
├── index.ts # ScreenCaptureApp + McpPanel
└── mcp/ # tunnel client + MCP server bridge + tool definitionsGetting started
bun install
bun start # run (electrobun dev)
bun dev # run with file watching
bun run build:canary # build / verify it compilesIn the app, click Select Screen & Start Remote, choose a display, and the Remote MCP panel will show the public URL once the tunnel connects.
Setup & permissions
Input simulation creates kernel-level virtual devices through /dev/uinput, which
is root-only by default. On startup the app offers to grant access via pkexec
(graphical password prompt), running:
chmod 666 /dev/uinputThis is session-only (does not survive reboot). Manual equivalent:
sudo chmod 666 /dev/uinputDo not run the whole app with sudo.
Remote control via MCP
The app exposes a Streamable HTTP MCP endpoint at the public tunnel URL. Tools:
Tool | Description |
| Host details: screen size (the click coordinate space), OS/distro, kernel, arch, session (Wayland/X11), hostname, time. |
| JPEG (90% quality) of the shared screen (requires active screen sharing). |
| Click at absolute pixel |
| Type a string (US layout; non-ASCII skipped + reported). |
| Press a named key / char, optional |
Smoke test
smoke-mcp.sh drives a demo sequence (click → type "chrome" → down → enter):
./smoke-mcp.sh 'https://layerz.me:4433/mcp/<session>'
# or
MCP_URL='https://layerz.me:4433/mcp/<session>' ./smoke-mcp.shPaste the URL from the app's Remote MCP panel.
Security considerations
Screen sharing requires explicit user consent; the tunnel only connects after consent.
Once connected, the public URL lets remote clients control mouse/keyboard and read the screen — treat it like a remote-access credential and disconnect when not in use.
The tunnel never autostarts; it is tied to the screen-selection action.
Notes
US QWERTY keyboard layout assumed for synthetic typing.
Tunnel server:
wss://layerz.me:4433/connect(already deployed; configurable intunnel.ts).
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server to assist with JxBrowser development.
Securely control paired computers with ReMCP.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Use a person's computer after they approve it there: files, Terminal, browser, local MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that allows AI agents to remotely control Windows, Linux, and macOS systems via VNC. It provides tools for mouse and keyboard interaction, text input, and screen capturing.6262 npm61MIT
- AlicenseNot gradedqualityAmaintenanceEnables remote control of a Windows desktop via MCP, including screenshots, mouse and keyboard, window management, PowerShell, files, services, registry, scheduled tasks, event log, and network checks.15 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables remote AI agents to control a local, authenticated desktop browser over MCP through an outbound WebSocket bridge and Chrome extension, supporting tab management, navigation, page reading, clicking, typing, scrolling, screenshots, and JavaScript evaluation.1MIT
- AlicenseAqualityAmaintenanceUse the MCP servers on your computer from a cloud AI agent: one authenticated Streamable HTTP endpoint, an outbound WebSocket from your computer (no inbound port), and stdio and HTTP servers aggregated under aliases with per-server tool allowlists.2MIT