adbfleet-mcp
OfficialEnables AI assistants to manage fleets of Android devices over ADB, including listing devices, checking device health and battery/storage, connecting or disconnecting network endpoints, installing APKs, and optionally running shell commands in parallel across selected devices.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@adbfleet-mcpinstall app-release.apk on all connected devices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
adbfleet-mcp
An MCP server that lets an AI assistant work with many Android devices over ADB at the same time. It can list devices, connect network endpoints, check device health, install APKs and, if you allow it, run shell commands. Every action runs in parallel across the devices you pick and returns results per device.
It works with any device adb can reach: USB phones, emulators, Wi-Fi debugging, ADB-over-TCP boxes, and cloud phones such as FoxPhone.
Maintained by FoxPhone, cloud Android phones. It is built on the adbfleet library.
Tools
Tool | What it does | Enabled by default |
| Lists attached devices with serial, state, kind (usb/emulator/network), model, | yes (read-only) |
| Model, Android version, battery, temperature, free space on | yes (read-only) |
| Runs | yes |
| Runs | yes |
| Installs an APK, or a set of split APKs, from the machine running the server. Supports | yes ( |
| Runs one non-interactive | no: start the server with |
Safety defaults
Shell is off unless you turn it on.
run_shell_on_devicesisn't registered until you start the server with--allow-shellor setADBFLEET_MCP_ALLOW_SHELL=1.Device selection must be explicit. Tools that act on devices need either
serials(serials, inventory names, serial prefixes or@N) orall_devices: true. If neither is given, nothing runs.Timeouts on everything. Each device has a timeout (30 s by default,
--timeout), and requested timeouts are capped by--max-timeout, 600 s by default. When a command times out, its adb process is killed.Limits.
--max-devices(default 50) rejects calls that target too many devices. Output for each device is truncated at--max-outputcharacters.APK checks. Files must exist and end in
.apk.--apk-dir DIRlimits installs to files inside one folder.No credentials and no vendor APIs. The server only calls the standard
adbbinary.
Related MCP server: mcp-android-emulator
Requirements
Node.js 18 or newer
Android platform-tools (
adb). The server looks for it at$ADBFLEET_ADB, then$ANDROID_HOME/platform-tools, then on yourPATH.
Setup
Claude Desktop, Cursor, or any MCP client that uses the mcpServers format:
{
"mcpServers": {
"adbfleet": {
"command": "npx",
"args": ["-y", "adbfleet-mcp"]
}
}
}To turn on shell commands and limit APK installs to one folder:
{
"mcpServers": {
"adbfleet": {
"command": "npx",
"args": ["-y", "adbfleet-mcp", "--allow-shell", "--apk-dir", "/home/me/builds"],
"env": { "ADBFLEET_ADB": "/opt/android-sdk/platform-tools/adb" }
}
}
}Options
--allow-shell expose run_shell_on_devices (off by default; or ADBFLEET_MCP_ALLOW_SHELL=1)
--no-install do not expose install_apk_on_devices
--apk-dir DIR only allow installing APKs from inside DIR
--timeout SEC default per-device timeout (30)
--max-timeout SEC upper limit for any requested timeout (600)
--jobs N devices handled in parallel (8)
--max-devices N refuse calls that target more devices than this (50)
--max-output N truncate per-device stdout/stderr to N chars (16000)
--inventory FILE adbfleet fleet.json with device names and tagsThe server reads the same fleet.json inventory as the adbfleet CLI, from --inventory, $ADBFLEET_INVENTORY, ./fleet.json or ~/.config/adbfleet/fleet.json. That lets the assistant refer to devices by name, for example "serials": ["cloud-01"].
Using it with FoxPhone cloud phones
FoxPhone cloud phones are Android devices that run in the cloud. When ADB access is enabled, each one has a host:port endpoint, and from there it works like any other network device. Here is a typical conversation with your assistant:
"Connect my cloud phones 203.0.113.10:5555 and 203.0.113.11:5555." The assistant calls
connect_devices."Which devices are online, and do any have less than 1 GB free?" The assistant calls
list_devicesand thendevice_health."Install /home/me/builds/app-release.apk on all of them." The assistant calls
install_apk_on_deviceswithall_devices: true.With
--allow-shellon: "Open com.example.app on the cloud phones." The assistant callsrun_shell_on_deviceswithmonkey -p com.example.app -c android.intent.category.LAUNCHER 1.
The addresses above are documentation examples, so replace them with the endpoints shown for your devices. The same steps work with any ADB-over-TCP device or provider.
Development
npm install
npm test # node:test with an in-memory MCP client and a mocked adb (no devices needed)License
MIT © Foxphone LLC. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Cloud Android phones for AI agents: create a phone, read the screen, tap, type, install APKs, park.
Disposable cloud Android emulators for coding agents: run an APK or PR build, tap, type, screenshot.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables LLMs to control and manage Android devices via ADB, including app installation, UI interaction, and device monitoring.3512GPL 3.0
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with Android devices and emulators via ADB, providing tools for screenshots, UI inspection, touch and text input, app management, and device control.4259 npm20MIT
- AlicenseAqualityDmaintenanceEnables AI models to control Android devices via ADB through natural language commands, supporting screen analysis and automated actions.315 npmMIT
- AlicenseBqualityCmaintenanceEnables AI agents to control Android TV/Android devices through ADB, including screen capture, remote control, app management, and more.241 npm1MIT