simulator-use

simulator-use vs Maestro MCP

Pick Maestro if you want tests as Maestro flows: YAML files kept in the repo and run locally or on Maestro Cloud, on Android, iOS and web. (Maestro README, Maestro docs: Maestro MCP)

Pick simulator-use to build the app and run its XCTest and XCUITest cases, and to read and act on the screen with single calls instead of flows. (simulator-use README, Maestro docs: build your app for the cloud)

Measured on one Mac: simulator-use read 194 tokens per sign-in, Maestro MCP 2,987 (est.); simulator-use signed in in 3.50 s, Maestro MCP in 9.19 s.

Measured side by side

From the one-Mac benchmark of November 1, 2026: the same app and iPhone 17 Pro Simulator, one tool at a time, each through its own MCP server. Times are medians; tokens are estimates (characters / 4).

Maestro MCPsimulator-use
Signing in, step by step9.19 s3.50 s
Tokens read per sign-in (est.)2,987194
Sign-ins completed10 of 1010 of 10
Signing in, batched7.56 s2.87 s
Tokens read, batched (est.)2,885179
Batched sign-ins completed10 of 1010 of 10
Reading the screen (median)0.13 s0.19 s
Tapping a button (median)1.58 s0.68 s
Typing into a field (median)3.62 s1.14 s
Tool list in context (est.)3,0632,443
Setup its docs ask for0.59 s0.12 s

Maestro MCP 2.12.0, simulator-use 0.15.0. Every call is in bench/results/2026-11-01.

What each does

From each tool's own README, license and docs, read on October 31, 2026.

Maestro MCPsimulator-use
LicenseApache 2.0 (Maestro LICENSE)MIT (simulator-use LICENSE)
Builds the appNo; its flows run on an app you build (Maestro docs: build your app for the cloud)Yes: builds the Xcode project, installs and launches it (app_run) (simulator-use README)
Runs testsMaestro flows (YAML) (Maestro README, Maestro docs: Maestro MCP)XCTest and XCUITest, case by case (tests_run) (simulator-use README)
Screen as textA compact JSON view hierarchy (Maestro docs: Maestro MCP)One line per element: kind, label, #id, state and position (simulator-use README)
How it tapstapOn by text or id selectors in a flow (Maestro's inspect_screen tool)By #id or label, or at @x,y (simulator-use README)
Cloud optionMaestro Cloud runs flows (Maestro docs: Maestro MCP)A NoMac cloud iPhone (simulator-use cloud start), billed per minute (simulator-use README)
Needs besides XcodeJava 17. It installs a small companion driver app on the device (Maestro README, Maestro docs: how Maestro works)Node 20. Its engine is built on AXe's frameworks, which it bundles (simulator-use README)

Where simulator-use is better

A measured difference is listed when it is 5% or more.

Switching

Add simulator-use to Claude Code with one line (other clients: install):

claude mcp add simulator-use -- npx -y simulator-use mcp

The calls each made in the benchmark, step for step:

Maestro MCPsimulator-use
Setuplist_devices {}device_use {"device":"<udid>"}
Read the screeninspect_screen {"device_id":"<udid>"}ui_look {}
Tap a buttonrun {"device_id":"<udid>","yaml":"appId: dev.simtap.demo --- - tapOn: id: "signIn""}ui_act {"steps":["tap #signIn"]}
Type into a fieldrun {"device_id":"<udid>","yaml":"appId: dev.simtap.demo --- - tapOn: id: "email" - inputText: "gary@example.com""}ui_act {"steps":["fill #email gary@example.com"]}
Several steps in one callrun {"device_id":"<udid>","yaml":"appId: dev.simtap.demo --- - tapOn: id: "email" - inputText: "gary@example.com" - tapOn: id: "password" - inputText: "secret1" - tapOn: id: "signIn""}ui_act {"steps":["fill #email gary@example.com","fill #password secret1","tap #signIn"]}

Sources

Read on October 31, 2026. The measured numbers: benchmarks and the raw results.