MCP server giving AI agents eyes and hands inside Android devices via ADB
Project description
Agent Droid Bridge
A FastMCP server that gives AI agents programmatic control over Android devices and emulators via ADB.
Demo
Video demo coming soon. See the full walkthrough on YouTube.
Install
uvx agent-droid-bridge
No cloning or virtual environments needed. Requires Python 3.11+ and ADB installed on your host.
What it does
- Exposes 11 MCP tools covering screen interaction, UI inspection, text input, and arbitrary ADB commands
- Auto-detects the connected device when only one is present; presents a device list and requires the user to choose when multiple are connected
- Parses all commands safely via
shlex— no shell injection possible - Runs over stdio, making it compatible with any MCP-capable AI client
Quick start
- Install ADB — see docs/setup.md for platform-specific instructions
- Connect an Android device or start an emulator
- Add the server to your MCP client config:
{
"mcpServers": {
"agent-droid-bridge": {
"command": "uvx",
"args": ["agent-droid-bridge"],
"env": {
"ADB_EXECUTION_MODE": "unrestricted",
"ADB_ALLOW_SHELL": "true"
}
}
}
}
- Prompt your agent to use the
agent-droid-bridgeMCP tools
Full setup guide: docs/setup.md
Tools
| Tool | What it does |
|---|---|
get_ui_hierarchy |
Returns the current screen as an XML UI hierarchy |
take_screenshot |
Captures the screen as a base64-encoded PNG |
tap_screen |
Sends a tap gesture at pixel coordinates |
swipe_screen |
Sends a swipe gesture between two points over a given duration |
type_text |
Types text into the focused input field |
press_key |
Sends an Android keycode event (Back, Home, Enter, etc.) |
launch_app |
Launches an app by its package/activity component name |
execute_adb_command |
Runs an arbitrary ADB or ADB shell command |
list_devices |
Lists all Android devices currently visible to ADB with their serial, state, and model |
snapshot_ui |
Takes a lightweight UI snapshot and returns a token for use with detect_ui_change |
detect_ui_change |
Polls for a UI change after an action; accepts a snapshot token as baseline; returns hierarchy only when requested |
Full parameter reference: docs/tools.md
Documentation
| File | Description |
|---|---|
| docs/setup.md | Prerequisites, installation, and MCP client configuration |
| docs/tools.md | Full parameter reference for all 11 tools |
| docs/configuration.md | Reference for adb_config.yaml and environment variables |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_droid_bridge-0.1.0.tar.gz.
File metadata
- Download URL: agent_droid_bridge-0.1.0.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22dfc481337219e2c794e0cc139ef4b0d8aa55c66e5b6da00ecc429c1df0fa08
|
|
| MD5 |
bee148da2112fe98b472077bca18ecd6
|
|
| BLAKE2b-256 |
9edde9f21ae4fb7e67344a9acc0a11ac1b7d4d21fbded218fe4070db0c4601f7
|
File details
Details for the file agent_droid_bridge-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agent_droid_bridge-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
455c9ecd1028e6a43a778a7bd4630a841d69da2d18b065be1d2983fea643e72a
|
|
| MD5 |
11e69c9695472240e1e4ea26bf3d3ad2
|
|
| BLAKE2b-256 |
845a04c2bba404167b78a26e2d6d7711d72a02f7643220f6eaa14d21eaa991ac
|