idb
An open-source MCP server and Python library that wraps Facebook IDB to control iOS simulators for automation. Built by AskUI.
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
- Install the MCP server package from PyPI
pip install idb-mcp
- Verify installation by running the CLI help (choose a transport as needed)
idb-mcp --help
- Start the MCP server (example using stdio via uvx wrapper in this config)
uvx idb-mcp@latest start stdio --target-screen-size 1280 800
- 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
- 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
gpt-researcher
An autonomous agent that conducts deep research on any data using any LLM providers.
zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
sympy
A MCP server for symbolic manipulation of mathematical expressions
itential
š Itential Platform MCP Server
mcp-ssh-orchestrator
Secure SSH access for AI agents via MCP. Execute commands across your server fleet with policy enforcement, network controls, and comprehensive audit logging.
mcp-pyautogui
An MCP server for PyAutoGUI