Mirroir MCP logo

Mirroir MCP

Controls a real iPhone through macOS iPhone Mirroring with screen inspection, taps, swipes, typing, and navigation tools.

Install Mirroir MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "mirroir-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mirroir-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

npx -y mirroir-mcp

npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for mirroir-mcp@0.40.1: wanted {"os":"darwin"} (current: {"os":"linux"}) npm ERR! notsup Valid os: darwin npm ERR! notsup Actual os: linux npm ERR! A complete log of this run can be found in: /home/user/.npm/_logs/2026-10-15T11_33_34_776Z-debug-0.log

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 9d ago.

Overview

The mirroir-mcp MCP server lets AI agents inspect and control a real iPhone connected through macOS iPhone Mirroring. It uses local Apple Vision OCR to expose visible text and tap coordinates, then provides interaction tools for taps, typing, swipes, gestures, navigation, and screenshots. Reach for it when an agent needs to test, explore, or operate an iOS app through a Mac. It requires macOS 15 or newer, an iPhone connected with iPhone Mirroring, and Screen Recording and Accessibility permissions.

Use cases

  • Test an iOS app login flow through a real mirrored iPhone
  • Explore an unfamiliar iOS app using OCR-visible controls
  • Create scripted app demonstrations with screenshots
  • Record repeatable interaction steps for an iOS workflow
  • Run smoke tests for supported game menus and tutorials

Key features

  • Apple Vision OCR with tap coordinates
  • Screenshot, tap, swipe, and text-entry controls
  • iPhone navigation and app lifecycle actions
  • Optional YOLO CoreML icon detection
  • Touch, pinch, rotate, and held-input gestures
  • Step recording and compiled replay support

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

7/7 checks healthy over the last 36d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 14d ago via OSV.dev · mirroir-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars265Stargazers on the source repository.
npm downloads2.1kPackage downloads in the last 30 days.
Last commit3d agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How Mirroir MCP works

What mirroir-mcp MCP server does

The mirroir-mcp MCP server connects an MCP client to a real iPhone through the macOS iPhone Mirroring feature. It gives an agent a screen-observation and interaction loop: inspect the current display, decide on an action, perform it, and inspect the result again. This supports app exploration, QA smoke tests, tutorial walkthroughs, scripted demonstrations, and other workflows that can operate through visible iOS controls.

The server reports text elements with their screen positions through describe_screen. An agent can then use tools such as tap, type_text, and swipe without needing to hard-code coordinates. It also supports screenshots and higher-level actions for common iPhone navigation and app-management tasks.

How it works

Screen understanding primarily uses Apple Vision OCR, which runs locally and does not require an API key or external service. The OCR result includes detected text and tap locations. If a YOLO CoreML model is placed in ~/.mirroir-mcp/models/, the server can combine icon detection with OCR to identify non-text controls such as icons, toggles, and buttons. The detection mode can be configured for automatic selection, Vision only, YOLO only, or both backends.

The available interaction loop includes taps, text entry, swipes, screenshots, and gesture controls. Additional tools can press Back, open Home or the App Switcher, invoke Spotlight, scroll until text appears, reset an app through the App Switcher, and toggle network connectivity through Settings. measure can time an action until a target element becomes visible. Multiple automation endpoints can be managed with list_targets and switch_target.

Setup and configuration

The mirroir-mcp MCP server runs on macOS 15 or later and requires an iPhone connected through iPhone Mirroring. It can be installed with the project installer, with npx -y mirroir-mcp install, or through Homebrew. It can also be built from the Git repository and referenced using the resulting release binary.

Configure it as a standard stdio MCP server in a compatible client. The README provides setup commands or JSON/TOML examples for Claude Code, GitHub Copilot in VS Code, Cursor, and OpenAI Codex. On the first screenshot, macOS requests Screen Recording and Accessibility permissions; both must be granted for screen capture and interaction.

An optional APP.md file can describe an app's structure, tabs, expected obstacles, and items to skip. The server uses this information to add context, prioritize targets, auto-dismiss configured obstacles, and generate skills. Skill workflows can be recorded, saved as compiled replays, and checked against a live screen with component calibration.

Tools and capabilities

  • Inspect text and UI targets with describe_screen.
  • Capture screenshots and interact with visible controls.
  • Tap, type, swipe, scroll, and perform touch, pinch, and rotate gestures.
  • Use system navigation, app reset, Spotlight, and network controls.
  • Record steps, save compiled replays, and calibrate components.
  • Switch between multiple automation targets.

Limitations and notes

The mirroir-mcp MCP server automates the device through the capabilities exposed by iPhone Mirroring, not through a direct iOS automation API. Mirroring exposes a single pointer touch to apps, so touch-only games that require two independent fingers are not fully supported. The documented game-oriented controls include held touch sequences, keyboard input while dragging for compatible games, and pinch or rotate gestures for interfaces that accept them; real-time twin-stick and twitch gameplay remain outside the stated target.

Screenshots consume substantially more agent tokens than text descriptions, so workflows that can use describe_screen for text-rich screens may be more efficient. The project positions game support around QA smoke tests, tutorial walkthroughs, and scripted demos rather than continuous real-time play. macOS permissions, the mirrored iPhone connection, and the availability of the target screen are prerequisites for operation.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Mirroir MCP

mirroir-mcp is an MCP server that connects AI agents to a real iPhone through macOS iPhone Mirroring. Its main tools inspect screens with Apple Vision OCR, capture screenshots, tap, swipe, type text, scroll, navigate system UI, and perform touch gestures. It runs on macOS 15 or later.

Install it with the provided shell installer, `npx -y mirroir-mcp install`, or Homebrew. The README also supports building from source with the repository's `mirroir.sh` script. After installation, add the server as a stdio MCP server in your client.

It requires macOS 15 or newer, an iPhone connected through macOS iPhone Mirroring, and Screen Recording and Accessibility permissions. macOS requests both permissions the first time the server takes a screenshot.

Yes. Add a stdio server named `mirroir` to the project's `.cursor/mcp.json`, using `npx` with `-y` and `mirroir-mcp` as its arguments.

It can support some game QA, tutorial, and scripted-demo workflows, including held touch, keyboard-assisted input, pinch, and rotate gestures. It cannot provide two independent touch points through Mirroring, so touch-only games requiring multi-touch or real-time twin-stick control are limited.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMirroir MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mirroir-mcp?style=directory)](https://allmcps.com/mcp/mirroir-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/mirroir-mcp"><img src="https://allmcps.com/api/badge/mirroir-mcp?style=directory" alt="Mirroir MCP on AllMCPs" /></a>