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 会话,避免重复建立连接。会话在首次调用任一工具时创建,保持活跃状态直到服务器停止。

相关推荐
全栈弄潮儿11 小时前
一次真实失败:AI 代码看起来没问题,为什么还是翻车了?
aigc·openai·ai编程
前端snow11 小时前
ai agent --- 文件存储
前端
Frag0ut11 小时前
Chrome四大版本获取及共存指南:Stable/Beta/Dev/Canary
前端·chrome·浏览器·dev·beta·canary·共存版
李航198311 小时前
AI定制柜建模,需要详细的建模规范和标准流程
人工智能·python·计算机视觉·ai·ai编程
IT_陈寒13 小时前
SpringBoot自动配置坑了我一把,原来是这样绕过去的
前端·人工智能·后端
广州华水科技13 小时前
单北斗GNSS变形监测在大坝安全监测中的应用与优势
前端
zeng不错13 小时前
B站 173 个投稿活动看到眼瞎?我写了个扩展,主打一个精准打击
前端
Latchh13 小时前
前端导出的JPEG红字发糊,质量要拉到100才清楚
前端·图像处理·人工智能·计算机视觉
长弓三石13 小时前
用纯 Java 做一个企业级 Agent Harness 平台:BizBuddy 的设计与取舍
开源·agent·ai编程
默_笙13 小时前
🚦 请三个 AI 考官给 RAG 打分:量化评估实战(下)
前端·javascript