Mirroir Mcp
Mirroir Mcp is an MCP server for controlling a real iPhone via macOS iPhone Mirroring. Screenshot, tap, swipe, type from any MCP client.
Last verified:
What is Mirroir Mcp?
Mirroir Mcp is an MCP server that gives AI agents full control of a real iPhone through macOS iPhone Mirroring. It provides 32 tools that let AI agents see the iPhone screen via OCR, reason about what to do, and execute touch actions like tapping, swiping, and typing. The tool operates on an observe-reason-act loop: describe_screen returns every text element with exact tap coordinates, your LLM decides what to do next, and tools like tap, type_text, and swipe execute the action.
Key features include autonomous BFS graph traversal for app exploration that generates SKILL.md files, repeatable testing pipelines from exploration to CI, cross-app workflows, and a community skill library with ready-made automation files. The tool supports branching and looping in skills, environment variable placeholders, and agent diagnosis that explains why automation steps fail and suggests fixes.
This tool is designed for AI developers building iPhone automation agents, QA engineers who need mobile testing without source code access, developers testing login flows and cross-app workflows, and anyone who wants AI agents to control real iPhone devices through MCP clients like Claude Code, ChatGPT, Cursor, or GitHub Copilot.
Security is built in with fail-closed design: without a config file only read-only tools are exposed, blockedApps prevents interaction with sensitive apps like Wallet or Banking, and it runs as a regular user process requiring only Accessibility permissions with no root or kernel extensions needed.
Mirroir Mcp pricing
Pricing model: Freemium
Free and open-source. Install via Homebrew (brew tap jfarcand/tap && brew install mirroir-mcp), npx (npx -y mirroir-mcp install), or shell script. No paid tiers mentioned. Community skill library at mirroir-skills repository is free. Claude Code plugin addition is free.
Mirroir Mcp pros
- Controls real iPhone through macOS iPhone Mirroring without jailbreak
- 32 tools exposed as MCP server for comprehensive iPhone automation
- OCR-based screen recognition with exact tap coordinates via describe_screen
- No source code, SDK, or jailbreak required for any app
- Autonomous BFS exploration generates SKILL.md files automatically
- Cross-app workflows supported (e.g., Waze to Messages)
- Agent diagnosis explains failure root causes and suggests fixes
- Security-first design with permissions.json for tool and app restrictions
- Works with any MCP client supporting stdio transport
- Community skill library with open collection of ready-made automation files
- Zero-OCR replay for fast deterministic testing under 1 second
- Environment variable placeholders in skills for reuse across accounts
- Video recording tools for capturing test runs
- Branching and looping logic supported in SKILL.md files
- Runs as regular user process with only Accessibility permissions required
Mirroir Mcp cons
- Requires macOS with iPhone Mirroring capability
- Needs physical iPhone connected to Mac
- Cursor jumps when AI works due to macOS HID input routing
- macOS app control is experimental with limitations
- Both MCP client and target window must be in same macOS Space for macOS targets
- iPhone-specific tools don't apply to macOS windows
- Mutating tools require explicit opt-in via config file
- Agent diagnosis may require API key for AI model tier
Frequently asked questions about Mirroir Mcp
Is this safe? Can the AI access my banking apps?
Without a config file, only read-only tools are exposed. Mutating tools require explicit opt-in. Use blockedApps in permissions.json to deny access to sensitive apps like Wallet or Banking. Closing iPhone Mirroring kills all input immediately.
Why does my cursor jump when the AI is working?
macOS routes HID input to the frontmost app. The server must activate iPhone Mirroring before each input. Put it in a separate macOS Space to keep your workspace undisturbed.
Does it work with any iPhone app?
Yes. It operates at the screen level through iPhone Mirroring — no source code, SDK, or jailbreak required. If you can see it on screen, the AI can interact with it.
Does it need any kernel extensions or root access?
No. All input (touch and keyboard) is delivered via the macOS CGEvent API, which only requires Accessibility permissions. No kernel extensions, no root privileges, no helper daemons.
Can it control macOS apps too, not just iPhone?
Experimental. You can add targets in .mirroir-mcp/targets.json pointing at macOS windows. The same tools work, but with limitations — both the MCP client and target window must be in the same macOS Space, and iPhone-specific tools (press_home, app_switcher, spotlight) don't apply.
Can I restrict which tools the AI can use?
Yes. Drop a permissions.json with allow and deny lists. Tools not in the allow list are hidden from the MCP client entirely.
What MCP clients are supported?
Any MCP client that supports stdio transport. Officially supported agents include Claude Code, ChatGPT, Cursor, and GitHub Copilot. Frameworks include LangGraph and Strands Agents.
What is a skill in mirroir?
Skills are SKILL.md files with numbered steps the AI follows, adapting to layout changes and unexpected dialogs. Steps use OCR (like Tap 'Email') not coordinates. They support branching, looping, environment variables, and can be shared on the community repository.
How does agent diagnosis work when a step fails?
Agent diagnosis runs in two tiers: deterministic OCR analysis first (free, no API key), then optionally an AI model for richer analysis. It compares expected vs. actual OCR and tells you the root cause and fix. Supports Anthropic, OpenAI, local Ollama, and CLI agents.