Android MCP
Provides tools for interacting with Android devices over ADB, including device selection, UI automation (tap, text input, key events), activity management, screenshots, UI tree dumps, and element finding/tapping capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Android MCPtake a screenshot of my device"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Android MCP ๐คโจ
Friendly MCP stdio server that chats with Android devices over ADB using @devicefarmer/adbkit, speaking newline-delimited JSON-RPC via @modelcontextprotocol/sdk (no Content-Length headers needed). Plug it into Cursor/Claude MCP and start poking at devices.
โจ What is this?
MCP transport that forwards handy ADB actions (tap, text, screenshot, UI dump, etc).
Uses newline-delimited JSON on stdin/stdout; one request per line, one response per line.
Prototype-friendly: swap out the minimal JSON-RPC loop for a full MCP SDK later if you want.
Related MCP server: Android Mobile MCP
๐ฆ Requirements
Node.js 18+ and npm.
ADB on PATH (e.g., Android SDK platform-tools). Keep
adb start-serverrunning.At least one device or emulator attached (
adb devices).Optional: Android SDK/Gradle only if you plan to build the demo app; not needed for the MCP server itself.
๐ Setup (local)
git clone <repo-url> android-mcp
cd android-mcp
npm ci # or npm install
npm test # stdio + tsconfig smoke tests
npm run dev # start MCP server with tsx
# or explicitly:
npx --yes tsx src/server.tsTo build output: npm run build (emits dist/). Keep adb devices happy before invoking tools.
๐งฐ MCP config (Cursor/Claude)
Example ~/.cursor/mcp.json entry:
{
"mcpServers": {
"android-mcp": {
"type": "stdio",
"command": "npx",
"args": ["--yes", "tsx", "/home/ivan/code/android-mcp/src/server.ts"],
"cwd": "/home/ivan/code/android-mcp"
}
}
}๐ฎ Tools exposed
selectDevice{ serial }โ set default device for subsequent calls.keyEvent{ keyCode, serial? }โ sendinput keyevent.tap{ x, y, serial? }text{ text, serial? }โ usesinput text(spaces become%s).startActivity{ component, serial? }โ e.g."org.example/.MainActivity".screenshot{ serial? }โ{ mimeType: "image/png", base64 }.uiDump{ serial? }โ parseduiautomator dumptree (text, contentDesc, resourceId, bounds).findAndTap{ text?, contentDesc?, serial? }โ finds the first matching node and taps its center.listDevicesDetailedโ lists attached devices with model/manufacturer/sdk info.
๐ธ Notes & limits
Screenshot and UI dump are periodic snapshots (no streaming yet).
UI dump depends on
uiautomatorbeing present on the device.Prototype transport; you can wire in a richer MCP SDK without changing the ADB helpers.
๐งช Tests
npm test๐ฑ Optional: Build/install the demo app
Only needed if you want to exercise the sample Android UI:
# from the parent monorepo that contains the Android app
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell am start -n org.dronix.android.kindlegratis/.MainActivity๐ ๏ธ CI hints
Node workflow: checkout โ setup-node 18+ โ
npm ciโnpm test.If building the Android app in CI, add Java 17 + Android SDK setup and run
./gradlew assembleDebug.
This server cannot be deployed
Maintenance
Related MCP Connectors
Control real Android and iOS devices with LLM agents โ tap, swipe, type, automate flows.
Drive real Android & iOS devices and web browsers from natural language for mobile + web QA. 290+ tools across device control, app management, automation sessions, browser automation, and flow recording / replay. Bearer-auth โ get a token at robotactions.com โ Profile โ API Tokens.
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables control of Android devices via ADB for automation and testing. Supports app management, screen capture, UI analysis, and input simulation through natural language commands.9128 npm33MIT
- FlicenseAqualityDmaintenanceEnables AI agents to interact with Android devices through UI manipulation, screen capture, touch gestures, text input, and app management via ADB. Provides comprehensive mobile automation capabilities including element detection, navigation, and application control for Android device testing and interaction.94-
- AlicenseBqualityDmaintenanceEnables control of Android devices via ADB, allowing screenshot capture, touch simulation, and swipe gestures through natural language commands.22130 npm6MIT
- FlicenseNot gradedqualityDmaintenanceEnables control of Android devices through ADB using natural language commands. Supports browser automation, SMS sending, device information retrieval, settings control, and common device actions like screenshots and button presses.3-