About Android MCP
Android MCP is an MCP server published by hamen in the Developer Tools category: mCP server: Android MCP.
The repository has 8 stars and 1 forks, with the last commit 10 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/hamen/android-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Android MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
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.
📦 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.ts
To 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.
README fetched from the repository 7 days ago. The original is authoritative.