mcp-vnc

leonszimmermann/mcp-vnc

3.2

If you are the rightful owner of mcp-vnc and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Model Context Protocol (MCP) Server to remotely control any desktop using LLMs over VNC.

mcp-vnc

Model Context Protocol (MCP) Server to remotely control any desktop using LLMs over VNC.

Supports Windows, Linux and MacOS; basically any VNC server (TightVNC / TigerVNC / RealVNC).
Also, VMware Workstation / Fusion has a built-in VNC server. Under you Virtual Machine's Settings > Advanced > Remote display over VNC. Enable it, and make sure to set a password. The port should be kept at default, 5900.

As an MCP client, I personally use the Anthropic Claude Desktop Application, with Sonnet/Opus 4 (currently the best model for computer use). Any MCP-compatible client should work.

DO NOT TRUST ANY LLM TO RUN YOUR PC AUTONOMOUSLY WITHOUT SUPERVISION.

Installation

Python required

This MCP server requires Python (including PIP).

Install the requirements

pip install --upgrade fastmcp pillow vncdotool

Download the MCP server script (mcp-vnc.py)

and save it to a permanent location. Use the absolute path for this in the args of your MCP VNC Server (e.g. C:/.../.../mcp-vnc.py or Linux/macOS: /Users/.../.../mcp-vnc.py).

Example claude_desktop_config.json

Can be found in Claude (Desktop App) > Settings > Developer > Edit Config

The path to you python executable can be found using "where python" in the Windows terminal, or "which python" in the terminal on Linux / MacOS.

Don't forget the double colon (::) instead of the normal single colon (:) in the host parameter.

{
    "mcpServers": {
        "computer": {
          "command": "/ABSOLUTE/PATH/TO/YOUR/PYTHON/EXECUTABLE/ENDING/IN/bin/python",
          "args": [
            "/PATH/TO/YOUR/mcp-vnc.py"
          ],
          "env": {
            "VNC_HOST": "localhost::5900",
            "VNC_PASS": "YOUR VNC PASSWORD"
          }
        }
      }
}

Usage

Make sure to set the screen resolution of your remote desktop to 1024 x 768, this currently works best.