Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-vncTake a screenshot of the desktop so I can see what's on the screen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π» mcp-vnc
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).

π Quick Start
Install from NPM
Install from Source
βοΈ Configuration
Claude Desktop
Locate and open your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the following configuration:
Using NPM Install:
Built from Source:
VS Code
Please refer to the VS Code documentation
π οΈ Available Tools
The MCP server provides the following tools for remote desktop control:
π±οΈ Mouse Control
Parameter | Required | Type | Description | Default |
| β | number | X coordinate | - |
| β | number | Y coordinate | - |
| β | string | Mouse button ( |
|
| β | boolean | Double-click instead of single click |
|
Example: vnc_click(x=100, y=200, button="right", double=true)
Parameter | Required | Type | Description |
| β | number | X coordinate |
| β | number | Y coordinate |
Example: vnc_move_mouse(x=500, y=300)
β¨οΈ Keyboard Control
Parameter | Required | Type | Description |
| β | string | Key or key combination to press |
Supported Keys:
Single keys:
a,Enter,F1,Escape,Up,Down,Tab,SpaceKey combinations:
Ctrl+c,Alt+F4,Ctrl+Alt+Delete,Shift+TabModifiers:
Ctrl,Alt,Shift,Super/Win,Meta/Cmd
Examples:
vnc_key_press(key="Enter")vnc_key_press(key="Ctrl+Alt+Delete")
π Text Input
Parameter | Required | Type | Description | Default |
| β | string | Text to type | - |
| β | boolean | Press Enter after typing |
|
Example: vnc_type_text(text="Hello World!", enter=true)
Parameter | Required | Type | Description |
| β | string[] | Array of lines to type |
Example: vnc_type_multiline(lines=["Line 1", "Line 2", "Line 3"])
πΈ Screen Capture
Parameter | Required | Type | Description | Default |
| β | number | Delay before screenshot (0-300000ms) |
|
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.