# iPhone Mirror

An MCP server that drives a physical iPhone through macOS iPhone Mirroring and runs Xcode builds and tests on simulators and devices.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 8
- Author: nickatnight96
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/nickatnight96/iphone-mirror-mcp
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/iphone-mirror

## What it does

The server hooks into Apple's built-in iPhone Mirroring app, so the mirrored screen becomes something the model can act on: screenshots, OCR, taps, swipes, typed text. Nothing gets installed on the phone, and no jailbreak is involved.

It ships 63 tools. Some cover Xcode work — build, test, install, launch on simulators and attached devices. The rest touch the screen: `screenshot`, `read_screen`, `tap`, `paste_text`, `wait_for_text`. That last group is how you assert what a user actually sees. A `doctor` command checks permissions and confirms macOS is really delivering synthetic input rather than just reporting flags.

You need macOS 15+ and an iPhone on iOS 18+, paired nearby, locked, on the same Apple Account. Accessibility and Screen Recording go to whichever app launches the server — your terminal, or the desktop client hosting it. Without both, nothing runs. Pinch and rotate can't be synthesized, and the session pauses the moment the phone is unlocked or picked up.

## Install

### Claude Code (native platform)

**Install**
- The MCP registry has no launch command for it: see the repository README

## When to use it
- run a build and tests on a real iPhone from the chat
- verify the app shows the right text after launch
- tap a button on the phone screen without touching it
- grab a screenshot and read the text on it
- wait for a label to appear instead of sleeping

## Example prompts
- Take a screenshot of my iPhone and tell me which app is open
- Build the project and launch it on the paired iPhone with `run_on_iphone`
- Find the text "Continue" on screen and tap it

## Similar
- [mobile-mcp](https://affpapa.org/en/nevibecode/mcp/mobile-mcp.md) — MCP server · ★ 9946
- [mobilerun](https://affpapa.org/en/nevibecode/mcp/mobilerun.md) — MCP server · ★ 9751
- [e2e](https://affpapa.org/en/nevibecode/mcp/e2e.md) — MCP server · ★ 11912
- [XcodeBuildMCP](https://affpapa.org/en/nevibecode/mcp/xcodebuildmcp.md) — MCP server · ★ 6505
- [ShipSwift](https://affpapa.org/en/nevibecode/mcp/shipswift.md) — MCP server · ★ 3244
- [agent-device](https://affpapa.org/en/nevibecode/mcp/agent-device.md) — MCP server · ★ 5149

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
