remote_macos_get_screenLABSCO 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_screenconnects and returns a screenshot of the remote desktopremote_macos_send_keyssends keyboard inputremote_macos_mouse_move,remote_macos_mouse_click,remote_macos_mouse_double_clickandremote_macos_mouse_scrollact at given coordinates, with automatic coordinate scalingremote_macos_mouse_drag_n_dropdrags from one point and drops at anotherremote_macos_open_applicationactivates 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
USE CASES
Letting a model see what is on screen
Take a screenshot of the remote desktop and reason about the actual window state rather than a description of it.
Working through a native app with no API
Open the application, then click and type your way through the flow.
Rearranging something by dragging
Drag from a start point to an end point in one call instead of scripting a press-move-release sequence.
Reaching a long page
Scroll at a coordinate, then re-screenshot to see what came into view.
8 tools
Listed in project docs. Your client may show a different list.
remote_macos_send_keysremote_macos_mouse_moveremote_macos_mouse_clickremote_macos_mouse_double_clickremote_macos_mouse_scrollremote_macos_open_applicationremote_macos_mouse_drag_n_dropBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
Requires
- docker on PATH
- MACOS_PASSWORD in your environment
- MACOS_USERNAME in your environment
- MACOS_HOST in your environment
- Screen Sharing enabled on the target Mac, with a VNC password set
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
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:latestMCP Clients
Claude Desktop
{
"mcpServers": {
"remote-macos-use": {
"command": "docker",
"args": [
"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"
]
}
}
}