About ADB MCP Server
ADB MCP Server exposes Android Debug Bridge operations for Claude and other MCP clients managing connected Android devices. Its tools cover device and package inspection, app and permission management, file transfer, screenshots, and activity launches.
Key features
- 01List connected devices
- 02Filter installed packages
- 03Install and remove apps
- 04Manage app permissions
- 05Transfer files and capture screenshots
- 06Launch activities and manage ADB
Use cases
- 01Inspect connected devices and installed apps
- 02Install or remove an APK during testing
- 03Capture screenshots and transfer device files
- 04Change app permissions or launch an activity
MCP support
It provides MCP tools that let clients invoke ADB operations on selected Android devices or emulators.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEADB MCP Server
MCP Server for Android Debug Bridge (ADB), enabling Claude to interact with Android devices.
Tools
-
get-devices- List connected Android devices
- Optional inputs:
showDetails(boolean, default: true): Show device details (-l)
- Returns: List of connected devices with their details
-
list-packages- List installed packages on the device
- Optional inputs:
showPath(boolean, default: false): Show the APK file path (-f)showDisabled(boolean, default: false): Show only disabled packages (-d)showEnabled(boolean, default: false): Show only enabled packages (-e)showSystem(boolean, default: false): Show only system packages (-s)showThirdParty(boolean, default: false): Show only third party packages (-3)showInstaller(boolean, default: false): Show package installer (-i)includeUninstalled(boolean, default: false): Include uninstalled packages (-u)
- Returns: List of packages based on specified filters
-
input-text- Input text to the device
- Required inputs:
text(string): Text to input
- Returns: Text input confirmation
-
install-apk- Install an APK file to the device
- Required inputs:
apkPath(string): Path to the APK file
- Optional inputs:
allowReinstall(boolean, default: true): Allow reinstalling (-r)allowTestPackages(boolean, default: true): Allow test packages (-t)allowDowngrade(boolean, default: true): Allow downgrade (-d)grantPermissions(boolean, default: false): Grant all permissions (-g)
- Returns: Installation result
-
uninstall-apk- Uninstall an application
- Required inputs:
packageName(string): Package name to uninstall
- Optional inputs:
keepData(boolean, default: false): Keep app data and cache (-k)
- Returns: Uninstallation result
-
clear-app-data- Clear application data
- Required inputs:
packageName(string): Package name to clear data
- Returns: Operation result
-
pull- Pull a file from device
- Required inputs:
remotePath(string): Path to file on device
- Optional inputs:
localPath(string): Local destination path
- Returns: File transfer result
-
push- Push a file to device
- Required inputs:
localPath(string): Path to local fileremotePath(string): Destination path on device
- Returns: File transfer result
-
screencap- Take a screenshot
- Required inputs:
remotePath(string): Path on device where to save the screenshot (e.g., /sdcard/screenshot.png)
- Optional inputs:
usePng(boolean, default: true): Save as PNG (-p)
- Returns: Screenshot capture result
-
rm- Remove a file from the Android device
- Required inputs:
path(string): Path to the file on device to remove
- Optional inputs:
force(boolean, default: false): Force removal (-f)recursive(boolean, default: false): Recursive removal (-r)
- Returns: File removal result
-
reset-permissions- Reset all permissions for an app
- Required inputs:
packageName(string): Target package name
- Returns: Permission reset result
-
grant-permission- Grant a specific permission
- Required inputs:
packageName(string): Target package namepermission(string): Permission to grant
- Returns: Permission grant result
-
revoke-permission- Revoke a specific permission
- Required inputs:
packageName(string): Target package namepermission(string): Permission to revoke
- Returns: Permission revocation result
-
start-activity- Start an activity using am start
- Optional inputs:
component(string): Component nameaction(string): Intent actiondata(string): Intent data URImimeType(string): MIME typecategory(string[]): Intent categoriesextras(array): Intent extrasflags(string[]): Intent flagswaitForLaunch(boolean, default: false): Wait for launch (-W)debuggable(boolean, default: false): Debug mode (-D)stopApp(boolean, default: false): Force stop app (-S)
- Returns: Activity start result
-
kill-server- Kill the ADB server process
- No inputs required
- Returns: Success message or error
-
start-server- Start the ADB server process
- No inputs required
- Returns: Success message or error
-
help- Show ADB help information
- No inputs required
- Returns: ADB help text
All tools support these device selection parameters:
deviceId(string, optional): Target specific device by IDuseUsb(boolean, default: false): Target USB device (-d)useEmulator(boolean, default: false): Target emulator (-e)
Setup
-
Install ADB:
- Download Android SDK Platform Tools
- Add ADB to your system PATH
- Verify installation with
adb version
-
Enable USB Debugging:
- On Android device, go to Settings > About phone
- Tap Build number 7 times to enable Developer options
- Enable USB debugging in Developer options
Install the Server
# Clone the repository
git clone [repository-url]
cd mcp-server-adb
# Install dependencies
npm install
# Build the project
npm run build
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"adb": {
"command": "node",
"args": [
"-y",
"/path/to/mcp-server-adb/build/index.js",
"/path/to/adb"
]
}
}
}
Replace /path/to/adb with the actual path to your ADB executable.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.