项目简介

'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 运行环境。

  1. 安装 Appium Server:在你的电脑上安装 Appium Server,并确保它正在运行。可以参考 Appium 官方文档进行设置。
  2. 安装 'pymobiledevice3' (用于设备信息)
    pip install "pymobiledevice3[usbmux]"
  3. 克隆或下载仓库
    git clone https://github.com/hunterkevv/iphone-mcp.git
    cd iphone-mcp
  4. 安装项目依赖
    pip install -r requirements.txt
    (注:仓库未提供 'requirements.txt' 文件,但根据代码推断主要依赖包括 'loguru', 'Pillow', 'appium-python-client', 'mcp-server-fastmcp', 'pydantic' 等。用户可能需要手动安装这些库或创建 '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'。

基本使用方法

  1. 连接 iPhone:确保你的 iPhone 设备通过 USB 连接到电脑,并且 Appium 环境已正确设置并运行。
  2. 启动 MCP 服务器:在项目根目录下,使用上述配置中的 'command' 和 'args' 启动服务器。例如:
    python main.py --udid <你的iPhone设备UDID> --host 127.0.0.1 --port 8765 --http-path /mcp
    服务器启动后,你将在控制台看到类似 'Starting MCP server at http://127.0.0.1:8765/mcp' 的信息。
  3. LLM 客户端集成:将上述 JSON 配置提供给你的 MCP 客户端(通常是支持 MCP 协议的 LLM 客户端)。客户端将能够连接到此服务器,并自动发现其提供的所有工具(如 'iphone_device_info', 'iphone_operate_click' 等)。
  4. 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 设备。

信息

分类

开发者工具