How to Let Claude Code Test Your Mobile App
Give Claude Code hands in the iOS Simulator or an Android emulator so it checks its own UI changes. Five MCP tools, real setup commands, honest tradeoffs.
By agentools
- iOS Simulator MCP: iOS apps on a Mac
- Maestro: Turning agent checks into real tests
- agent-device: iOS and Android from one tool
- ARTEMIS: Natural language Android testing
- Chrome DevTools MCP: PWAs and mobile web
Claude Code is good at writing a new screen and bad at knowing whether that screen works. It compiles, the types pass, and then the button sits under the keyboard or the onboarding flow dead-ends on step three. Until the agent can see and touch the running app, I end up being its eyes, taking screenshots and describing bugs in chat.
The fix is to give the agent a device. Each tool below connects Claude Code (and usually Codex or Cursor too) to a simulator, an emulator or a browser through MCP or a CLI, so it can launch the app, read the screen, tap through a flow and confirm its own change. I picked them by platform, copied the install commands from each project's own docs, and noted where each one falls short.
One rule before you start: whatever you pick, tell the agent in CLAUDE.md to verify every UI change on the device before it reports a task as done. Without that line it will happily skip the check.
At a glance
| Tool | Best for | Pricing | Type |
|---|---|---|---|
iOS Simulator MCP | iOS apps on a Mac | Free, open source | MCP server (local, stdio) |
Maestro | Turning agent checks into real tests | Free CLI, paid cloud | CLI + MCP server |
agent-device | iOS and Android from one tool | Open source | CLI + MCP server |
ARTEMIS | Natural language Android testing | Open source | Android agent + MCP server |
| PWAs and mobile web | Open source | MCP Server |
The 5 picks

1. iOS Simulator MCP
Lets your coding agent tap, type, swipe and screenshot its way through the iOS Simulator
iOS Simulator MCP is the smallest setup on this list if you only ship to iOS. The agent gets tools to read the accessibility tree (ui_describe_all), tap, type, swipe, take screenshots, record video, install and launch apps and open deep links. Deep links are the underrated part: the agent can jump straight to the screen it changed instead of tapping through the whole app.
It needs macOS, Xcode with simulators, Node 20+ and Facebook's IDB. Install IDB, then add the server:
brew install facebook/fb/idb
claude mcp add ios-simulator npx ios-simulator-mcp
The tradeoff: it is iOS only, it drives the Simulator and not a physical phone, and IDB's current brew formula wants an Apple Silicon Mac on a recent macOS with a full Xcode install, not just the command line tools.
Pricing: Free, open sourceMCP server (local, stdio)

2. Maestro
Mobile and web UI testing your coding agent can run through MCP
Maestro is an open source UI testing framework for iOS, Android and web, and its MCP server ships inside the CLI. That matters because the agent does two jobs with one tool. While it builds a feature it can inspect the screen, tap, scroll and assert. When you ask for an end to end test, it writes a plain YAML flow, runs it until it passes, and the flow stays in your repo for CI.
Maestro needs Java 17 or newer. Install the CLI and register the MCP server:
curl -fsSL "https://get.maestro.mobile.dev" | bash
claude mcp add maestro -- maestro mcp
The tradeoff: the CLI is free under Apache 2.0, but parallel runs at scale push you toward Maestro Cloud, which is paid. For a solo app the local CLI is plenty.
Pricing: Free CLI, paid cloudCLI + MCP server

3. agent-device
Let your coding agent test its changes in the real mobile app
agent-device from Callstack covers the most ground: iOS, Android, HarmonyOS, TV platforms, web, macOS and Linux, on simulators, emulators and physical devices. Instead of reasoning over screenshots, the agent reads compact accessibility snapshots with refs like @e2, acts on them, and gets a diff of what changed. That keeps token use down on long flows. It also coordinates device access when you run several agents in parallel worktrees.
It needs Node 22.12 or newer (24 for web automation):
npm install -g agent-device@latest
agent-device doctor
For MCP, point your client at the command agent-device with args ["mcp"]. The project also suggests the plain CLI is often enough, since Claude Code can run shell commands directly. The tradeoff is that the breadth means more setup to read through, and it does not replace a test suite on its own, though it can export a run as Maestro YAML.
Pricing: Open sourceCLI + MCP server

4. ARTEMIS
Turn plain-English instructions into Android phone automation
ARTEMIS is Google's open source Android automation agent. You describe a task or a test in plain English and it drives a real phone or emulator step by step, across apps, with Logcat output and screenshots. It ships an MCP server, a web console, a CLI and a Python SDK, and reports 99%+ on the AndroidWorld benchmark.
Install from the repo, then wire the MCP server into your agents:
git clone https://github.com/google/artemis.git && cd artemis
./start.sh
uv run artemis mcp --install all
The tradeoffs: it is Android only, it runs its own model loop so you pay for the model API you connect on top of Claude Code, and the first task installs an accessibility helper on the device (you can remove it with uv run artemis helper uninstall). It shines for exploratory testing more than for quick checks.
Pricing: Open sourceAndroid agent + MCP server
5. Chrome DevTools MCP
Official Chrome DevTools for coding agents
If your "mobile app" is a PWA or a responsive web app, you may not need a simulator at all. Chrome DevTools MCP is Google's official server that lets the agent control a live Chrome: screenshots, console, network requests, performance traces and Puppeteer style automation. The agent can resize the viewport, load the page, read console errors and check that a fix actually removed them.
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
There is also a Claude Code plugin that bundles skills (/plugin marketplace add ChromeDevTools/chrome-devtools-mcp). The tradeoffs: it tests Chrome, not Safari on iOS, and usage statistics are on by default unless you add --no-usage-statistics to the args.
Pricing: Open sourceMCP Server
More to consider
Which one should you pick?
My short version:
- iOS only, on a Mac: start with iOS Simulator MCP. It is the least to install.
- You want tests you keep: Maestro, because every check can become a YAML flow in CI.
- iOS and Android, or several agents at once: agent-device.
- Android, exploratory testing in plain English: ARTEMIS.
- PWA or mobile web: Chrome DevTools MCP, or the agent-browser skill if you prefer a CLI.
If you build for Android with Kotlin, pair any of these with the Android skills so the agent writes code that matches current platform guidance before it ever touches the emulator.
A workflow that actually closes the loop
Installing the server is the easy half. What made the difference for me was a short block in CLAUDE.md:
- After any UI change, build and launch the app on the simulator or emulator.
- Go straight to the changed screen (deep link when possible).
- Read the accessibility tree, perform the main action, take one screenshot.
- If something is off, fix it and repeat. Only then report done.
When a bug is hard to describe in words, I record it with Scrawl and hand the bundle to the agent. For bugs the agent keeps failing to fix, the systematic debugging skill stops it from guessing and makes it trace the root cause first.
Expect slower turns. Each device action costs a tool call and some tokens, so I keep the verification step to the screens a change touched, not a full regression run. For more ways to keep those costs down, see my roundup of tools that cut your coding agent's token bill.
