MCP Hub
Back to servers

mcp-vnc

An MCP server that enables AI agents to remotely control Windows, Linux, and macOS systems via the VNC protocol, providing full mouse, keyboard, and screen capture capabilities.

Stars
18
Forks
2
Tools
6
Updated
Jan 16, 2026
Validated
Jan 18, 2026

💻 mcp-vnc

Node.js Version License: MIT npm version

A Model Context Protocol (MCP) server that enables AI agents to remotely control Windows, Linux, macOS or anything else that can run a VNC server (don't worry, it's probably fine).

Screenshot

🚀 Quick Start

Install from NPM

npm install -g @hrrrsn/mcp-vnc

Install from Source

git clone https://github.com/hrrrsn/mcp-vnc
cd mcp-vnc
npm install
npm run build

⚙️ Configuration

Claude Desktop

  1. Locate and open your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add the following configuration:

Using NPM Install:

{
  "mcpServers": {
    "vnc-controller": {
      "type": "stdio",
      "command": "mcp-vnc",
      "env": {
        "VNC_HOST": "192.168.1.100",
        "VNC_PORT": "5900",
        "VNC_PASSWORD": "your-vnc-password"
      }
    }
  }
}

Built from Source:

{
  "mcpServers": {
    "vnc-controller": {
      "type": "stdio",
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/mcp-vnc",
      "env": {
        "VNC_HOST": "192.168.1.100",
        "VNC_PORT": "5900",
        "VNC_PASSWORD": "your-vnc-password"
      }
    }
  }
}

VS Code

Please refer to the VS Code documentation

🛠️ Available Tools

The MCP server provides the following tools for remote desktop control:

🖱️ Mouse Control

vnc_click - Click at specified coordinates
ParameterRequiredTypeDescriptionDefault
xnumberX coordinate-
ynumberY coordinate-
buttonstringMouse button (left, right, middle)left
doublebooleanDouble-click instead of single clickfalse

Example: vnc_click(x=100, y=200, button="right", double=true)

vnc_move_mouse - Move mouse cursor
ParameterRequiredTypeDescription
xnumberX coordinate
ynumberY coordinate

Example: vnc_move_mouse(x=500, y=300)

⌨️ Keyboard Control

vnc_key_press - Send keys and key combinations
ParameterRequiredTypeDescription
keystringKey or key combination to press

Supported Keys:

  • Single keys: a, Enter, F1, Escape, Up, Down, Tab, Space
  • Key combinations: Ctrl+c, Alt+F4, Ctrl+Alt+Delete, Shift+Tab
  • Modifiers: Ctrl, Alt, Shift, Super/Win, Meta/Cmd

Examples:

  • vnc_key_press(key="Enter")
  • vnc_key_press(key="Ctrl+Alt+Delete")

📝 Text Input

vnc_type_text - Type single-line text
ParameterRequiredTypeDescriptionDefault
textstringText to type-
enterbooleanPress Enter after typingfalse

Example: vnc_type_text(text="Hello World!", enter=true)

vnc_type_multiline - Type multiple lines
ParameterRequiredTypeDescription
linesstring[]Array of lines to type

Example: vnc_type_multiline(lines=["Line 1", "Line 2", "Line 3"])

📸 Screen Capture

vnc_screenshot - Capture screen
ParameterRequiredTypeDescriptionDefault
delaynumberDelay before screenshot (0-300000ms)0

Example: vnc_screenshot(delay=1000) - Wait 1 second before capture

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Reviews

No reviews yet

Sign in to write a review