@wilsonbeam/openclaw-adb-mcp
MCP server for Android device automation via ADB, enabling screen control, phone functions, app management, and device control.
README
@wilsonbeam/openclaw-adb-mcp
Give AI agents full control of real Android phones.
MCP Server + OpenClaw Skill for Android device automation via ADB.
What Can It Do?
- š± Screen Control ā tap, swipe, type text, take screenshots
- š Phone Functions ā make calls, send SMS, check call state
- š¦ App Management ā install, uninstall, list packages
- š§ Device Control ā shell commands, push/pull files, wake screen
Quick Start
1. Install ADB
# macOS
brew install android-platform-tools
# Linux
sudo apt install adb
# Windows
# Download from developer.android.com/tools/releases/platform-tools
2. Connect Your Android Device
- Enable Developer Options on your phone
- Enable USB Debugging
- Connect via USB cable
- Accept the authorization prompt on your phone
Verify:
adb devices
# Should show: XXXXX device
3. Add to OpenClaw
Add to your ~/.openclaw/config.yaml:
mcp:
servers:
adb:
command: npx
args: ["@wilsonbeam/openclaw-adb-mcp"]
Or install globally first:
npm install -g @wilsonbeam/openclaw-adb-mcp
Then:
mcp:
servers:
adb:
command: openclaw-adb-mcp
4. Install the Skill (Optional but Recommended)
The skill teaches your AI agent how to use the ADB tools effectively.
# From clawhub.com (coming soon)
openclaw skill install adb
# Or manually copy the skill folder
cp -r skill/ ~/.openclaw/skills/adb/
Available Tools (26 total)
Core ADB
| Tool | Description |
|---|---|
adb_list_devices |
List connected Android devices |
adb_shell |
Execute shell command |
adb_device_info |
Get model, brand, Android version |
adb_install_app |
Install APK file |
adb_uninstall_app |
Uninstall app |
adb_list_packages |
List installed packages |
adb_push_file |
Push file to device |
adb_pull_file |
Pull file from device |
adb_start_activity |
Start activity/intent |
adb_force_stop |
Force stop app |
adb_clear_data |
Clear app data |
Screen Control
| Tool | Description |
|---|---|
adb_tap |
Tap at coordinates |
adb_swipe |
Swipe gesture |
adb_long_press |
Long press |
adb_type_text |
Type into focused field |
adb_press_key |
Press Android keycode |
adb_screenshot |
Capture screen (returns base64 PNG) |
adb_screen_size |
Get screen dimensions |
adb_wake |
Wake device screen |
adb_press_home |
Press home button |
adb_press_back |
Press back button |
Phone Functions
| Tool | Description |
|---|---|
adb_make_call |
Make phone call (dials immediately) |
adb_dial_number |
Open dialer with number |
adb_end_call |
End current call |
adb_send_sms |
Open SMS composer |
adb_call_state |
Get call state (idle/ringing/offhook) |
adb_answer_call |
Answer incoming call |
Unlock
| Tool | Description |
|---|---|
adb_unlock |
Unlock with password, PIN, pattern, or swipe |
adb_is_locked |
Check if device is locked |
adb_lock |
Lock the device screen |
Auto-Unlock
The adb_unlock tool supports multiple lock types:
// Password
adb_unlock({ type: "password", credential: "mypassword" })
// PIN
adb_unlock({ type: "pin", credential: "1234" })
// Pattern (3x3 grid, digits 0-8)
// Grid layout:
// 0 1 2
// 3 4 5
// 6 7 8
adb_unlock({ type: "pattern", credential: "0123" }) // Top row
adb_unlock({ type: "pattern", credential: "0147" }) // L-shape
adb_unlock({ type: "pattern", credential: "02468" }) // X pattern
// Swipe only (no security)
adb_unlock({ type: "none" })
Example Conversations
"Take a screenshot of my phone"
ā Agent uses adb_screenshot, returns the image
"Call Mom at +1-555-123-4567"
ā Agent uses adb_make_call
"Open Chrome and search for weather"
ā Agent uses adb_start_activity to launch Chrome, adb_tap on search bar, adb_type_text to enter query
"Install the APK I just downloaded"
ā Agent uses adb_install_app with the APK path
Project Structure
openclaw-adb-mcp/
āāā src/
ā āāā index.ts # MCP server entry point
ā āāā adb/
ā āāā executor.ts # Low-level ADB execution
ā āāā core.ts # Device, app, file operations
ā āāā screen.ts # Tap, swipe, screenshot
ā āāā phone.ts # Call, SMS functions
āāā skill/
ā āāā SKILL.md # OpenClaw skill definition
ā āāā scripts/
ā āāā check-setup.sh
āāā package.json
āāā tsconfig.json
Multiple Devices
All tools accept optional deviceId. If omitted with multiple devices connected, ADB errors. Use adb_list_devices to get device IDs.
Development
git clone https://github.com/wilsonbeam/openclaw-adb-mcp
cd openclaw-adb-mcp
npm install
npm run build
npm run dev # Build and run
Troubleshooting
No devices found
- Check USB cable and connection
- Enable USB debugging on device
- Run
adb kill-server && adb start-server
Device unauthorized
- Accept the RSA key prompt on your phone screen
Screenshot fails
- Wake the screen first with
adb_wake - Some devices need screen unlock
License
MIT
Author
Wilson Beam / OpenClaw
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.