项目简介
本项目 'sample-mcp-servers' 中的 'remote_computer_use' 目录,提供了一个基于 Model Context Protocol (MCP) 的服务器实现,用于远程控制和操作计算机桌面。该服务器允许LLM客户端通过调用预设的工具,实现对远程计算机的屏幕截图、鼠标键盘操作以及执行bash命令等功能。
主要功能点
- 远程桌面控制: 通过VNC协议连接远程Ubuntu桌面,实现图形化界面的操作。
- 屏幕截图工具: 提供多种截图工具,包括全屏截图和区域截图,方便LLM获取当前桌面状态。
- 鼠标键盘操作工具: 支持鼠标移动、点击、双击、拖拽、滚轮滚动以及键盘按键、文本输入等操作,使LLM能够模拟用户与桌面进行交互。
- Bash命令执行工具: 允许LLM在远程服务器上执行bash命令,进行文件操作、程序启动等任务。
- 文件编辑工具: 提供自定义的文件编辑工具,支持查看、创建、替换、插入和撤销文件编辑操作。
安装步骤
-
克隆仓库:
git clone https://github.com/xiehust/sample-mcp-servers cd sample-mcp-servers/remote_computer_use -
安装依赖: 根据 '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 -
配置环境变量: 需要配置以下环境变量,以便服务器连接到远程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应用的需求选择合适的服务器脚本。
基本使用方法
-
启动MCP服务器: 在 'remote_computer_use' 目录下,根据您选择的服务器脚本,运行以下命令启动MCP服务器。
- 运行 'server_claude.py': 'python server_claude.py'
- 运行 'server.py': 'python server.py'
-
配置MCP客户端: 在您的MCP客户端中,配置上述提供的服务器JSON信息,并确保客户端能够连接到运行中的MCP服务器。
-
通过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) 以及工具描述信息。
信息
分类
桌面与硬件