项目简介

本项目 'sample-mcp-servers' 中的 'remote_computer_use' 目录,提供了一个基于 Model Context Protocol (MCP) 的服务器实现,用于远程控制和操作计算机桌面。该服务器允许LLM客户端通过调用预设的工具,实现对远程计算机的屏幕截图、鼠标键盘操作以及执行bash命令等功能。

主要功能点

  • 远程桌面控制: 通过VNC协议连接远程Ubuntu桌面,实现图形化界面的操作。
  • 屏幕截图工具: 提供多种截图工具,包括全屏截图和区域截图,方便LLM获取当前桌面状态。
  • 鼠标键盘操作工具: 支持鼠标移动、点击、双击、拖拽、滚轮滚动以及键盘按键、文本输入等操作,使LLM能够模拟用户与桌面进行交互。
  • Bash命令执行工具: 允许LLM在远程服务器上执行bash命令,进行文件操作、程序启动等任务。
  • 文件编辑工具: 提供自定义的文件编辑工具,支持查看、创建、替换、插入和撤销文件编辑操作。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/xiehust/sample-mcp-servers
    cd sample-mcp-servers/remote_computer_use
  2. 安装依赖: 根据 'server_claude.py' 或 'server.py' 中 'FastMCP' 构造函数的 'dependencies' 参数,安装所需的Python库。例如,对于 'server_claude.py',需要安装:

    pip install pillow paramiko vncdotool python-dotenv

    对于 'server.py',需要安装:

    pip install pillow paramiko vncdotool
  3. 配置环境变量: 需要配置以下环境变量,以便服务器连接到远程VNC和SSH服务。建议创建 '.env' 文件进行配置,或者直接在运行环境中设置。

    VNC_HOST=your_vnc_host  # 远程VNC服务器地址
    VNC_PORT=5900          # 远程VNC服务器端口,默认为5900
    VNC_USERNAME=your_vnc_username # VNC用户名
    VNC_PASSWORD=your_vnc_password # VNC密码
    SSH_PORT=22            # SSH端口,默认为22
    PEM_FILE=              # SSH连接的PEM密钥文件路径 (如果使用密钥认证)
    DISPLAY_NUM=1          #  VNC server display number,默认为1
    RESCALE=0              # 是否开启图片缩放, 1 开启,0 关闭, 默认关闭。针对NOVA模型建议开启

    注意: 请将 'your_vnc_host', 'your_vnc_username', 'your_vnc_password' 替换为实际的VNC服务器连接信息。如果使用SSH密钥认证,请配置 'PEM_FILE' 环境变量。

服务器配置 (MCP客户端配置)

MCP客户端需要配置以下JSON信息以连接到此MCP服务器。

{
  "server_name": "remote_computer_use",
  "command": "python",
  "args": ["server_claude.py"]
}

参数说明:

  • 'server_name': 服务器名称,可以自定义,用于在MCP客户端中标识该服务器。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动命令的参数,这里指定运行 'server_claude.py' 文件 (或者 'server.py')。

选择 'server_claude.py' 和 'server.py' 的区别:

  • 'server_claude.py': 提供了更全面的工具集,包括 'computer' (整合了多种鼠标键盘操作和截图功能)、 'bash' (bash命令执行) 和 'str_replace_editor' (文件编辑)。 工具功能更强大,工具描述更详细,更易于LLM理解和使用。
  • 'server.py': 提供了较为基础的VNC控制工具,例如 'capture_screenshot', 'mouse_click', 'type_text' 和 'execute_bash' 等。 工具功能相对简单,适合对工具功能需求不复杂的场景。

您可以根据LLM应用的需求选择合适的服务器脚本。

基本使用方法

  1. 启动MCP服务器: 在 'remote_computer_use' 目录下,根据您选择的服务器脚本,运行以下命令启动MCP服务器。

    • 运行 'server_claude.py': 'python server_claude.py'
    • 运行 'server.py': 'python server.py'
  2. 配置MCP客户端: 在您的MCP客户端中,配置上述提供的服务器JSON信息,并确保客户端能够连接到运行中的MCP服务器。

  3. 通过MCP客户端调用工具: 使用MCP客户端向服务器发送JSON-RPC请求,调用 'server_claude.py' (或 'server.py') 中定义的工具,例如 'computer', 'bash', 'str_replace_editor' (或 'capture_screenshot', 'mouse_click', 'execute_bash' 等),实现远程桌面控制功能。 具体的工具调用参数和方法,请参考 'server_claude.py' (或 'server.py') 中各工具函数的文档字符串 (docstring) 以及工具描述信息。

信息

分类

桌面与硬件