witchan/ios-mcp

iOS MCP: MCP management tool for jailbroken iPhones, enabling developers and AI agents to inspect and control devices.

What it solves

iOS MCP allows AI agents (such as Claude, Cursor, or Codex) to directly control a jailbroken iPhone. It bridges the gap between an LLM's reasoning and the physical or software-based interaction with an iOS device, enabling automation and reverse engineering debugging.

How it works

It operates as a Model Context Protocol (MCP) server running on a jailbroken iOS device. It exposes 46 different tools to an AI agent, providing a comprehensive set of a capabilities including:

  • Touch and Gestures: Simulating taps, swipes, long presses, and drag-and-drop actions at specific coordinates.
  • Hardware Buttons: Simulating physical button presses (Home, Power, Volume).
  • Text Input: Entering text via the clipboard or HID simulation.
  • Visuals: Taking screenshots and performing OCR (using either Apple Vision or PaddleOCR) to understand the screen content.
  • App Management: Launching, killing, and installing/uninstalling apps (.ipa, .tipa, .deb).
  • System Access: Reading/writing files, executing shell commands, and accessing system logs.
  • Device Control: Adjusting brightness and volume.
  • Accessibility: Querying the UI element tree and interacting with specific elements by text or label.

Who it’s for

Developers and reverse engineers who own a jailbroken iOS device and want to use AI agents to automate tasks or debug software on the device.

Highlights

  • Extensive Toolset: 46 tools covering everything from low-level shell access to high-level UI interaction.
  • Flexible OCR: Supports both offline PaddleOCR (via ONNX Runtime CPU) and Apple Vision.
  • Multimodal Interaction: Combines screenshots, UI element trees, and OCR for the AI to "see" and interact with the device.
  • Broad Compatibility: Supports various jailbreak types (rootful, rootless, roothide) and iOS versions from 13 to 18.

Related

  • Project
  • Project
  • Project
  • Project
  • Project