Remote Control (Electrobun)
БесплатноНе проверенEnables remote desktop control with screen capture and mouse/keyboard simulation through an MCP server exposed via a WebSocket tunnel.
Описание
Enables remote desktop control with screen capture and mouse/keyboard simulation through an MCP server exposed via a WebSocket tunnel.
README
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.
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 definitions
Getting started
bun install
bun start # run (electrobun dev)
bun dev # run with file watching
bun run build:canary # build / verify it compiles
In 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/uinput
This is session-only (does not survive reboot). Manual equivalent:
sudo chmod 666 /dev/uinput
Do 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 |
|---|---|
get_system_info |
Host details: screen size (the click coordinate space), OS/distro, kernel, arch, session (Wayland/X11), hostname, time. |
screenshot |
JPEG (90% quality) of the shared screen (requires active screen sharing). |
click |
Click at absolute pixel x,y (button: left/right/middle). |
type_text |
Type a string (US layout; non-ASCII skipped + reported). |
press_key |
Press a named key / char, optional ctrl/shift/alt/meta. |
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.sh
Paste 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).
Установка Remote Control (Electrobun)
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Overtorment/remote-control-mcpFAQ
Remote Control (Electrobun) MCP бесплатный?
Да, Remote Control (Electrobun) MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Remote Control (Electrobun)?
Нет, Remote Control (Electrobun) работает без API-ключей и переменных окружения.
Remote Control (Electrobun) — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Remote Control (Electrobun) в Claude Desktop, Claude Code или Cursor?
Открой Remote Control (Electrobun) на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Remote Control (Electrobun) with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
