MCP Server for Android Debug Bridge (ADB), enabling Claude to interact with Android devices.
-
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)
-
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
# Clone the repository
git clone [repository-url]
cd mcp-server-adb
# Install dependencies
npm install
# Build the project
npm run build
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.
This project is licensed under the MIT License - see the LICENSE file for details.