LabscoMCP early access ↗
senseisvenMCP SERVER

macOS Remote Control

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

by senseisven ↗Desktop & OS AutomationCommunity

LABSCO 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 credentials — docker run -i -e MACOS_USERNAME=<YOUR_MACOS_USERNAME> -e MACOS_PASSWORD=<YOUR_MACOS_PASSWORD> -e MACOS_HOST=<YOUR_MACOS_HOST> --rm buryhuang/mcp-remote-macos-use:latest