iOS PlayWright mcp server

麻烦点个小星星 star ⭐️ git传送门 你的鼓励是我更新最大的动力。

基于 Appium 的 iOS 设备自动化测试 MCP Server,支持屏幕截图、元素点击和 UI 树获取,可用于 Trae 等支持 MCP 协议的 AI 客户端。

安装依赖

bash 复制代码
uv sync

运行方式

方式一:Stdio 模式(推荐用于 Trae)

bash 复制代码
uv run python mcp_server.py --stdio

方式二:SSE 模式(用于远程连接)

bash 复制代码
uv run python mcp_server.py

服务器将在 http://localhost:8000 运行。

Trae MCP 配置

Stdio 模式(推荐)

将以下 JSON 配置添加到 Trae 的 MCP Servers 配置中:

json 复制代码
{
  "name": "iOS Screenshot MCP",
  "type": "stdio",
  "command": "uv run python mcp_server.py --stdio",
  "cwd": "~/mcp-servers/ios-playwright-mcp",
  "enabled": true
}

SSE 模式

先启动服务器:

bash 复制代码
cd ~/mcp-servers/ios-playwright-mcp
uv run python mcp_server.py

将以下 JSON 配置添加到 Trae 的 MCP Servers 配置中:

json 复制代码
{
  "name": "iOS Screenshot MCP",
  "type": "sse",
  "url": "http://localhost:8000/mcp/sse",
  "enabled": true
}

Claude code MCP 配置

json 复制代码
"mcpServers": {
        "ios-playwright": {
          "name": "ios-playwright",
          "type": "stdio",
          "command": "bash",
          "args": [
            "-c",
            "source ~/mcp-servers/ios-playwright-mcp/.venv/bin/activate && uv run python ~/mcp-servers/ios-playwright-mcp/mcp_server.py --stdio"
          ],
          "cwd": "~/mcp-servers/ios-playwright-mcp/"
        }
      }

工具说明

take_ios_screenshot_tool

截取 iOS 设备屏幕并保存为图片文件。

参数:

参数 类型 默认值 说明
platform_name str iOS 平台名称
automation_name str XCUITest 自动化框架名称
device_name str iPhone 16 Pro Max 设备名称
udid str 32EFED52-E30A-4CC8-AAE9-525B5A3A5B6A 设备唯一标识符
bundle_id str com.xue.Demo01 应用 Bundle ID
appium_server_url str http://127.0.0.1:4723 Appium 服务器地址
output_path str screen.png 截图保存路径

返回值:

截图文件的完整路径。

element_click_tool

通过 accessibility_id 点击 iOS 设备上的元素。

参数:

参数 类型 默认值 说明
accessibility_id str - 元素的 accessibility identifier(必填)
platform_name str iOS 平台名称
automation_name str XCUITest 自动化框架名称
device_name str iPhone 16 Pro Max 设备名称
udid str 32EFED52-E30A-4CC8-AAE9-525B5A3A5B6A 设备唯一标识符
bundle_id str com.xue.Demo01 应用 Bundle ID
appium_server_url str http://127.0.0.1:4723 Appium 服务器地址

返回值:

操作结果消息。

dump_ui_element_tool

获取 iOS 设备当前屏幕的完整 UI 元素树(XML 格式)。

参数:

参数 类型 默认值 说明
platform_name str iOS 平台名称
automation_name str XCUITest 自动化框架名称
device_name str iPhone 16 Pro Max 设备名称
udid str 32EFED52-E30A-4CC8-AAE9-525B5A3A5B6A 设备唯一标识符
bundle_id str com.xue.Demo01 应用 Bundle ID
appium_server_url str http://127.0.0.1:4723 Appium 服务器地址

返回值:

UI 元素树的 XML 字符串。

前置条件

调用截图工具前需要确保:

  1. Appium Server 已启动在 http://127.0.0.1:4723
  2. 目标设备/模拟器已连接
  3. 指定的应用bundle_id)已安装在设备上

文件结构

bash 复制代码
.
├── mcp_server.py          # MCP Server 主文件
├── screenshot_service.py  # Appium 服务模块(会话管理、截图、点击、UI树)
├── main.py                # 原始截图脚本
├── pyproject.toml         # 项目配置
└── README.md              # 项目说明

会话管理

所有工具共享同一个 Appium 会话,避免重复建立连接。会话在首次调用任一工具时创建,保持活跃状态直到服务器停止。

相关推荐
2601_962885725 分钟前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
西瓜太郎123434 分钟前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
全栈弄潮儿2 小时前
需求不清时,如何让 AI 帮你补全问题,而不是瞎写代码
aigc·openai·ai编程
一航jason2 小时前
Android平台推理框架及试用场景模型对比
android·人工智能·ai·架构·ai编程·llama
陈随易3 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
一航jason3 小时前
Android 端侧大模型推理框架对比
android·人工智能·ai·ai编程·llama·ai-native
水域安全老周3 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师3 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing984 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
EatFan4 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app