Allow your claws to do things remotely on a Desktop machine via MCP
by @wentbackward
Full remote desktop control of a machine via Remote Claws MCP. Use when asked to: take a screenshot of the remote desktop; click, type, or drag with the mous...
clawhub install remote-clawsπ About This Skill
name: remote-claws description: "Full remote desktop control of a machine via Remote Claws MCP. Use when asked to: take a screenshot of the remote desktop; click, type, or drag with the mouse/keyboard on the remote machine; run commands or scripts; automate a Chromium browser on the remote machine; read or write files on the remote machine." homepage: https://github.com/wentbackward/remote-claws
Remote Claws β Remote Desktop Control
Controls a remote machine over MCP/SSE. All 39 tools are provided by the remote-claws MCP server registered in openclaw.json.
When to Use This Skill
Use Remote Claws tools whenever you need to interact with the remote desktop machine β taking screenshots, clicking buttons, typing text, running commands, automating a browser, or transferring files. If the user asks you to do something "on the remote machine" or "on Windows," these are your tools.
Strategy
1. Screenshot first. Before clicking or typing, take a desktop_screenshot to see what's on screen. Use the coordinates from the screenshot to target actions.
2. Prefer browser tools for web tasks. browser_* tools use CSS selectors and are resolution-independent. Only use desktop_* tools for web tasks if the browser tools can't reach something (e.g. browser dialogs, file pickers).
3. Prefer element names over coordinates. desktop_click_element and desktop_get_element_text target UI controls by name β more reliable than coordinate clicking, which breaks when windows move.
4. Exec is async. exec_run starts a command and returns immediately. Use exec_get_output with wait=true if you need to block until it finishes.
5. Re-screenshot after actions. Windows may move, dialogs may appear. Take a fresh screenshot to verify the result before proceeding.
Tool Groups
Desktop (mouse, keyboard, screenshots)
desktop_screenshot β capture full screen or region [x, y, width, height]desktop_mouse_click β left/right/middle click at x, ydesktop_mouse_move β move cursor to x, ydesktop_mouse_drag β drag from start to end coordinatesdesktop_type_text β type ASCII text at current focus (ASCII only)desktop_press_key β press key or combo: "enter", "ctrl+c", "alt+f4"desktop_scroll β scroll at x,y; direction "up" or "down"desktop_find_window β find windows by title or class_name substringdesktop_focus_window β bring window to foreground by titledesktop_list_elements β list UI controls (buttons, fields) inside a windowdesktop_click_element β click a named UI element (more reliable than coords)desktop_get_element_text β read the value of a named UI elementBrowser (Chromium via Playwright β CSS selectors)
browser_navigate β go to a URLbrowser_click β click element by CSS selectorbrowser_fill β set input value (handles Unicode, triggers change events)browser_type β type keystroke-by-keystroke (appends, does not clear)browser_press_key β key press e.g. "Enter", "Control+a"browser_get_text β extract visible text from element (default: body)browser_get_html β get HTML markup of elementbrowser_eval_js β run JavaScript in page contextbrowser_screenshot β screenshot page or elementbrowser_wait_for β wait for element state: visible/hidden/attached/detachedbrowser_select_option β select a dropdown option by value or labelbrowser_go_back / browser_go_forwardbrowser_tabs_list / browser_tab_new / browser_tab_closeExec (run commands, async)
exec_run β start command; returns process_id immediatelyexec_get_output β read stdout/stderr; set wait=true to blockexec_send_input β send a line to stdin of a running processexec_kill β terminate a processexec_list β list all tracked processesFiles (base64 encoded)
file_write β write base64 content to a pathfile_read β read file as base64 (use offset/limit for large files)file_list β list directory; supports glob patterns, recursivefile_delete β delete file or empty directoryfile_move β move or rename file/directoryfile_info β get size, created, modified timestampsAuthentication & Security
The remote-claws MCP server requires a bearer token, configured in openclaw.json when registering the server. The server will reject unauthenticated connections with 401.
The server also supports IP allowlisting (allowed_ips), host header validation (allowed_hosts), and per-tool permission policies (permissions.json) to restrict which tools are available. See the setup guide and README for configuration details.
Important Notes
desktop_type_text is ASCII only. For Unicode, use browser_fill or clipboard: exec_run powershell Set-Clipboard, then desktop_press_key ctrl+v.