Android ADB Controller MCP Server
Overview
This MCP server enables AI agents to control Android devices via ADB commands. It provides tools for:
- Listing connected devices
- Executing screen taps
- (Extensible for more ADB commands)
Setup Guide
Prerequisites
- Android device with USB debugging enabled
- ADB installed and working (
adb devicesshould show your device) - Node.js v16+
Installation Steps
- Create MCP Server:
npx @modelcontextprotocol/create-server android-adb-controller
cd android-adb-controller
- Install Dependencies:
npm install adbkit @types/adbkit
- Configure MCP Settings:
Add to
mcp_settings.json:
{
"mcpServers": {
"android-adb": {
"command": "node",
"args": ["android-adb-controller/build/index.js"]
}
}
}
Implementation Details
Key Components
- ADB Client Initialization:
this.adbClient = adb.createClient();
- Command Execution:
private async executeADBCommand(deviceId: string, command: string) {
const device = this.adbClient.getDevice(deviceId);
return await device.shell(command);
}
- Tool Definitions:
list_devices: Lists connected Android devicestap_screen: Executes screen taps at specified coordinates
Troubleshooting Guide
Common Issues & Solutions
- ADB Command Not Found:
- Ensure ADB is installed and in system PATH
- Verify platform-tools are extracted correctly
- Device Not Detected:
- Check USB debugging is enabled
- Verify USB cable connection
- Run
adb devicesto confirm detection
- TypeScript Errors:
Solution: Added proper type definitions in
adbkit.d.ts:
declare module 'adbkit' {
interface Device {
id: string;
type: string;
}
// ... other type definitions
}
- MCP Server Connection Issues:
- Verify server is running (
node build/index.js) - Check MCP settings configuration
Extending Functionality
To add new commands:
- Define new tool in
ListToolsRequestSchema - Implement handler in
CallToolRequestSchema - Add corresponding ADB command execution
Example for text input:
{
name: "input_text",
description: "Input text on device",
inputSchema: {
type: "object",
properties: {
deviceId: { type: "string" },
text: { type: "string" }
}
}
}
Development Workflow
- Make code changes
- Rebuild:
npm run build
- Restart server:
node build/index.js
Architecture
MCP Server (Node.js) ↔ ADB Interface ↔ Android Device
↑
|
AI Control System
Future Improvements
- Add swipe gestures
- Implement screenshot capability
- Add device monitoring
- Support multiple simultaneous devices
Recommend MCP Servers 💡
mcp-terraform-assistant
An MCP server for managing infrastructure as code with Terraform
Tabby MCP
A Tabby plugin that implements a Model Context Protocol (MCP) server, enabling AI-powered control and automation of the Tabby terminal.
voyp-mcp
Enables AI models to make phone calls and monitor progress via MCP integration with VOYP's calling capabilities
@codesys/mcp-toolkit
An MCP server enabling interaction between MCP clients and CODESYS automation platform
@debugg-ai/debugg-ai-mcp
An AI-driven browser automation and end-to-end test server implementing the Model Context Protocol (MCP), designed to help AI agents test UI changes, simulate user behavior, and analyze visual outputs of running web applications via natural language and CLI tools.
screenMonitorMCP
A REVOLUTIONARY Model Context Protocol (MCP) server! Gives AI real-time vision capabilities and enhanced UI intelligence power. This isn't just screen capture - it gives AI the power to truly "see" and understand your digital world!