Labsco
askui logo

idb-mcp

β˜… 10

from askui

An MCP server that uses Facebook IDB to automate iOS simulators, providing device control, input actions, and screenshots over HTTP, SSE, or stdio.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeQuick setup

IDB-MCP

PyPI Python Versions License

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

This project is based on the Facebook IDB CLI (fb-idb). See the GitHub repository (facebook/idb) and the Python package (fb-idb on PyPI).

What it is

  • MCP server: Exposes a set of iOS automation tools (list/select device, screenshot, tap, swipe, type, etc.) over MCP transports (HTTP, SSE or stdio) using fastmcp.
  • Python module: Import to manage and control iOS simulators programmatically.

Table of contents

Key features

  • Device management πŸ”§: list devices, select by UDID or name, boot/shutdown, kill IDB.
  • Input control πŸ‘†: tap, swipe, type text, tap keys, tap buttons.
  • Screen utilities πŸ–ΌοΈ: capture screenshots, query screen size, get view description.
  • Image/coord scaling πŸ“: optional scaling to a target viewport for consistent coordinates.

Add to your favorite tools

You can use idb-mcp in any MCP-compatible client (e.g., Cursor, Claude Desktop) by adding a server entry to your client's MCP config. The client will launch the server on demand.

Steps:

  • Open your client's MCP configuration file (location varies by client).
  • Add an entry named askui-idb-mcp that starts the server over STDIO and sets a recommended target screen size.

Example configuration:

using uv (Make sure you have uv installed):

{
  "mcpServers": {
    "askui-idb-mcp": {
      "command": "uvx",
      "args": [
        "idb-mcp@latest",
        "start",
        "stdio",
        "--target-screen-size",
        "1280",
        "800"
      ]
    }
  }
}

Alternative (if idb-mcp is directly on your PATH without uv):

{
  "mcpServers": {
    "askui-idb-mcp": {
      "command": "idb-mcp",
      "args": [
        "start",
        "stdio",
        "--target-screen-size",
        "1280",
        "800"
      ]
    }
  }
}

Notes:

  • The --target-screen-size 1280 800 setting improves coordinate reliability, especially for models like Claude.

Development

This repository uses PDM and Ruff for dev tooling.

# Install dev deps
pip install pdm
pdm install --with dev

# Lint / Format
pdm run lint-check
pdm run format-check
# Type check
pdm run type-check

Contributing

Contributions are welcome! πŸ™Œ Please open an issue or pull request on GitHub. Questions? Email us at support@askui.com.

License

MIT License

Links