ClaudeCodeMod

All shelves / MCP servers

MCP Server Simulator IOS IDB

inditextech/mcp-server-simulator-ios-idb · 303 stars · TypeScript · Apache-2.0

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

Install

The repo has no one-line install. Follow its README.

Open the repo

Files

README.md

📱 MCP Server for iOS Simulator

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.

🎮 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:
Add this mcp to cline https://github.com/InditexTech/mcp-server-simulator-ios-idb
  1. Cline will handle the installation process automatically, including dependency management and configuration.

Alternatively, you can install it manually:

# 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:
{
  "mcpServers": {
    "ios-simulator": {
      "command": "node",
      "args": ["/path/to/mcp-server-simulator-ios-idb/dist/index.js"],
      "env": {}
    }
  }
}
  1. 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

📚 Usage as a Library

You can also use this package as a library in your own projects:

🔰 Basic Usage

import { createMCPServer } from 'mcp-server-simulator-ios-idb';

async function main() {
  // Create an instance of the MCP server
  const { orchestrator } = createMCPServer();
  
  // Process natural language commands
  
  // Create a simulator session
  const sessionResult = await orchestrator.processInstruction('create session');
  console.log(`Session created: ${sessionResult.data}`);
  
  // Interact with the simulator
  await orchestrator.processInstruction('tap at 100, 200');
  
  // Capture a screenshot
  const screenshotResult = await orchestrator.processInstruction('take screenshot');
  console.log(`Screenshot saved at: ${screenshotResult.data}`);
}

main().catch(console.error);

🚀 Advanced Usage

You can also use the individual components directly:

import { 
  IDBManager, 
  NLParser, 
  MCPOrchestrator,
  ParserToOrchestrator,
  OrchestratorToIDB
} from 'mcp-server-simulator-ios-idb';

// Create instances
const idbManager = new IDBManager();
const parser = new NLParser();
const orchestrator = new MCPOrchestrator(parser, idbManager);

// Use the components directly
const sessionId = await idbManager.createSimulatorSession({
  deviceName: 'iPhone 12',
  platformVersion: '15.0'
});

await idbManager.tap(sessionId, 100, 200);

🏗️ Project Structure

mcp-server-simulator-ios-idb/
├── src/                      # Source code
│   ├── adapters/             # Adapter components
│   ├── idb/                  # IDB manager implementation
│   ├── mcp/                  # MCP server implementation
│   ├── orchestrator/         # Command orchestrator
│   ├── parser/              # Natural language parser
│   └── index.ts             # Main entry point
├── types/                   # TypeScript type definitions
├── scripts/                 # Installation scripts
├── package.json            # Project configuration
└── tsconfig.json          # TypeScript configuration

🎯 Supported Commands

The NLParser supports the following natural language commands:

🎮 Simulator Management

📱 App Management

🖱️ UI Interaction

♿ Accessibility

📸 Capture and Logs

🐛 Debug

Facts

Kind
MCP server
Repo
inditextech/mcp-server-simulator-ios-idb
Group
Uncategorized
Stars
303
License
Apache-2.0
Language
TypeScript
Last push
2026-10-08
Forks
27
Topics
claude, cline, ios, macos, mcp, typescript

More on this shelf

  1. 1Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
  2. 2Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k
  3. 3Gitmodelcontextprotocol/serversA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.85.8k
  4. 4Memorymodelcontextprotocol/serversA basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.85.8k
  5. 5Sequential Thinkingmodelcontextprotocol/serversAn MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.85.8k
  6. 6Timemodelcontextprotocol/serversA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.85.8k