Appium MCP, mobile-mcp or a hosted Android MCP server: which should your agent use?
Facts from the appium-mcp, mobile-mcp and Maestro MCP docs, checked October 12, 2026.
The options
| Runs | Needs on your side | License | |
|---|---|---|---|
| Appium MCP | Locally (npx), embedded Appium drivers or your Appium server | Node 22+, JDK, Android SDK, an emulator or device | Apache-2.0 |
| mobile-mcp | Locally, optional Streamable HTTP and Mobile Next cloud devices | Node 20+, adb, an emulator or USB device | Apache-2.0 |
| Maestro MCP | Locally (maestro mcp), optional runs on Maestro Cloud | The Maestro CLI and a device | Apache-2.0 (Maestro) |
| Phonebox | Hosted at phonebox.dev/mcp | An API key | Hosted service, pay per minute |
Set each one up in Claude Code
# Local servers: they drive an emulator or USB device on this machine
claude mcp add appium-mcp -- npx -y appium-mcp@latest
claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest
claude mcp add maestro -- maestro mcp
# Hosted: the phone comes with it
claude mcp add --transport http phonebox https://phonebox.dev/mcp \
--header "Authorization: Bearer $PHONEBOX_API_KEY"The three local servers find the emulator or device that adb sees, so start one first. The hosted server creates its own phone the first time the agent asks for one.
Where each one works
| Appium MCP, mobile-mcp, Maestro MCP | Phonebox hosted MCP | |
|---|---|---|
| Laptop with Android Studio | Yes, against your emulator | Yes |
| CI runner | Only with an emulator started in the job | Yes, with network access and an API key |
| Cloud agent sandbox | No emulator or USB device to drive | Yes, if the sandbox can reach phonebox.dev |
| A teammate's machine | Each person sets up their own device | Same phone, shared through the project |
| Still signed in tomorrow | If you keep that emulator | A parked phone keeps apps, files and sign-ins |
| iOS | Yes, with a simulator on a Mac | No, Android only |
What the agent reads on Phonebox
Every Phonebox observation returns the screen as numbered elements with their text, content description, resource ID and position, plus a screenshot when asked. The agent taps by text or number and reads again after each action:
snapshot snp_4f2k7m3q6z3a
app com.android.launcher3
keyboard hidden
screen 1080x2400
[1] EditText "Search apps" #search clickable editable (540,250)
[2] TextView "Chrome" #icon clickable (200,1900)
[3] TextView "Settings" #icon clickable (500,1900)
[4] TextView "Play Store" #icon clickable (800,1900)When each fits
- Appium MCP when your team already runs Appium: it can also generate locators and test code from what the agent did.
- mobile-mcp for quick local work across Android and iOS simulators on your own machine.
- Maestro MCP when your regression suite is already Maestro flows.
- A hosted server when the agent runs where no emulator can, or the phone has to stay signed in between sessions.
Questions
What is Appium MCP?
An open-source MCP server in the Appium GitHub organization (appium/appium-mcp). It runs locally with npx, bundles the UiAutomator2 and XCUITest drivers or connects to your Appium server, and gives an agent tools for sessions, elements, gestures, screenshots and generating tests. It needs a local device or emulator.
Is there a hosted mobile MCP server?
Yes. Phonebox runs a hosted Android MCP server at https://phonebox.dev/mcp with API-key auth; the phones run in its cloud. BrowserStack and Sauce Labs also host MCP servers for their device clouds, with OAuth and private-device requirements respectively.
Can Appium MCP drive a Phonebox phone?
No. Appium drives devices through ADB-based drivers, and Phonebox phones don't expose ADB. Use Appium MCP against a local emulator, and Phonebox's own MCP server where no emulator can run or the phone must keep its state.