📇 🏠 🍎 - Interact with iOS simulators (iPhone, iPad and more) through natural language commands
📱 MCP Server for iOS Simulator
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A Model Context Protocol (MCP) server that enables LLMs to interact with iOS simulators through natural language commands.
ℹ️ Overview
This MCP server provides a bridge between Large Language Models (LLMs) and iOS simulators, offering comprehensive control through natural language commands. Here's what it can do:
For detailed usage, see the Installation guide and Supported Commands sections. You can use this server either through direct MCP integration or as a standalone library.
Check out the Architecture section to understand how the components work together to enable natural language control of iOS simulators. For the full execution flow, component contracts, and the session model, see ARCHITECTURE.md. Guidance for agents and contributors working on this repository is in AGENTS.md.
🎮 Simulator Control
- Create and manage simulator sessions
- Boot, shutdown, and monitor simulator states
- List available and running simulators
- Focus simulator windows
📱 Application Management
- Install and manage iOS applications
- Launch, terminate, and uninstall apps
- Monitor app states and verify installations
- Handle app permissions and configurations
🖱️ UI Interaction & Testing
- Interact with the simulator UI
- Execute tap, swipe, and button press actions
- Input text and key sequences
- Access accessibility elements for UI testing
- Record videos of UI interactions
🛠️ Development & Debugging
- Capture screenshots and system logs
- Debug applications in real-time
- Monitor and analyze crash logs
- Install dynamic libraries and manage app data
⚡ Advanced Features
- Additional functionality includes:
- Location simulation
- Media injection
- URL scheme handling
- Contact database management
- Keychain operations
For detailed usage, see the Installation guide and Supported Commands sections. You can use this server either through direct MCP integration or as a standalone library.
Check out the Architecture section to understand how the components work together to enable natural language control of iOS simulators.
📋 Requirements
- **macOS**: Required for iOS simulator support
- **Node.js**: v20.0.0 or higher
- **Homebrew**: Required for installing dependencies
- **XCode**: With iOS simulators installed
🚀 Installation
The easiest way to install this server is through Cline:
1. Simply ask Cline:
2. Cline will handle the installation process automatically, including dependency management and configuration.
Alternatively, you can install it manually:
The installation process will automatically:
1. Check if you're running macOS
2. Install idb-companion via Homebrew
3. Install fb-idb via pip in the virtual environment
Note: Make sure to keep the virtual environment activated while using the server. If you close your terminal and come back later, you'll need to reactivate the virtual environment with the source venv/bin/activate command before running npm start.
🔌 MCP Integration
To use this server with Claude or other LLM assistants:
1. Add the server to your MCP settings in Claude Desktop:
2. The LLM can now use natural language commands to control iOS simulators:
📚 Usage as a Library
You can also use this package as a library in your own projects:
🔰 Basic Usage
> ⚠️ **Import side effects**: importing the package entry point
> ('mcp-server-simulator-ios-idb' / dist/index.js) runs the server startup
> code at module load: it overrides console output, creates a logs/
> directory, registers SIGINT/SIGTERM/exception handlers, and **starts the
> MCP stdio server unconditionally**. There is currently no opt-out. This
> applies to *any* import of the package root — named imports do not opt out
> of the bootstrap. To use the parser/orchestrator/manager without transport
> and signal side effects, import the compiled component modules by **deep