Labsco
MCP SERVER

macOS Remote Control

by senseisven

Drive a real Mac desktop over Screen Sharing — screenshot, click, type, drag — with nothing installed on the machine being controlled.

Desktop & OS Automation
Summary
Zero setup on the Mac being controlled — Screen Sharing is the whole install.

Because it speaks VNC rather than requiring an agent, any Mac with Screen Sharing turned on is reachable, including a rented one. The constraint to check first is authentication: only protocol 30 is supported, which is the Diffie-Hellman path macOS 11 and 12 use with older clients, so a modern-to-modern pairing may not negotiate. Point it only at machines you own or have permission to use.

What it is

A Python server that controls a macOS machine over VNC, using the Screen Sharing service that ships with macOS. Nothing has to be installed on the target Mac, which can be the same machine you are working on or a remote one. The repository also contains a browser chat app that drives the same server.

What you get
  • `remote_macos_get_screen` connects and returns a screenshot of the remote desktop
  • `remote_macos_send_keys` sends keyboard input
  • `remote_macos_mouse_move`, `remote_macos_mouse_click`, `remote_macos_mouse_double_click` and `remote_macos_mouse_scroll` act at given coordinates, with automatic coordinate scaling
  • `remote_macos_mouse_drag_n_drop` drags from one point and drops at another
  • `remote_macos_open_application` activates an application and returns its PID for later calls
  • All of them read connection details from the environment, so no call carries credentials
Requirements

Screen Sharing enabled on the target Mac with a VNC password set, and Docker on the machine running the server: `docker run -i` against the image `buryhuang/mcp-remote-macos-use:latest` with `MACOS_USERNAME`, `MACOS_PASSWORD` and `MACOS_HOST`. Only Apple Authentication protocol 30 is supported. The bundled web chat app additionally needs Docker Desktop, Node.js 18+ and an `OPENAI_API_KEY`.

Setup effort

One command plus a key — docker run -i -e MACOS_USERNAME=your_macos_username -e MACOS_PASSWORD=your_macos_password -e MACOS_HOST=your_macos_hostname_or_ip --rm buryhuang/mcp-remote-macos-use:latest, then supply credentials