iphone-mirror-mcp

by nickatnight96

Not rated
GitHub

About

Drive a real iPhone via macOS iPhone Mirroring, taps, swipes, OCR, plus Xcode build/test automation on simulators and devices. No jailbreak.

Details

Author
nickatnight96
Categories
Developer Tools, Other, Productivity

Setup

Install iphone-mirror-mcp in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/nickatnight96/iphone-mirror-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

An MCP server that controls a physical iPhone through the built-in macOSiPhone Mirroringapp, and automatesXcodedevelopment testing — build, test, install, and launch on simulators and devices, then operate the app on the mirrored screen with taps, swipes, typing, and OCR.

No jailbreak. Nothing installed on the phone. No XCUITest target.

run_on_iphone (build → install → launch on the paired iPhone) → screenshot / read_screen / tap / paste_text drive the app on-device → wait_for_text / tap with expect / sim_log assert what the user sees

63 tools.Works with Claude, GPT, Gemini, local models — anything that speaks MCP over stdio.

git clone https://github.com/nickatnight96/iphone-mirror-mcp.git cd iphone-mirror-mcp ./install.sh

The installer checks your machine, builds a release binary, verifies permissions end to end, and prints the exact config for your client.

claude mcp add --scope user iphone-mirror -- ~/.local/bin/iphone-mirror-mcp
{ "mcpServers": { "iphone-mirror": { "command": "/Users/YOU/.local/bin/iphone-mirror-mcp" } } }

Take a screenshot of my iPhone and tell me what app is open.

Or grab the.mcpbbundle from thelatest releaseif your client installs MCP bundles and you would rather skip the toolchain (see thecaveats— it is ad-hoc signed but not notarized).

Full getting-started guide·per-client config

- macOS 15+with iPhone Mirroring, paired to aniOS 18+iPhone (nearby, locked, same Apple Account)
- Xcode— for thexcode_,device_, andsim_tools
- AccessibilityandScreen Recordingpermission, granted to the app that
launches*the server (your terminal, or the desktop app hosting your client) —
details

It tests all four permissions, captures a real frame, and confirms macOS is actually delivering synthetic input — rather than just reading permission flags. Run it before you suspect anything else.

Complete tool reference— all 63, with parameters, generated from the server's own catalog so it cannot drift.

Everyx/yis apixel position in the most recent screenshot, origin top-left. At input time the window bounds are re-queried and the pixel maps proportionally into the current bounds — so a window that moved or was resized between screenshot and tap still receives the tap in the right place.

Tested, not guessed — thefull listexplains why.

- Pinch and rotate cannot be synthesized.Trackpad gestures do not travel the CGEvent pipeline; an event tap sees nothing during a physical pinch, so there is nothing to reproduce.
- One phone at a time— device switching has no scriptable menu.
- The session pauses whenever the phone is unlocked or picked up.Apple's design; resuming needs it locked again.
- No accessibility tree— OCR and template matching are the element model. Face ID, Control Center, and hardware buttons are unreachable, and DRM content captures black.

This server can see and control whatever iPhone the Mac is paired with while mirroring is active.Treat it like handing your unlocked phone to the model.Run it only from clients you trust.

The phone locks the session the moment it is picked up or unlocked physically, which is a real kill switch.paste_textbriefly places text on the Mac clipboard and restores what was there;read_clipboardreads it.

SeeSECURITY.mdfor the trust model and how to report a vulnerability.

Issues and pull requests welcome — seeCONTRIBUTING.md.

scripts/run_tests.sh # build + unit/protocol tests + CLI smoke MIRROR_MCP_LIVE=1 scripts/run_tests.sh # + live tests (real window, capture, input)

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

One command, every package manager. Installs from pip, npm, and verified binary releases on macOS, Linux, and Windows.(server at https://iuymslcbbrbahxbfuzrr.supabase.co/functions/v1/mcp)

Store secrets in the OS keychain (macOS/Linux/Windows) and expose them to AI coding agents through 44 policy-governed MCP tools.

Caches large tool responses to files and returns compact resource links to save LLM context window space.

Query live Mac system metrics, listening ports, and Claude Code and Codex session history.

A VS Code extension with a GUI for the agentic-tools-mcp server, enhancing task and memory management.

Receive system notifications in your code editor when an AI response is complete.

Provides utility functions for common tasks like text processing, encoding, decoding, hashing, and system information.

Hebbian memory for AI agents — learns file access patterns, builds neural pathways, predicts next tools/files, saves tokens

Paid remote MCP for AI browser purchase approval checks, spend thresholds, merchant evidence, risk notes, and audit receipts.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.