IS

iOS Simulator

Created 6 months ago

A Model Context Protocol (MCP) server that enables LLMs to interact with iOS simulators through natural language commands.

development location documentation public iOS simulator

What is iOS Simulator?

A Model Context Protocol (MCP) server that enables LLMs to interact with iOS simulators (iPhone, iPad, etc.) through natural language commands.

Documentation

MCP Server for iOS Simulator

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.

Requirements

  • macOS: Required for iOS simulator support
  • Node.js: v14.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: Add this mcp to cline https://github.com/InditexTech/mcp-server-simulator-ios-idb 2. Cline will handle the installation process automatically, including dependency management and configuration. Alternatively, you can install it manually: bash # Clone the repository git clone https://github.com/InditexTech/mcp-server-simulator-ios-idb.git cd mcp-server-simulator-ios-idb # Create and activate Python virtual environment python3 -m venv venv source venv/bin/activate # On Unix/macOS # Install dependencies npm install # Build the project npm run build # Start the project npm start # Run tests npm test 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: json { "mcpServers": { "ios-simulator": { "command": "node", "args": ["/path/to/mcp-server-simulator-ios-idb/dist/index.js"], "env": {} } } } 2. The LLM can now use natural language commands to control iOS simulators: create a simulator session with iPhone 14 install app /path/to/my-app.ipa launch app com.example.myapp tap at 100, 200 take a screenshot

Supported Commands

The NLParser supports the following natural language commands:

Simulator Management

Command Description Example
Create session Creates a new simulator session "create session", "create simulator iPhone 12"
Terminate session Terminates the current session "terminate session", "close simulator"
List simulators Lists available simulators "list simulators", "show simulators"
List booted simulators Lists running simulators "list booted simulators", "show running simulators"
Boot simulator Boots a simulator by UDID "boot simulator 5A321B8F-4D85-4267-9F79-2F5C91D142C2"
Shutdown simulator Shuts down a simulator "shutdown simulator 5A321B8F-4D85-4267-9F79-2F5C91D142C2"
Focus simulator Brings simulator window to front "focus simulator", "bring simulator to front"
List simulator sessions Lists active simulator sessions "list simulator sessions", "show active sessions"

App Management

Command Description Example
Install app Installs an app on the simulator "install app /path/to/app.ipa"
Launch app Launches an app on the simulator "launch app com.example.app"
Terminate app Terminates a running app "terminate app com.example.app"
Uninstall app Uninstalls an app "uninstall app com.example.app"
List apps Lists installed applications "list apps", "show installed apps"
Check if app installed Checks if an app is installed "is app com.example.app installed"

UI Interaction

Command Description Example
Tap Taps at specific coordinates "tap at 100, 200"
Swipe Performs a swipe gesture "swipe from 100, 200 to 300, 400"
Press button Presses a device button "press button HOME", "press button SIRI"
Input text Types text "input text Hello World"
Press key Presses a key by code "press key 4"
Press key sequence Presses a sequence of keys "press key sequence 4 5 6"

Capture and Logs

Command Description Example
Take screenshot Captures a screenshot "take screenshot", "capture screen"
Record video Records screen activity "record video /path/output.mp4"
Stop recording Stops video recording "stop recording", "stop video recording"
Get logs Retrieves system or app logs "get logs", "get logs for com.example.app"

Debug

Command Description Example
Start debug Starts a debug session "debug app com.example.app", "start debug com.example.app"
Stop debug Stops a debug session "stop debug", "terminate debug session"
Debug status Gets debug session status "debug status", "show debug info"

Additional Commands

Command Description Example
Install dylib Installs a dynamic library "install dylib /path/to/library.dylib"
Open URL Opens a URL in the simulator "open url https://example.com"
Clear keychain Clears the simulator's keychain "clear keychain"
Set location Sets the simulator's location "set location 37.7749, -122.4194"
Add media Adds media to the camera roll "add media /path/to/image.jpg"
Approve permissions Approves app permissions "approve permissions com.example.app photos camera"
Update contacts Updates contacts database "update contacts /path/to/contacts.sqlite"

Architecture

The server consists of three main components: 1. IDBManager: Low-level component that interacts directly with iOS simulators through idb. 2. NLParser: Component that interprets natural language instructions and converts them into structured commands. 3. MCPOrchestrator: Central component that coordinates interactions between the parser and the IDBManager. These components are connected through adapters: - ParserToOrchestrator: Converts parser results into orchestrator commands. - OrchestratorToIDB: Translates orchestrator commands into IDBManager calls.

Server Config

{
  "mcpServers": {
    "ios-simulator-server": {
      "command": "npx",
      "args": [
        "ios-simulator"
      ]
    }
  }
}

Links & Status

Repository: github.com
Hosted: No
Global: No
Official: No

Project Info

Hosted Featured
Created At: May 23, 2025
Updated At: Aug 07, 2025
Author: InditexTech
Category: community
License: Apache-2.0
Tags:
development location documentation