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

Related MCP server: mcp-vnc

⚙️ 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",
        "VNC_TIMEOUT": "30000"
      }
    }
  }
}

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",
        "VNC_TIMEOUT": "30000"
      }
    }
  }
}

VNC_TIMEOUT (optional) sets how long each tool call waits for the VNC server to connect and deliver the initial frame, in milliseconds. Defaults to 30000.

VS Code

Please refer to the VS Code documentation

HTTP Transport (Streamable HTTP)

By default the server uses stdio. To expose it over HTTP instead:

# Via environment variables
VNC_HOST=192.168.1.100 VNC_PORT=5900 VNC_PASSWORD=secret \
MCP_TRANSPORT=http MCP_PORT=3000 mcp-vnc

# Or via CLI arguments
mcp-vnc --http --port 3000

The MCP endpoint is then available at http://localhost:3000/mcp. Client configuration example:

{
  "mcpServers": {
    "vnc-controller": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

Setting

Default

Description

MCP_TRANSPORT

stdio

Set to http to enable HTTP transport

MCP_PORT

3000

HTTP listen port

🛠️ 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.

A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that allows AI agents to remotely control Windows, Linux, and macOS systems via VNC. It provides tools for mouse and keyboard interaction, text input, and screen capturing.
    6
    527
    55
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables MCP-compatible LLMs to interact with any desktop accessible over VNC, providing tools for screen reading (OCR), mouse and keyboard control, and automation.
    13
    AGPL 3.0
  • A
    license
    B
    quality
    D
    maintenance
    Empowers AI agents to see, reason, and control computers via VNC, providing advanced vision features like OCR and image search, human-like input control, and optional SSH remote command execution.
    21
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

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/robotic-wings/vnc-mcp'

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