VNC远程控制工具

一个基于模型上下文协议(MCP)的VNC服务器,允许AI助手通过VNC连接、查看和控制远程桌面。

  • by signal-slot
  • C++
  • 本地部署
  • 更新于
在 GitHub 查看 signal-slot/mcp-vnc

使用说明

mcp-vnc

一种MCP(模型上下文协议)服务器,将VNC客户端操作作为工具公开。允许AI助手通过VNC连接、查看和控制远程桌面。

安装

从以下网址下载适用于您平台的最新二进制文件 发布:

平台 二进制
Linux x64 mcp-vnc-linux-x64
macOS arm64 mcp-vnc-macos-arm64
Windows x64 mcp-vnc-windows-x64.exe

在macOS上,使用前需要删除隔离属性:

xattr -cr /path/to/mcp-vnc-macos-arm64
{
  "mcpServers": {
    "vnc": {
      "command": "/path/to/mcp-vnc-linux-x64"
    }
  }
}

码头工人

docker pull ghcr.io/signal-slot/mcp-vnc
{
  "mcpServers": {
    "vnc": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--network=host", "ghcr.io/signal-slot/mcp-vnc"]
    }
  }
}

从源代码构建

依赖项

  • CMake 3.16+
  • Qt 6(核心、网络、小部件、多媒体)
  • qtv客户端 (Qt6::VncClient)
  • qtmcp (Qt6::McpServer)

构建

git submodule update --init
cmake -B build -DCMAKE_BUILD_TYPE=Release -G Ninja
cmake --build build

用法

{
  "mcpServers": {
    "vnc": {
      "command": "/path/to/build/mcp-vnc/mcp-vnc"
    }
  }
}

码头工人

docker build -t mcp-vnc .
docker run --rm -i --network=host mcp-vnc

工具

工具 说明
connect 连接到VNC服务器(主机、端口、密码)
disconnect 断开与VNC服务器的连接
screenshot 捕获屏幕(全屏或区域)
save 将屏幕截图保存到文件
status 获取连接状态
mouseMove 移动鼠标光标
mouseClick 单击鼠标按钮(左/中/右)
doubleClick 双击某个位置
mousePress 按下鼠标按钮而不松开
mouseRelease 松开鼠标按钮
longPress 按住鼠标按钮一段时间
dragAndDrop 从当前位置拖动到目标
sendKey 发送X11 keysym键事件
sendText 键入文本字符串
setPreview 显示/隐藏实时VNC预览窗口
setPreviewTitle 设置预览窗口的标题
setInteractive 启用/禁用将输入从预览窗口转发到VNC服务器
setStaysOnTop 切换预览窗口是否位于其他窗口的顶部
checkPixelColor 检查像素是否与预期颜色匹配
waitForColor 轮询像素,直到它与颜色匹配(超时)
setClipboard 将文本发送到远程剪贴板
getClipboard 从远程剪贴板接收文本
setClipboardImage 将图像发送到远程剪贴板(扩展剪贴板DIB)
getClipboardImage 从远程剪贴板(扩展剪贴板DIB)接收图像
startRecording 开始将VNC屏幕录制为MP4文件
stopRecording 停止当前屏幕录制
setMacroDir 设置保存和加载宏的目录
createMacro 使用给定名称创建一个新的空宏
addMacroStep 向现有宏添加步骤
playMacro 按顺序执行所有步骤播放已保存的宏
listMacros 列出宏目录中所有已保存的宏
getMacro 获取宏的完整JSON内容
deleteMacro 删除已保存的宏文件

许可证

仅限LGPL-3.0或仅限GPL-2.0或仅限GPR-3.0