Disclosure: I work on Phonebox, one of the twelve servers below. Most of the others are free and open source, and I've tried to be fair about when each is the better pick.
If you want an AI agent (Claude Code, Codex, Cursor, your own) to see and control an Android device, you need an MCP server for it. There are a lot of them now, and the lists that rank for "android mcp server" are mostly directory pages with stale star counts. So here is a comparison of twelve, with GitHub numbers checked on October 16, 2026.
All twelve at a glance
| Server | Stars | Runs | Phone included | iOS | Agent reads the screen as |
|---|---|---|---|---|---|
| mobile-mcp | 9,669 | Local (stdio or HTTP) | No; optional paid cloud | Yes | Accessibility tree, screenshot fallback |
| Appium MCP | 498 | Local, or your Appium grid | No | Yes | Page source XML and locators |
| Maestro MCP | 16,088 (Maestro) | Local, in the Maestro CLI | Maestro Cloud for runs | Simulators | View hierarchy JSON and screenshot |
| agent-device (Callstack) | 5,051 | Local CLI and MCP | No; device-cloud proxy | Yes | Accessibility snapshot with refs |
| Patrol MCP | 1,447 (Patrol) | Local, Flutter projects | No | Yes | Native UI tree and screenshot |
| Android-MCP (CursorTouch) | 895 | Local (uvx, Python 3.13) | No | No | Interactive elements, optional screenshot |
| android-mcp-server (minhalvp) | 811 | Local (Python, adb) | No | No | Clickable-element text and screenshot; no commits since May 2025 |
| android-remote-control-mcp | 718 | An app on the phone itself | Your own phone | No | Compact accessibility tree and screenshot |
| Mobilerun MCP | New (Mobilerun: 9,675) | Mobilerun Cloud | Yes, Mobilerun Cloud phones | Yes | Accessibility tree via the Portal app |
| BrowserStack MCP | 155 | Local or hosted (OAuth) | Yes, real devices | Yes | Session screenshots; sessions and test runs, not step control |
| Sauce Labs MCP | Hosted | Hosted (username and key) | Private devices, paid add-on | Yes | UI source and screenshot |
| Phonebox | Hosted | Hosted (API key) | Yes, cloud Android phones | No | Numbered text list of elements and screenshot |
Which one to use
- The default, on your own machine: mobile-mcp. Free, active, Android and iOS, with logs, screen recording and location built in.
- Your team already runs Appium: Appium MCP, which can also generate Appium test code from what the agent did.
- Your tests are Maestro flows: Maestro MCP, built into the CLI you already have.
- React Native or Expo: agent-device, with replayable sessions and Maestro export.
- Flutter: Patrol MCP, to write and run Patrol tests.
- The agent runs in CI, a cloud sandbox or a teammate's laptop: a hosted server. Phonebox needs only an API key and keeps the phone signed in between sessions; Mobilerun Cloud and the device-farm servers need their platform accounts.
- Driving your own personal phone remotely: android-remote-control-mcp, which runs on the phone.
Local or hosted: the real difference
Every local server needs an emulator or a USB phone that adb can see, on the same machine as the agent. That's free and fast on a workstation, and impossible on most CI runners and cloud sandboxes. A hosted server moves the phone to the cloud: the agent needs a URL and a key, and any machine can use the same phone.
# 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"
Not device control
Two names that show up in searches do something else. Google's Android Management API MCP manages enterprise device policies, not the screen. mikechambers/adb-mcp controls Adobe apps, not Android.
The full comparison, kept up to date, is on phonebox.dev. If I missed a server you use, tell me in the comments and I'll check it.
Top comments (0)