返回 MCP 目录
public公开dns本地运行

ios-simulator

一个基于MCP协议的iOS模拟器控制服务器,通过自然语言命令实现LLM对iOS模拟器的全面控制,包括设备管理、应用操作、UI交互等功能。

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"

🔧 技术细节

系统由三个主要组件组成:

  1. IDBManager 🛠️: 直接与iOS模拟器交互的低级别组件,使用idb协议,确保与模拟器的高效通信。
  2. NLParser 🧠: 解释自然语言指令并将其转换为结构化命令的组件,实现自然语言的准确解析。
  3. MCPOrchestrator 🎛️: 协调NLP解析和IDBManager操作的中央组件,保障系统的稳定运行。

📄 许可证

本项目采用MIT许可证,具体条款见LICENSE文件。

致谢

感谢facebook/idb项目,使得这个工具得以实现。特别鸣谢开源社区的所有贡献者。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端