
Security News
Lovable’s OJ Rewrites Vite’s Dev Server in Rust as AI Lowers the Cost of Forking Open Source
Lovable’s OJ rewrites Vite’s dev server in Rust, reducing memory use and preview times as AI lowers the cost of open source reimplementation.
@us-all/android-mcp-server
Advanced tools
Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more
Android MCP server — ADB-based device management, UI automation, logcat debugging, emulator control, and more via the Model Context Protocol.
| Feature | Other Android MCPs | This Server |
|---|---|---|
| UI Automation (tap, swipe, screenshot) | ✓ | ✓ |
| UI Hierarchy (accessibility tree) | ✓ | ✓ (compact mode for token efficiency) |
| Logcat filtering & crash log extraction | — | ✓ |
| Emulator lifecycle (AVD start/stop/snapshot) | — | ✓ |
| File management (push/pull) | — | ✓ |
| System info (battery, network, settings) | — | ✓ |
| 2-tier security (write + shell gating) | — | ✓ |
| Pure ADB (no Appium/uiautomator2 dependency) | — | ✓ |
| TypeScript + official MCP SDK | — | ✓ |
npx @us-all/android-mcp-server
docker run --rm \
--device /dev/bus/usb \
-e ANDROID_MCP_ALLOW_WRITE=true \
ghcr.io/us-all/android-mcp-server:latest
git clone <repo>
cd android-mcp-server
pnpm install
pnpm run build
pnpm start
| Variable | Required | Default | Description |
|---|---|---|---|
ANDROID_HOME | No | auto-detect | Android SDK path |
ADB_PATH | No | adb (PATH) | Path to ADB binary |
ANDROID_SERIAL | No | auto (single device) | Target device serial number |
ANDROID_MCP_ALLOW_WRITE | No | false | Enable write operations (install, tap, push, etc.) |
ANDROID_MCP_ALLOW_SHELL | No | false | Enable arbitrary shell command execution |
By default, only read operations are permitted. Write operations (tap, install-app, push-file, etc.) return an error unless ANDROID_MCP_ALLOW_WRITE=true is set. Shell command execution requires a separate ANDROID_MCP_ALLOW_SHELL=true flag for additional security.
Add to your Claude Desktop configuration:
{
"mcpServers": {
"android": {
"command": "npx",
"args": ["@us-all/android-mcp-server"],
"env": {
"ANDROID_MCP_ALLOW_WRITE": "true"
}
}
}
}
Add to your project's .mcp.json:
{
"mcpServers": {
"android": {
"type": "stdio",
"command": "npx",
"args": ["@us-all/android-mcp-server"],
"env": {
"ANDROID_MCP_ALLOW_WRITE": "true",
"ANDROID_MCP_ALLOW_SHELL": "true"
}
}
}
}
Or from a local build:
{
"mcpServers": {
"android": {
"type": "stdio",
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/android-mcp-server",
"env": {
"ANDROID_MCP_ALLOW_WRITE": "true",
"ANDROID_MCP_ALLOW_SHELL": "true"
}
}
}
}
| Tool | Description | R/W |
|---|---|---|
list-devices | List connected devices and emulators with status | R |
get-device-info | Device model, brand, Android version, SDK, display info | R |
get-device-properties | System properties via getprop (filterable by prefix) | R |
connect-device | Connect to device over TCP/IP (wireless ADB) | W |
disconnect-device | Disconnect TCP/IP device | W |
| Tool | Description | R/W |
|---|---|---|
list-packages | List installed packages (filter by name, type: all/system/3rd-party) | R |
get-package-info | Package version, SDK targets, install time, permissions | R |
install-app | Install APK file on device | W |
uninstall-app | Uninstall app (optionally keep data) | W |
launch-app | Launch app by package name (or specific activity) | W |
stop-app | Force stop an app | W |
| Tool | Description | R/W |
|---|---|---|
take-screenshot | Capture screen as PNG image (returned as base64) | R |
dump-ui-hierarchy | Dump accessibility tree — compact mode returns interactive elements only with center coordinates for token efficiency | R |
tap | Tap at (x, y) coordinates | W |
long-press | Long press at (x, y) with configurable duration | W |
swipe | Swipe gesture from (x1,y1) to (x2,y2) | W |
input-text | Type text (special characters escaped) | W |
press-key | Key event: BACK, HOME, ENTER, VOLUME_UP, etc. | W |
| Tool | Description | R/W |
|---|---|---|
get-logcat | Get recent logs with tag and priority filter (V/D/I/W/E/F) | R |
clear-logcat | Clear logcat buffer | W |
search-logcat | Search logs by text pattern (case-insensitive supported) | R |
get-crash-logs | Extract crash/fatal logs, optionally filtered by package | R |
| Tool | Description | R/W |
|---|---|---|
list-avds | List available Android Virtual Devices | R |
start-emulator | Start AVD (supports headless mode, data wipe) | W |
stop-emulator | Stop a running emulator | W |
list-snapshots | List emulator snapshots | R |
load-snapshot | Load an emulator snapshot | W |
| Tool | Description | R/W |
|---|---|---|
list-files | List files on device (supports recursive) | R |
pull-file | Download file from device to local filesystem | R |
push-file | Upload local file to device | W |
delete-file | Delete file or directory on device | W |
| Tool | Description | R/W |
|---|---|---|
get-battery-info | Battery level, charging state, temperature, health | R |
get-network-info | WiFi status, IP address, connectivity details | R |
change-setting | Modify system/secure/global settings | W |
| Tool | Description | R/W |
|---|---|---|
execute-shell | Execute arbitrary ADB shell command (requires ANDROID_MCP_ALLOW_SHELL) | W |
┌──────────────────────────────────────────────────────┐
│ Claude / AI Client │
└─────────────────────┬────────────────────────────────┘
│ MCP Protocol (stdio)
▼
┌──────────────────────────────────────────────────────┐
│ android-mcp-server (index.ts) │
│ │
│ ┌─────────┐ ┌──────────────────────────────────┐ │
│ │config.ts│ │ tools/ │ │
│ │ ADB path│ │ device.ts ── 5 tools │ │
│ │ serial │ │ apps.ts ── 6 tools │ │
│ │ perms │ │ ui.ts ── 7 tools │ │
│ └─────────┘ │ logcat.ts ── 4 tools │ │
│ │ emulator.ts── 5 tools │ │
│ ┌─────────┐ │ files.ts ── 4 tools │ │
│ │ adb.ts │ │ system.ts ── 3 tools │ │
│ │ wrapper │ │ shell.ts ── 1 tool │ │
│ └─────────┘ │ utils.ts ── error handling │ │
│ └──────────────────────────────────┘ │
└─────────────────────┬────────────────────────────────┘
│ child_process (execFile)
▼
┌──────────────────────────────────────────────────────┐
│ ADB (Android Debug Bridge) │
│ │
│ USB / TCP-IP / Emulator connection │
└─────────────────────┬────────────────────────────────┘
│
▼
Android Device
ANDROID_MCP_ALLOW_WRITE=trueANDROID_MCP_ALLOW_SHELL=truepnpm install # Install dependencies
pnpm run dev # Watch mode (tsc --watch)
pnpm run build # Compile TypeScript → dist/
pnpm test # Run unit tests
pnpm start # Run MCP server
src/tools/<category>.tsserver.tool() in src/index.tswrapToolHandler() for consistent response formattingassertWriteAllowed() for write operationspnpm run build && pnpm testSee CONTRIBUTING.md for development guidelines.
MIT
FAQs
Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more
The npm package @us-all/android-mcp-server receives a total of 0 weekly downloads. As such, @us-all/android-mcp-server popularity was classified as not popular.
We found that @us-all/android-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Lovable’s OJ rewrites Vite’s dev server in Rust, reducing memory use and preview times as AI lowers the cost of open source reimplementation.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.