A side-by-side look at the Expo Android MCP and Phonebox MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Expo Android MCP for os automation work as a local process; choose Phonebox for os automation over a hosted endpoint. You can also run both side by side in one mcpServers block.
ADB_PATH, ADB_SERIAL, ADB_TIMEOUT_MS, ADB_MAX_BUFFER_MB, ADB_DEBUG, MCP_TRANSPORT, PORT.devices, doctor, setDevice.PHONEBOX_API_KEY.create_phone, observe, act.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | OS Automation | OS Automation |
| Quality signal | 52/100 · Good | 52/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | ADB_PATHADB_SERIALADB_TIMEOUT_MSADB_MAX_BUFFER_MBADB_DEBUGMCP_TRANSPORTPORT | PHONEBOX_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 4 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 17 | 8 |
| Full listing | View Expo Android MCP | View Phonebox |
deviceslist connected devices and emulators.doctorvalidate adb availability and show connected devices.setDeviceoverride the active device serial for this MCP process.inspectUI dump parsed into elements with a summary (screenshot optional).screenshotcapture a screenshot only (base64 or file path).findElementreturn elements that match search criteria.tapElementfind an element and tap its center.waitForElementwait until an element appears (optionally with state checks).assertElementverify element existence and state.taptap at x/y coordinates.swipeswipe between coordinates.longPresspress and hold at coordinates.create_phoneCreates a cloud Android phone and waits until it's readyobserveReads the screen as a numbered text list, plus a 720px screenshotactRuns up to 20 actions in order: tap, type, swipe, scroll, open an app, wait for an elementinstall_appInstalls from the app library or from your own uploaded APKcreate_app_uploadUploads your APK with one `curl` commandlive_view_urlA link for a person to watch and control the phonestart_phoneResumes a parked phone, or parks it to stop billinglist_phonesFind phones, wait for them, list apps, restart a stuck phonePaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"expo-android-mcp": {
"command": "npx",
"args": [
"-y",
"@fndchagas/expo-android"
],
"env": {
"ADB_PATH": "YOUR_ADB_PATH_HERE",
"ADB_SERIAL": "YOUR_ADB_SERIAL_HERE",
"ADB_TIMEOUT_MS": "YOUR_ADB_TIMEOUT_MS_HERE",
"ADB_MAX_BUFFER_MB": "YOUR_ADB_MAX_BUFFER_MB_HERE",
"ADB_DEBUG": "YOUR_ADB_DEBUG_HERE",
"MCP_TRANSPORT": "YOUR_MCP_TRANSPORT_HERE",
"PORT": "YOUR_PORT_HERE"
}
}
}
}
{
"mcpServers": {
"phonebox": {
"url": "https://phonebox.dev/mcp"
}
}
}