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.
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.
- `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
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`.
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
