开发日常记录MCP Server:iOS模拟器
最近在探索iOS模拟器自动化测试的新方案时,挖到了个超好用的工具——iOS Simulator MCP Server。它基于MCP协议,能让我在开发过程中更丝滑地操控iOS模拟器,赶紧把研究过程和心得记下来,方便后续复盘和参考。
iOS模拟器MCP服务器
发现的这款iOS Simulator MCP Server,简直是开发者操控iOS模拟器的神器。它基于Model Context Protocol(MCP)开发,能实现和iOS模拟器的深度交互,不管是获取模拟器信息、控制UI操作,还是检查UI元素,都能轻松搞定,在自动化测试和功能调试里绝对是得力助手。
核心功能
-
获取模拟器状态
在调试多模拟器并行运行的场景时,这个功能特别实用。通过它能快速拿到当前启动的iOS模拟器ID,方便我针对性地对特定模拟器进行操作,再也不用在一堆模拟器里“大海捞针”了。 -
UI交互控制
- 无障碍元素分析:可以一键描述屏幕上所有可访问性元素,在做无障碍适配测试时,能快速检查页面元素的可访问性属性是否达标。
- 坐标操作:无论是点击屏幕指定坐标,还是在不同坐标间滑动,都能精准执行。之前做滑动验证、按钮点击效果测试,用它模拟用户操作,结果又快又准。
- 文本输入:向输入框输入文本变得超简单,在测试表单提交、搜索功能时,能自动填充测试数据,效率提升一大截。
- 元素查询:输入坐标就能获取对应UI元素的信息,对于排查元素显示异常、定位元素位置特别有帮助。
- 截图与录制:支持手动启动/停止屏幕录制,截取模拟器屏幕快照。在输出测试报告、记录bug复现过程时,这个功能能直观地呈现问题。
-
工具过滤
通过环境变量IOS_SIMULATOR_MCP_FILTERED_TOOLS
,可以灵活过滤指定工具。比如在某些测试场景下,不希望执行截图或录制操作,直接设置环境变量禁用相关工具,避免不必要的操作干扰测试流程。
配置与环境变量
环境变量IOS_SIMULATOR_MCP_FILTERED_TOOLS
是个很灵活的配置项,按逗号分隔工具名称,就能过滤掉不想注册的工具。像我在做性能测试时,不希望产生大量截图占用空间,就用下面的命令禁用截图和视频录制工具:
# 禁用截图和视频录制工具
IOS_SIMULATOR_MCP_FILTERED_TOOLS="screenshot,record_video,stop_recording"
使用场景:基于MCP工具调用的QA流程
把这个MCP服务器和MCP客户端(比如Cursor)集成后,借助AI助手执行QA任务,简直打开了新世界的大门。每次完成新功能开发,用AI自动验证UI一致性和功能正确性,能快速发现潜在问题,比手动测试高效太多。
使用指南
在Cursor的Agent模式下,用下面这些提示词,就能轻松完成各种测试操作:
- 验证UI元素
Verify all accessibility elements on the current screen
- 确认文本输入
Enter "QA Test" into the text input field and confirm the input is correct
- 检查点击响应
Tap on coordinates x=250, y=400 and verify the expected element is triggered
- 验证滑动操作
Swipe from x=150, y=600 to x=150, y=100 and confirm correct behavior
- 详细元素检查
Describe the UI element at position x=300, y=350 to ensure proper labeling and functionality
- 截图与录制
Take a screenshot of the current simulator screen and save it to my_screenshot.png Start recording a video of the simulator screen Stop the current simulator screen recording
前置条件
要顺利用上这个神器,得先满足下面这些条件:
- 系统要求:必须在macOS系统上,毕竟iOS模拟器只能在苹果系统里运行,而且得提前安装好Xcode和iOS模拟器,Xcode下载地址。
- 工具依赖:
- 安装Node.js,用来运行服务器。
- 安装Facebook的IDB工具,它是和模拟器通信的关键,安装指南很详细。
注意事项
实际使用过程中,还得注意这几个坑:
- 权限要求:一定要确保Xcode和IDB工具配置正确,而且模拟器得处于运行状态,不然会连接失败。
- 坐标系统:屏幕坐标是以模拟器窗口左上角为原点(
x=0
,y=0
),设置坐标操作时别搞反了。 - 视频录制路径:默认保存在
~/Downloads/simulator_recording_$DATE.mp4
,如果想换位置,得提前配置好。
另外,强烈推荐新器集Smcphub.com的MCP客户端。之前在集成其他MCP Server时,遇到过各种头疼的问题,比如认证方式太复杂、不同语言集成困难、维护多个Server成本高、没有调用日志不好排查问题等等。用了Smcphub的客户端后,这些痛点全解决了,开发效率直接起飞! 后续准备再深入研究下,看看能不能把它和项目里的自动化测试流程更好地结合起来。