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 分钟前
APS高级排产系统到底有什么用?一文讲清功能、选型与落地建议
前端·microsoft·excel
陈随易13 分钟前
Bun v1.4 更新总结:把浏览器、图片、定时任务和工程工具都装进一个运行时
前端·后端·程序员
东风破_2 小时前
TypeScript 高级类型进阶:keyof、Exclude、Record 与类型组合思想
前端·后端·typescript
DS随心转插件2 小时前
Grok生成的html怎么导出——AI导出鸭:大模型结构化输出的“最后一公里”工程化解构
前端·人工智能·ai·html·豆包·deepseek·ai导出鸭
এ慕ོ冬℘゜2 小时前
使用 jQuery 动态渲染表格与状态切换
前端·javascript·jquery
松小鼠呀2 小时前
我不敢再生孩子:ChatGPT 曾花 $2m 让他闭嘴,AI 巨头到底隐藏了什么秘密?
人工智能·安全·chatgpt·ai编程·科技热点
人间凡尔赛3 小时前
2026 前端必修:4 个让 CSS 脱胎换骨的现代新特性(附实战代码)
前端·css
用户2181697049303 小时前
Flutter (二十) 轮播图
前端
前端snow3 小时前
ai agent - RAG 汇总
前端
Patrick在香港3 小时前
Claude Agent 进阶:4 种工具调用编排模式,让 0820 那 13 个 endpoint 并行起来
python·ai·ai编程