Get the FREE Ultimate OpenClaw Setup Guide →

idb

An open-source MCP server and Python library that wraps Facebook IDB to control iOS simulators for automation. Built by AskUI.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio askui-idb-mcp uvx idb-mcp@latest start stdio --target-screen-size 1280 800

How to use

IDB-MCP exposes a set of iOS automation tools over MCP to control iOS simulators via Facebook IDB. It provides device listing, selection by UDID or name, boot/shutdown of simulators, and input controls such as taps, swipes, and typing, plus screen utilities like taking screenshots and querying view descriptions. The server runs as an MCP service and can be connected to by MCP-compatible clients (e.g., AI assistants or automation pipelines). You can start the server using the idb-mcp CLI (or via uvx as shown in the configuration) and interact with it through MCP transports (stdio, http, or SSE). The library aspect allows programmatic use from Python for managing simulators directly from code.

To use it, start the MCP server with a preferred transport (stdio, http, or sse) and optional target screen size to improve coordinate reliability. Then connect from your MCP client by configuring an entry named askui-idb-mcp with the same transport and target size. Through MCP, you can request actions like listing devices, selecting a device by name, performing taps or swipes, and retrieving a view description from the current UI state. The integration is designed to work smoothly with AI tooling and workflow automation where you want to drive iOS simulators from high-level commands.

How to install

Prerequisites

  • macOS with Xcode and iOS simulators installed
  • Python 3.10+ installed on the system
  • Optional: uv (uvx) for MCP integration, or rely on the idb-mcp CLI directly

Installation steps

  1. Install the MCP server package from PyPI
pip install idb-mcp
  1. Verify installation by running the CLI help (choose a transport as needed)
idb-mcp --help
  1. Start the MCP server (example using stdio via uvx wrapper in this config)
uvx idb-mcp@latest start stdio --target-screen-size 1280 800
  1. If you prefer running directly with the package (without uvx):
# Start via direct CLI if available on PATH
idb-mcp start stdio --target-screen-size 1280 800
  1. Connect a client by adding an MCP entry named askui-idb-mcp with the same transport and options.

Prerequisites recap

  • Ensure Facebook IDB companion is installed and configured for local device access if needed by idb-mcp
  • Ensure your environment variables for debugging or device access are set as required by your setup

Additional notes

Notes and tips:

  • Target screen size (- 1280 x 800 in examples) helps stabilize coordinates across different simulators; adjust as needed for your models.
  • MCP supports multiple transports: stdio is convenient for embedded clients, while http/SSE allow remote clients to connect. Choose the mode that best fits your automation workflow.
  • If you encounter device discovery issues, verify that an iOS simulator is running and visible to IDB (e.g., via xcrun xctrace list devices).
  • When using uvx, ensure you have uv installed and that the wrapper can resolve idb-mcp@latest from the npm registry as needed.
  • For real-device automation, Contact AskUI support as noted in the repository to explore alternative solutions.

Related MCP Servers

Sponsor this space

Reach thousands of developers ↗