项目简介
VNC Remote macOS MCP服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在让大型语言模型 (LLM) 能够远程控制任何开启了屏幕共享的macOS机器。该服务器无需在macOS端进行任何额外的安装配置,只需启用macOS的屏幕共享功能即可使用。它通过VNC协议与macOS机器通信,并以MCP标准协议与LLM客户端交互,为LLM提供了一组工具,使其能够获取macOS机器的屏幕截图,并模拟键盘和鼠标操作,从而实现远程自动化控制。
主要功能点
- 远程屏幕截图: LLM可以通过工具调用获取远程macOS机器的实时屏幕截图,为视觉理解和任务规划提供依据。
- 键盘模拟: LLM可以控制远程macOS机器的键盘输入,包括发送文本、特殊按键(如回车、Tab等)和组合键(如command+C)。
- 鼠标模拟: LLM可以控制远程macOS机器的鼠标操作,包括移动、点击、双击、拖拽和滚动等动作。
- 坐标缩放: 提供坐标缩放工具,方便LLM在不同分辨率下进行精确的鼠标操作。
- 任务规划 (集成Anthropic API): 集成 Anthropic API,允许LLM基于屏幕截图和用户目标进行智能任务规划,自动执行屏幕操作。
- Docker部署: 支持Docker容器化部署,方便快捷地在各种环境中使用。
- 兼容Claude Desktop: 特别优化与 Claude Desktop 的集成,可以直接在 Claude 的配置中添加并使用该MCP服务器。
- 无需macOS端安装: 零配置安装,只需开启macOS屏幕共享即可,简化部署流程。
- Apple Authentication (协议30): 支持 macOS 屏幕共享默认使用的 Apple Authentication 协议,安全性高。
安装步骤
-
克隆仓库:
git clone https://github.com/baryhuang/mcp-remote-macos-use.git cd mcp-remote-macos-use -
构建Docker镜像 (可选,推荐使用Docker部署):
docker build -t mcp-vnc-macos-use .或者直接使用预构建的Docker镜像 'buryhuang/mcp-vnc-macos-use:latest'。
服务器配置 (Claude Desktop)
要将此MCP服务器与 Claude Desktop 客户端配合使用,您需要在 Claude Desktop 的配置文件中添加 'mcpServers' 配置。以下是使用Docker部署的服务器配置示例:
{ "mcpServers": { "vnc-macos-use": { // 服务器名称,可以自定义 "command": "docker", // 启动服务器的命令,这里使用 docker "args": [ // 启动服务器命令的参数列表 "run", // docker run 命令 "-i", // 保持STDIN开放,即使没有连接 "--rm", // 容器退出后自动删除 "buryhuang/mcp-vnc-macos-use:latest" // 使用预构建的 Docker 镜像 ] } } }
配置参数说明:
- '"vnc-macos-use"': 服务器名称,在Claude Desktop客户端中引用此服务器时使用。您可以自定义名称。
- '"command": "docker"': 指定启动服务器的命令为 'docker'。
- '"args"': 参数列表,用于配置 'docker run' 命令:
- '"run"': docker 运行命令。
- '"-i"' 和 '"--rm"': Docker 常用参数,保持STDIN开放和容器退出后自动删除。
- '"buryhuang/mcp-vnc-macos-use:latest"': 指定使用的 Docker 镜像,这里使用了预构建的镜像。您也可以替换为您自己构建的镜像名称。
如果您不使用Docker部署,而是直接运行 'server.py' 文件,则配置应为:
{ "mcpServers": { "vnc-macos-use": { "command": "python", "args": [ "-m", "src.mcp_server_vnc_macos_use.server" ] } } }
配置参数说明:
- '"command": "python"': 指定启动服务器的命令为 'python'。
- '"args"': 参数列表,用于配置 'python' 命令:
- '"-m"': Python 以模块名运行程序的参数。
- '"src.mcp_server_vnc_macos_use.server"': 指定要运行的 Python 模块路径。
请确保在运行服务器之前,您已经安装了Python环境和相关的依赖库 (如果选择本地运行)。
基本使用方法
配置完成后,在LLM客户端(如Claude Desktop)中,您可以使用以下工具来控制远程macOS机器。工具调用通常需要提供VNC服务器的连接信息,例如主机地址 ('host')、端口 ('port')、密码 ('password') 和用户名 ('username') (可选,建议提供)。
常用工具示例:
-
'vnc_macos_get_screen': 获取屏幕截图
{ "tool_call_id": "get_screen_1", "tool_name": "vnc_macos_get_screen", "parameters": { "host": "your_vnc_host_or_ip", // 替换为您的VNC服务器地址 "port": 5900, // VNC服务器端口,默认为 5900 "password": "your_vnc_password", // VNC服务器密码 "username": "your_username" // VNC服务器用户名 (可选) } } -
'vnc_macos_send_keys': 发送键盘输入
{ "tool_call_id": "send_keys_1", "tool_name": "vnc_macos_send_keys", "parameters": { "host": "your_vnc_host_or_ip", "port": 5900, "password": "your_vnc_password", "text": "Hello, macOS!" // 要发送的文本 } } -
'vnc_macos_send_mouse': 发送鼠标操作
{ "tool_call_id": "send_mouse_1", "tool_name": "vnc_macos_send_mouse", "parameters": { "host": "your_vnc_host_or_ip", "port": 5900, "password": "your_vnc_password", "x": 500, // 鼠标 X 坐标 (需要先使用 vnc_macos_scale_coordinates 工具获取缩放后的坐标) "y": 300, // 鼠标 Y 坐标 "action": "click" // 鼠标动作,例如 "move", "click", "double_click", "scroll_down" 等 } } -
'vnc_macos_scale_coordinates': 缩放坐标
{ "tool_call_id": "scale_coords_1", "tool_name": "vnc_macos_scale_coordinates", "parameters": { "host": "your_vnc_host_or_ip", "port": 5900, "password": "your_vnc_password", "source_width": 1440, // 参考屏幕宽度 "source_height": 900, // 参考屏幕高度 "x": 100, // 参考屏幕上的 X 坐标 "y": 100 // 参考屏幕上的 Y 坐标 } } -
'vnc_macos_plan_screen_actions': 智能规划屏幕操作 (需要 Anthropic API Key)
{ "tool_call_id": "plan_actions_1", "tool_name": "vnc_macos_plan_screen_actions", "parameters": { "prompt": "打开 Safari 浏览器并访问 google.com", // 任务目标 "anthropic_api_key": "YOUR_ANTHROPIC_API_KEY", // 您的 Anthropic API Key "host": "your_vnc_host_or_ip", "port": 5900, "password": "your_vnc_password" } }
请根据您的实际需求选择合适的工具,并参考工具的 'inputSchema' 填写正确的参数。 详细的键盘和鼠标控制文档可以查阅 'vnc://controls' 资源 (例如在 Claude 中可以提问 "read vnc://controls")。
安全性提示: 请确保您的VNC服务器密码安全,并仅在信任的网络环境中使用此MCP服务器。
信息
分类
桌面与硬件