About mcp-idb
mcp-idb connects MCP clients to Facebook’s iOS Development Bridge (idb) for automated iOS device management and test execution. It is intended for workflows involving device interaction, screenshots, and app installation.
Key features
- 01Automated iOS device management
- 02Test execution through idb
- 03Screen interaction automation
- 04Screenshot testing
- 05App installation and removal
Use cases
- 01Automating iOS test development
- 02Capturing screenshots for tests
- 03Tapping controls on an iOS screen
- 04Installing or removing iOS apps
MCP support
Exposes idb-based iOS device management and test execution to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
1Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| command | string | Yes | The IDB command to execute (e.g., list-apps, screenshot, etc.). - For a full list of commands, run 'idb help'. - For help with a specific command, run 'idb <command> --help'. To interact with the device (simulator): IMPORTANT: Always try using the 'idb ui describe-all' command to identify buttons before dispatching UI actions. If that doesn't work, try using the following commands: - **Tap** - **Command:** 'idb ui tap X Y [--duration DURATION]' - **Description:** Simulates a tap at the given screen coordinates. Optionally, you can set the tap's duration. - **Swipe** - **Command:** 'idb ui swipe X_START Y_START X_END Y_END [--delta STEP_SIZE]' - **Description:** Simulates a swipe gesture from the start point to the end point. By default, the swipe moves in steps of 10 points; use '--delta' to change the step size. - **Press a Button** - **Command:** 'idb ui button {APPLE_PAY, HOME, LOCK, SIDE_BUTTON, SIRI} [--duration DURATION]' - **Description:** Simulates pressing a specified hardware button. The press duration can be adjusted with the '--duration' flag. - **Inputting Text** - **Command:** 'idb ui text "some text"' - **Description:** Types the provided text string into the target device. - **Key Events** - **Single Key:** 'idb ui key KEYCODE [--duration DURATION]' - **Key Sequence:** 'idb ui key-sequence KEYCODE1 KEYCODE2 ...' - **Description:** Simulates key press events. Use the single key command for one key press (with an optional duration) or the key sequence command for multiple sequential key events. **Frame and Coordinates in idb ui describe-all:** The output from 'idb ui describe-all' provides detailed layout information for each UI element. Each element includes a 'frame' object with: - **x and y:** The coordinates of the element's top-left corner relative to the device screen. - **width and height:** The dimensions of the element. Additionally, an 'AXFrame' string presents this data in a human-readable format like '{{x, y}, {width, height}}'. These values allow you to determine an element's position—commonly by calculating its center (x + width/2, y + height/2) for precise interactions. For instance, in the sample output, the "More, tab, 4 of 4" button has a frame starting at x=330, y=876.33 with a width of 110 and height of 45.67. A tap command such as 'idb ui tap 375 880' (which targets near the element's center) successfully triggers the button. |
| options | array | No | Optional arguments for the IDB command |
Details
From the project READMEmcp-idb
MCP server integration for Facebook's iOS Development Bridge (idb).
Overview
This package provides integration between MCP (Model Context Protocol) and Facebook's idb (iOS Development Bridge), enabling automated iOS device management and test execution through MCP.
Start the server:
npx -y @noahlozevski/mcp-idb
Prerequisites
Installing idb
To install idb:
brew tap facebook/fb
brew install idb-companion
# verify installation
idb
For more details, visit the official idb GitHub repository.
Configuration
mcp-config.json Setup
To use idb in your MCP configuration, add the following to your mcp-config.json:
{
"mcpServers": {
"idb": {
"command": "npx",
"args": ["-y", "@noahlozevski/idb"]
}
}
}
Example use cases include:
- Automated test development
- Screenshot testing
- Automated interactions ("tap the home button on the screen")
- Installing / removing applications
Development
Code Formatting
This project uses Prettier for code formatting. To format your code:
npm run format # Format all files
The formatting configuration can be found in .prettierrc at the root of the project.
Troubleshooting
Common issues and solutions:
- idb companion not found: Ensure idb-companion is installed via Homebrew
- Device not detected: Make sure the iOS device is:
- Connected via USB
- Trusted on the computer
- Has developer mode enabled
Contributing
Please follow the standard MCP contribution guidelines when making changes to this package.
License
This project is part of Mobile Control Plane (MCP) and follows Amazon's internal licensing policies.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.