Are you the author? Sign in to claim
Remote desktop control for AI
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).

npm install -g @hrrrsn/mcp-vnc
git clone https://github.com/hrrrsn/mcp-vnc
cd mcp-vnc
npm install
npm run build
Locate and open your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonAdd 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"
}
}
}
}
Please refer to the VS Code documentation
The MCP server provides the following tools for remote desktop control:
| Parameter | Required | Type | Description | Default |
|---|---|---|---|---|
x | ✅ | number | X coordinate | - |
y | ✅ | number | Y coordinate | - |
button | ❌ | string | Mouse button (left, right, middle) | left |
double | ❌ | boolean | Double-click instead of single click | false |
Example: vnc_click(x=100, y=200, button="right", double=true)
| Parameter | Required | Type | Description |
|---|---|---|---|
x | ✅ | number | X coordinate |
y | ✅ | number | Y coordinate |
Example: vnc_move_mouse(x=500, y=300)
| Parameter | Required | Type | Description |
|---|---|---|---|
key | ✅ | string | Key or key combination to press |
Supported Keys:
a, Enter, F1, Escape, Up, Down, Tab, SpaceCtrl+c, Alt+F4, Ctrl+Alt+Delete, Shift+TabCtrl, Alt, Shift, Super/Win, Meta/CmdExamples:
vnc_key_press(key="Enter")vnc_key_press(key="Ctrl+Alt+Delete")| Parameter | Required | Type | Description | Default |
|---|---|---|---|---|
text | ✅ | string | Text to type | - |
enter | ❌ | boolean | Press Enter after typing | false |
Example: vnc_type_text(text="Hello World!", enter=true)
| Parameter | Required | Type | Description |
|---|---|---|---|
lines | ✅ | string[] | Array of lines to type |
Example: vnc_type_multiline(lines=["Line 1", "Line 2", "Line 3"])
| Parameter | Required | Type | Description | Default |
|---|---|---|---|---|
delay | ❌ | number | Delay before screenshot (0-300000ms) | 0 |
Example: vnc_screenshot(delay=1000) - Wait 1 second before capture
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows