iOS MCP: control a jailbroken iPhone over MCP
iOS MCP
An MCP server that installs on a jailbroken iPhone and gives an agent 46 tools: taps, screenshots, OCR, apps, files and logs
- 685 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- A server with no authentication runs shell commands, reads and writes files and shows the logs of all apps, so anyone on your network gets full access to the phone
- A jailbreak lowers the device's protection, and installing packages and elevating privileges can break the system or lose data
- Logs and screenshots contain personal data, and they reach the model provider along with the agent's requests
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/ios-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- A server with no authentication runs shell commands, reads and writes files and shows the logs of all apps, so anyone on your network gets full access to the phone
- A jailbreak lowers the device's protection, and installing packages and elevating privileges can break the system or lose data
- Logs and screenshots contain personal data, and they reach the model provider along with the agent's requests
This is third-party code. Review the repository files before installing.
What it does
iOS MCP runs right on the phone as a tweak with an MCP server, and an agent (Claude, Codex, Cursor) controls the device over the network. Taps, swipes, long press, drag and hardware buttons go through HID emulation. Text input works two ways: fast paste through the clipboard and character-by-character typing. `get_ui_elements` returns the interface tree, `tap_element` presses by text or label, and `ocr_screen` recognizes text offline through PaddleOCR with ONNX Runtime on CPU or through Apple Vision. Next comes app management: launch, kill, list, install and uninstall of `.ipa`, `.tipa` and `.deb`, and reading sandbox paths and entitlements. There is clipboard read and write, directory listing, file read and write, the live system log of all apps, listing and reading crash reports, brightness and volume, device info and opening URLs or schemes. The `run_command` tool executes shell commands. The author names the main scenarios: iOS test automation and debugging during reverse engineering. The service listens on port 8090, and the health check answers JSON with the version and supported MCP protocol versions. A ready prompt snippet for the agent can be copied in the phone settings.
Who it is for. For iOS developers, testers and app researchers who own a jailbroken iPhone and need to give Claude Code or Codex access to its screen and files.
Good fit when
- You need to walk through scenarios in an app on a real iPhone automatically: taps, swipes, text input and waiting for elements
- The agent must read the device screen through the interface tree and offline text recognition with coordinates
- You are debugging an app and want the agent to read the system log and crash reports straight from the phone
- You need to install or remove `.ipa` and `.deb` packages and look up an app's sandbox path and entitlements
- You are researching your own build and want to automate on-device routine through MCP
Not a fit when
- The phone is not jailbroken: the server runs only on rootful (iOS 13–18), rootless or roothide (iOS 15–18) devices
- This is your main phone with personal data and payments: the tool reads and writes files and runs shell commands
- You need a fleet of many devices under one control: the server installs on each phone separately and listens on its own address
- You want to test other people's apps without the owner's permission: automating and reverse engineering someone else's code may break service terms and the law
Example request
Open the Settings app on the iPhone, find the Wi-Fi item in the interface tree, tap it and take a screenshot, then read the system log for the last minuteMCP
- Transport
- http
- Authentication
- not required
Limitations
A jailbroken iPhone is required. The `.deb` packages come in three kinds: `rootful` (iOS 13–18, architecture `iphoneos-arm`), `rootless` (iOS 15–18, `iphoneos-arm64`) and `roothide` (iOS 15–18, `iphoneos-arm64e`). By hand you need `mobilesubstrate` or ElleKit and `preferenceloader`, and through Cydia or Sileo it installs by the name "iOS MCP".
While the screen is locked the server rejects taps, swipes, input, app launches and the shell, and lets through only state queries, screenshots and wake-up. The `mcp-root` helper gives limited privilege elevation for bundled tools only, with no general sudo in it. Vision on iOS 13 recognizes only English by default, while PaddleOCR supports Chinese, English and digits.
The author states the project is provided "as is" and takes no responsibility for device faults, data loss, account problems and other damage. Third-party components such as AppSync Unified and ldid come under their own licenses.
How to disable. Stop the service in the phone settings (Settings, then iOS MCP), remove the package through Cydia or Sileo and restart SpringBoard. Delete this MCP server's entry from the agent settings.
FAQ
How do I install iOS MCP on an iPhone?
Download the `.deb` package from the releases page with the architecture that matches your jailbreak type, or search for "iOS MCP" in Cydia or Sileo. After installing, restart SpringBoard and open `http://DEVICE_IP:8090/health` in a browser: an answer with status `ok` means the service works.
How do I connect the server to Claude Code?
Start the service in the phone settings and copy the agent prompt snippet from there. The MCP address in the server source is `/mcp` on the same port 8090. For Claude Code the command `claude mcp add --transport http ios-mcp http://DEVICE_IP:8090/mcp` fits.
Is a jailbreak required?
Yes. The server runs only on devices with a rootful, rootless or roothide jailbreak. It cannot be installed on a stock iPhone.
Is it safe to leave the server on?
Only on a trusted network. The server has no built-in authentication, and `run_command`, `read_file`, `write_file` and `get_syslog` expose a shell, files and app logs, so turn the service on for the duration of the work.
Which iOS versions are supported?
iOS 13–18 for rootful and iOS 15–18 for rootless and roothide. Each type has its own package: `iphoneos-arm`, `iphoneos-arm64` and `iphoneos-arm64e`.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots
An MCP server that takes plain-language commands and drives the iOS Simulator through idb: apps, taps, logs
An MCP server for the iOS Simulator: taps, swipes, text input, accessibility tree, screenshots, video and app control
Lets Claude Code and Codex drive a real iPhone: read the screen, tap, type and scroll in any app
An MCP server that hands an agent a cloud iPhone or Android emulator, with taps, swipes and app launches.
An MCP server that drives an Android device over ADB: app navigation, input and automated tests
README in short
A table groups the 46 tools by category: gestures, buttons, input, screenshots, apps, accessibility, clipboard, files, logs, device, links and shell. The security section warns about `run_command`, file access and logs, and the end gives community details, the license and a disclaimer.