# mirroir-mcp

> MCP server for controlling a real iPhone via macOS iPhone Mirroring...and any MacOs app. Screenshot, tap, swipe, type — from any MCP client.

- **URL**: https://www.freshcrate.ai/projects/mirroir-mcp
- **Author**: jfarcand
- **Category**: MCP Servers
- **Latest version**: `runner-v0.1.2` (2026-06-04)
- **License**: Apache-2.0
- **Source**: https://github.com/jfarcand/mirroir-mcp
- **Homepage**: https://mirroir.dev
- **Language**: Swift
- **GitHub**: 69 stars, 11 forks
- **Registry**: github
- **Tags**: `ai-agent`, `iphone`, `iphone-mirroring`, `macos`, `mcp`, `mcp-server`, `mobile-testing`, `model-context-protocol`, `swift`

## Description

MCP server for controlling a real iPhone via macOS iPhone Mirroring...and any MacOs app. Screenshot, tap, swipe, type — from any MCP client.

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `runner-v0.1.2` | 2026-06-04 | High | **Full Changelog**: https://github.com/jfarcand/mirroir-mcp/compare/runner-v0.1.1...runner-v0.1.2 |
| `v0.33.3` | 2026-05-29 | High | ## What's Changed  ### Features - **mcp:** add press_back tool and capture-latency metric to check_health - **runner:** scaffold mirroir-run Rust binary — CLI surface only - **simulator:** FakeMirroring multi-app simulator runtime Replaces the hardcoded FakeScenario enum with an APP.md-driven AppPack/AppRegistry stack that hosts every loaded app in one binary, dispatches via Spotlight + App Switcher overlays, and renders scenes through SceneRenderer. - **simulator:** add SimulatorSpec schema and |
| `v0.33.2` | 2026-04-30 | High | ## What's Changed  ### Bug Fixes - **tap:** require uniform spacing before applying icon-label upward offset Rows with 3+ short labels but uneven X spacing (e.g. Chrome download bar with X / DOWNLOAD / · 1.9 MB) used to be flagged as icon grids and shifted ~30pt upward, missing the button. Gate the offset on max/min spacing ratio ≤ 1.5. Fixes #24.  ### Chores - bump version to 0.33.2  **Full Changelog**: https://github.com/jfarcand/mirroir-mcp/compare/v0.33.1...v0.33.2 |
| `v0.33.0` | 2026-04-23 | High | ## What's Changed  ### Features - **app-md:** formal spec + orientation-aware layout + permission bridge New docs/APP.md.spec.md documents every parser field. ## Tab Layout adds vertical edge-control support; IconDetector extrapolates on the dominant axis. Credentials render keys-only in skills; hints get a distinct ## Tips section. permissions.json gains perApp tool allow/deny. - **targets:** orientation-aware layout zones for iPhone Mirroring IPhoneMirroringTarget now publishes per-orientation |
| `v0.32.2` | 2026-04-15 | High | ## What's Changed  ### Features - **app-desc:** add reset_before_explore flag for clean app launch Force-quits via App Switcher before launch when APP.md declares it. - **explore:** tab-driven navigation from APP.md for non-standard UIs Parse tab names from Structure section, inject as priority targets when components fail.  ### Bug Fixes - **explore:** always inject APP.md tabs as priority targets, not just on empty plan  ### Chores - bump version to 0.32.2 - clean orphaned files and update git |
| `v0.32.1` | 2026-04-10 | High | ## What's Changed  ### Features - **patterns:** unify vocabulary, add archetype field, update search paths patterns/elements, patterns/screens, patterns/apps with legacy fallback paths.  ### Bug Fixes - **tests:** resolve skill paths under both skills/ and legacy root Handles new patterns/ and skills/ structure, skips APP.md + patterns/ files. - **tests:** skip APP.md loader integration test when sibling repo absent Uses XCTSkipUnless to gracefully handle CI environments without the skills repo. |
| `v0.32.0` | 2026-04-09 | Medium | ## What's Changed  ### Features - **design-system:** iOS design system with recipes, APP.md descriptions, and 13 new components Screen recipes for archetype detection, APP.md for human-authored app maps with obstacle auto-dismiss. - **ocr:** add configurable recognition languages via MIRROIR_OCR_LANGUAGES Adds readStringArray helper, ocrLanguages property, and unit tests. Fixes #19. - **screen:** add omit_screenshot option for describe_screen MIRROIR_OMIT_SCREENSHOT env var + per-call param, fix |
| `v0.31.1` | 2026-03-31 | Medium | ## What's Changed  ### Bug Fixes - **deps:** update website dependencies to resolve security alerts - **tap:** apply iconOffset to bottom zone icon rows, fixes #15  ### Chores - bump version to 0.31.1  **Full Changelog**: https://github.com/jfarcand/mirroir-mcp/compare/v0.31.0...v0.31.1 |
| `v0.31.0` | 2026-03-31 | Medium | ## What's Changed  ### Features - **ocr\|vision:** upscale small screenshots for OCR, add visionModel override - **vision:** zoom-mode calibration, parser hardening, border cropping  ### Chores - bump version to 0.31.0 - **deps:** bump h3  **Full Changelog**: https://github.com/jfarcand/mirroir-mcp/compare/v0.30.1...v0.31.0 |
| `v0.30.1` | 2026-03-30 | Medium | ## OCR Coordinate Fix  - **Y-coordinate mapping fixed** — Vision OCR now maps through actual image height (in points) instead of the AX-reported window height. When screencapture includes extra chrome beyond the window bounds (rounded corners, home indicator), bottom-of-screen elements were compressed upward by ~10%. Fixes #11. - **False border detection eliminated** — ContentBoundsDetector threshold raised from 1px to 5% per axis. The phone's rounded corners trimmed a few pixels, falsely trigge |

## Citation

- HTML: https://www.freshcrate.ai/projects/mirroir-mcp
- Markdown: https://www.freshcrate.ai/projects/mirroir-mcp.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/mirroir-mcp/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
