Atlas / MCP servers / hrrrsn / VNC Controller

VNC ControllerSAFE

mcp/hrrrsn/vnc-controller

Remote desktop control for AI

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
6 5r · 1w · 0d
Transport
stdio
License
MIT
Stars
57
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://nodejs.org) [](LICENSE) [](https://badge.fury.io/js/@hrrrsn%2Fmcp-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

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:
  2. macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Windows: %APPDATA%\Claude\claude_desktop_config.json
  4. Linux: ~/.config/Claude/claude_desktop_config.json
  1. 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

v

Read from source at commit f99e83c54055OBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp-vnc --env VNC_PASSWORD=${VNC_PASSWORD} -- npx -y @hrrrsn/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-vnc": {
      "command": "npx",
      "args": [
        "-y",
        "@hrrrsn/[email protected]"
      ],
      "env": {
        "VNC_PASSWORD": "${VNC_PASSWORD}"
      }
    }
  }
}
03

Exposed tools (6)

5 read · 1 write · 0 destructive.

ToolRiskDescription
vnc_clickreadClick at specified coordinates
vnc_key_pressreadPress a key or key combination
vnc_move_mousewriteMove mouse to specified coordinates
vnc_screenshotreadTake a screenshot of the current screen
vnc_type_multilinereadType multiple lines of text, separated by newlines
vnc_type_textreadType text string
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (3)

MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/test.ts:21
console.log(`   Password: ${process.env.VNC_PASSWORD ? '[CONFIGURED]' : '[NOT SET]'}\n`);
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@computernewb/nodejs-rfb, @modelcontextprotocol/sdk, sharp
Why it matters. 3 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOInventory / provenance · inv.oversize · CWE-1104
.github/screenshot.png
.github/screenshot.png
Why it matters. 2835175 bytes not read

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha f99e83c54055full audit observations/trust-audit/mcp-server/hrrrsn__vnc-controller.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08f99e83c54055SAFEB89first audit
06

Questions

What is the VNC Controller MCP server?

Remote desktop control for AI

What tools does VNC Controller expose?

6 in total: 5 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is VNC Controller safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does VNC Controller need?

It reads VNC_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does VNC Controller run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @hrrrsn/mcp-vnc at 1.0.2.

How current is this page?

The grade is for one exact copy of the source (f99e83c54055), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement