项目简介
'iphone-mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在简化 iPhone 设备的自动化操作。它通过与 Appium 集成,将复杂的 iPhone 交互(如应用控制、UI 元素操作、截图捕获)封装为标准化的工具,供 LLM (大型语言模型) 客户端调用。这使得 LLM 能够理解并执行 iPhone 上的任务,实现智能化的移动设备控制。
主要功能点
- 设备信息获取:获取 iPhone 设备的型号、iOS 版本、电池电量、设备名称和 UDID 等信息。
- 应用管理:列出设备上已安装的应用,并通过 Bundle ID 启动或切换应用。
- 界面快照捕获:实时获取 iPhone 屏幕截图(经过压缩)和当前页面的 UI 元素 XML 结构。
- UI 元素交互:识别并列出关键的 UI 元素,支持在指定坐标执行点击操作。
- 手势操作:支持从起点到终点的滑动操作,模拟用户在屏幕上的拖动。
- 文本输入:向当前活跃的输入框发送文本内容。
安装步骤
在开始之前,请确保你的电脑已安装 Python 3.8+ 环境,并且你的 iPhone 设备已配置好 Appium 运行环境。
- 安装 Appium Server:在你的电脑上安装 Appium Server,并确保它正在运行。可以参考 Appium 官方文档进行设置。
- 安装 'pymobiledevice3' (用于设备信息):
pip install "pymobiledevice3[usbmux]" - 克隆或下载仓库:
git clone https://github.com/hunterkevv/iphone-mcp.git cd iphone-mcp - 安装项目依赖:
(注:仓库未提供 'requirements.txt' 文件,但根据代码推断主要依赖包括 'loguru', 'Pillow', 'appium-python-client', 'mcp-server-fastmcp', 'pydantic' 等。用户可能需要手动安装这些库或创建 'requirements.txt' 文件。)pip install -r requirements.txt
服务器配置(供 MCP 客户端连接和启动)
MCP 客户端通常会通过一个 JSON 配置文件来连接和启动 MCP 服务器。以下是一个示例配置,你需要根据实际情况替换 'YOUR_IPHONE_UDID':
{ "server_name": "iphone-mcp", "description": "一个用于自动化控制iPhone设备的MCP服务器", "command": [ "python", "main.py" ], "args": [ "--udid", "<你的iPhone设备UDID>", "--host", "127.0.0.1", "--port", "8765", "--http-path", "/mcp" ] }
- 'server_name':MCP 服务器的唯一名称,用于客户端识别。
- 'description':对服务器功能的简要描述。
- 'command':启动 'iphone-mcp' 服务器所执行的命令。通常是 'python main.py'。
- 'args':传递给启动命令的参数。
- '--udid <你的iPhone设备UDID>':必需。替换为你的 iPhone 设备的 UDID(可以通过 Xcode 或 'idevicediagnostics' 等工具获取)。
- '--host 127.0.0.1':MCP 服务器将监听的 IP 地址。默认是本地回环地址。
- '--port 8765':MCP 服务器将监听的端口。默认是 8765。
- '--http-path /mcp':MCP 服务器提供的 HTTP 路径。默认是 '/mcp'。
基本使用方法
- 连接 iPhone:确保你的 iPhone 设备通过 USB 连接到电脑,并且 Appium 环境已正确设置并运行。
- 启动 MCP 服务器:在项目根目录下,使用上述配置中的 'command' 和 'args' 启动服务器。例如:
服务器启动后,你将在控制台看到类似 'Starting MCP server at http://127.0.0.1:8765/mcp' 的信息。python main.py --udid <你的iPhone设备UDID> --host 127.0.0.1 --port 8765 --http-path /mcp - LLM 客户端集成:将上述 JSON 配置提供给你的 MCP 客户端(通常是支持 MCP 协议的 LLM 客户端)。客户端将能够连接到此服务器,并自动发现其提供的所有工具(如 'iphone_device_info', 'iphone_operate_click' 等)。
- LLM 调用工具:通过 LLM 客户端,你可以用自然语言向 LLM 发出指令,LLM 将会调用相应的 MCP 工具来执行 iPhone 自动化任务,例如:
- “告诉我我的 iPhone 设备信息。” (LLM 调用 'iphone_device_info' 工具)
- “获取当前 iPhone 屏幕截图。” (LLM 调用 'iphone_interface_snapshot' 工具)
- “在屏幕坐标 (100, 200) 处点击。” (LLM 调用 'iphone_operate_click' 工具)
通过这种方式,'iphone-mcp' 服务器为 LLM 提供了一个强大的接口,使其能够直接控制和感知 iPhone 设备。
信息
分类
开发者工具