Ubuntu虚拟机控制服务器

一个通过SSH协议让AI助手与Ubuntu虚拟机交互的模型上下文协议(MCP)服务器,可执行命令、模拟键盘鼠标输入和截取屏幕。

  • by ltcg-addict
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ltcg-addict/ubuntu

使用说明

Ubuntu VM控制MCP服务器

一种模型上下文协议(MCP)服务器,允许AI助手使用SSH与Ubuntu VM交互。

目的

此MCP服务器为AI助手提供了一个安全的接口,以便在远程Ubuntu机器上执行基本的GUI操作。它可以执行命令,模拟键盘和鼠标输入,并捕获屏幕。

这要求目标Ubuntu VM有一个正在运行的图形桌面环境和必要的工具(xdotool, scrot)安装。

特性

  • execute_command:执行远程VM上的任何shell命令。
  • type_text:模拟键入文本。
  • click:在指定坐标处模拟鼠标点击。
  • get_active_window_title:检索当前活动窗口的标题。
  • take_screenshot:捕获屏幕并将图像作为base64编码字符串返回。

先决条件

  • 启用MCP工具包的Docker桌面。
  • 安装了桌面环境(如GNOME、XFCE)和SSH服务器的Ubuntu VM。
  • Ubuntu虚拟机上安装了以下工具: xdotool 和 scrot (sudo apt-get install xdotool scrot).
  • 配置用于访问VM的基于SSH密钥的身份验证。

安装

看 install_instructions.txt 文件以获取分步说明。

使用示例

在Claude Desktop中,您可以问:

  • “在我的Ubuntu虚拟机上打开一个终端。”
    • (这将使用 execute_command 命令如下 gnome-terminal)
  • “在我的VM上的活动窗口中键入‘hello world’。”
  • 在我的Ubuntu机器上,点击屏幕上100、150的位置
  • “我的VM上当前窗口的名称是什么?”
  • “显示我的Ubuntu虚拟机屏幕上的内容。”

安全考虑

  • SSH密钥SSH私钥作为Docker密钥处理,并由Docker安全存储。它在运行时被挂载到容器中,并在退出时从容器的文件系统中删除。
  • 命令执行:The execute_command 这个工具非常强大。请注意您要求助手运行的命令。
  • 网络:确保Docker容器可以通过网络访问Ubuntu VM。
  • 非root用户Docker容器以非root用户身份运行,以提高安全性。