Skip to main content
Glama

💻 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

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)

⌨️ Keyboard Control

Parameter

Required

Type

Description

key

string

Key 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

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"])

📸 Screen Capture

Parameter

Required

Type

Description

Default

delay

number

Delay 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.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hrrrsn/mcp-vnc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server