article
README
🚀 项目介绍 - iOS模拟器低级别服务器
这个工具是一个使用idb控制iOS模拟器的低级别服务器。它借助自然语言处理(NLP)或直接命令,实现与iOS模拟器的交互,为开发者提供了便捷的操控体验。
🚀 快速开始
本工具使用简单,通过以下步骤即可快速开启使用之旅。
✨ 主要特性
- 多会话支持 🌟: 可同时连接多个iOS模拟器,满足多任务操作需求。
- 全面指令集 📜: 支持所有idb CLI工具的功能,功能丰富强大。
- 自然语言处理 🗣️: 支持通过自然语言发布命令(例如:"打开 safari 浏览器"),操作更加人性化。
- MCP集成 🤝: 可以与Model Context Protocol集成,作为LLM的应用插件,拓展应用场景。
📦 安装指南
使用npm进行安装:
npm install mcp-server-simulator-ios-idb
然后运行服务器:
node index.js
💻 使用示例
1. 添加到MCP配置
在项目的根目录下创建或更新.env文件,添加以下内容:
MCP_SERVERS=ios-simulator
IOS_SIMULATOR_SERVER_PATH=/path/to/mcp-server-simulator-ios-idb/dist/index.js
2. 在LLM应用中使用
通过以下代码连接到服务器:
const result = await useMcpTool({
serverName: "ios-simulator",
toolName: "process-instruction",
arguments: {
instruction: "打开 safari 浏览器"
}
});
指令列表
1. 基本控制命令
- 启动模拟器
start_simulator
- 停止模拟器
stop_simulator
- 重启模拟器
restart_simulator
2. 截图和录屏
- 截取屏幕
take_screenshot /path/to/output.png
- 开始录屏
start_recording /path/to/output.mp4
- 停止录屏
stop_recording
3. 访问日志
- 获取系统日志
get_system_logs
- 获取特定应用的日志
get_app_logs com.example.app
4. 调试功能
- 启动调试会话
start_debug com.example.app
- 停止调试会话
stop_debug
- 查看调试状态
debug_status
5. 常规操作
- 描述屏幕元素
describe_elements
- 描述指定坐标点的元素
describe_point 100,200
- 输入文本
input_text "Hello World"
🔧 技术细节
系统由三个主要组件组成:
- IDBManager 🛠️: 直接与iOS模拟器交互的低级别组件,使用idb协议,确保与模拟器的高效通信。
- NLParser 🧠: 解释自然语言指令并将其转换为结构化命令的组件,实现自然语言的准确解析。
- MCPOrchestrator 🎛️: 协调NLP解析和IDBManager操作的中央组件,保障系统的稳定运行。
📄 许可证
本项目采用MIT许可证,具体条款见LICENSE文件。
致谢
感谢facebook/idb项目,使得这个工具得以实现。特别鸣谢开源社区的所有贡献者。
微信扫一扫