Maestro MCP for AI Coding Agents

Large language models are strong at reading code and proposing UI tests, but they often stop short of operating a live app. You either hand them a static screenshot or test the app yourself and tell the agent what happened.

Maestro MCP makes that loop simple. Install the Maestro CLI, add one MCP server to your coding agent, boot an iOS simulator or Android emulator (or connect a physical Android device), and ask the agent to check the UI. Maestro implements the Model Context Protocol (MCP), so agents such as Claude Code, Cursor, Codex, Copilot, Gemini, Windsurf, JetBrains AI Assistant, and Grok Build can list devices, inspect the screen, run flows, take screenshots, open the Viewer, and optionally send work to Maestro Cloud.

Agents use Maestro tools (inspect_screen, run, screenshots, Viewer) and adapt when the UI changes. You mainly need a running target, MCP connected, and a clear ask about what to verify on screen. The same approach works on iOS, Android, React Native, Flutter, and web.

What you get

Maestro MCP ships with the Maestro CLI. Connect it in your agent and the tools below show up in the session. With the app running, you stay in one conversation: change code, then ask the agent to exercise the UI and report what happened. Common asks include confirming a feature still works (bookmarks, search, a primary CTA or any feature your app has), walking main tabs or Settings, and saving screenshots for a PR or for analyzing the UI. When something fails, the agent can inspect the screen, adjust, and try again. Use Maestro Viewer (below) when you want to watch the device while it works.

In the agent transcript you see MCP calls such as list devices, open Viewer, take_screenshot, run (launch and taps), and inspect_screen, all in one chat thread with the UI check at the top (here: Starred chat on the Claude Android app).

Tool Role
list_devices Devices and browsers available for automation
inspect_screen Current screen view hierarchy
take_screenshot Capture for PRs and reviews
run Execute a flow (inline YAML, files, or a folder)
cheat_sheet Maestro command and flow syntax reference for the agent
open_maestro_viewer Live device mirror and command stream
list_cloud_devices Valid Cloud device and OS pairs
run_on_cloud Submit a flow or folder to Maestro Cloud
get_cloud_run_status Poll a Cloud run until it finishes

Maestro Viewer

Maestro Viewer shows the live device next to the agent and the Maestro steps it is running. You ask in natural language, the agent drives the app, and Viewer keeps the screen and command stream in one place so a human can follow along without leaving the IDE.

In this session the agent was asked to check Saved locations on Android Weather. It listed devices, opened Viewer, launched the app, navigated, added a preferred location (Paris), saved it, and captured screenshots along the way. The center panel is the Maestro command stream (launchApp, tapOn, inputText, takeScreenshot, scroll). The right panel is the running app as the agent left it: current location plus saved cities.

Ask the agent to open the maestro viewer when you want to watch the live device.

Getting started

  1. Install the Maestro CLI so maestro is on your PATH, then add MCP to your agent:

Copy

   # Claude Code
   claude mcp add maestro -- maestro mcp

# Codex
   codex mcp add maestro -- maestro mcp

# Grok Build
   grok mcp add maestro -- maestro mcp

For Cursor, Claude Desktop, Copilot, Gemini, and other agents, follow the Maestro MCP Server install steps on the Maestro MCP docs.

  1. Boot an iOS simulator or Android emulator, or connect a physical Android device. The agent confirms via list_devices.
  2. Install and launch your app.
  3. Ask in natural language, for example: Ensure bookmark functionality is working using Maestro. Or: I fixed the search results bug. Use Maestro to re-check search with a known query. The agent lists devices, inspects, taps, asserts, and screenshots as needed.

Takeaway

You gain a coding agent that can operate the running app, not only read the repo. UI checks happen in the same session as implementation, so feedback is fast and tied to real screens. Screenshots and Viewer give evidence you can share. One MCP setup works across agents and stacks, so teams spend less time on separate UI automation rituals and more time shipping with confidence.