Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Let AI agents see and control an Android phone over ADB, with safety guards.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ADB_SERIAL, ALLOW_SHELL, ALLOW_SENSITIVE, SENSITIVE_PACKAGES, RATE_LIMIT_PER_MIN, ADB_PATHYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"android-use": {
"command": "npx",
"args": [
"-y",
"@ghostfacemodz/android-use"
],
"env": {
"ADB_SERIAL": "your-value",
"ALLOW_SHELL": "your-value",
"ALLOW_SENSITIVE": "your-value",
"SENSITIVE_PACKAGES": "your-value",
"RATE_LIMIT_PER_MIN": "your-value",
"ADB_PATH": "your-value"
}
}
}
}Run this in your terminal
claude mcp add android-use --env ADB_SERIAL=your-value --env ALLOW_SHELL=your-value --env ALLOW_SENSITIVE=your-value --env SENSITIVE_PACKAGES=your-value --env RATE_LIMIT_PER_MIN=your-value --env ADB_PATH=your-value -- npx -y @ghostfacemodz/android-useFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"android-use": {
"command": "npx",
"args": [
"-y",
"@ghostfacemodz/android-use"
],
"env": {
"ADB_SERIAL": "your-value",
"ALLOW_SHELL": "your-value",
"ALLOW_SENSITIVE": "your-value",
"SENSITIVE_PACKAGES": "your-value",
"RATE_LIMIT_PER_MIN": "your-value",
"ADB_PATH": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"android-use": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ghostfacemodz/android-use"
],
"env": {
"ADB_SERIAL": "your-value",
"ALLOW_SHELL": "your-value",
"ALLOW_SENSITIVE": "your-value",
"SENSITIVE_PACKAGES": "your-value",
"RATE_LIMIT_PER_MIN": "your-value",
"ADB_PATH": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
ADB_SERIAL envALLOW_SHELL envALLOW_SENSITIVE envSENSITIVE_PACKAGES envRATE_LIMIT_PER_MIN envADB_PATH envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account GhostFaceModz, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 17 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Let AI agents see and control an Android phone over ADB, with safety guards built in.
android-use is a Model Context Protocol (MCP) server. Any MCP-capable app (Claude Desktop, Claude Code, Cursor, Hermes Agent and others) can use it to take screenshots, read the on-screen UI, tap, swipe, type, press keys and launch apps on a real Android device. Since v0.3 it can also run as a remote connector: a private https://…/mcp URL you paste into Claude.ai, ChatGPT, Cursor, LibreChat, Open WebUI or LM Studio.
npx -y @ghostfacemodz/android-use # local (stdio) MCP server
npx -y @ghostfacemodz/android-use setup # guided setup as a remote connector (URL + key)
With a computer (Windows, macOS or Linux):
winget install Google.PlatformTools · brew install android-platform-tools · sudo apt install adb). npx -y @ghostfacemodz/android-use setup
It checks adb, finds your phone (and helps you adb pair / adb connect if needed), creates your own secret token, starts the server, and offers to open a public https:// link through a free Cloudflare quick tunnel (it downloads cloudflared for you). It then prints your connector URL, key and copy-paste configs.
npx -y @ghostfacemodz/android-use start --tunnel.With only the phone (no PC, no root): install Termux and run one command. See [docs/PHONE-ONLY.md](docs/PHONE-ONLY.md).
Just want a local MCP server for Claude Desktop / Cursor? Skip setup and use the stdio configs in Add it to your MCP client.
Formerly `android-adb-mcp`. The tools, environment variables and behaviour are unchanged; only the package name, binary name (
android-use) and MCP server name changed.
⚠️ Read [Safety](#safety) before you connect a phone you care about. An AI with this tool can do anything you could do by tapping the screen.
*Not affiliated with, endorsed by, or sponsored by Google, Android or Samsung. "Android" is a trademark of Google LLC.*
android-use is a small TypeScript wrapper around the adb command-line tool. It talks to your MCP client over stdio (default) or Streamable HTTP (--http, setup, start) and has two runtime dependencies (@modelcontextprotocol/sdk and zod).
Example: *"Open YouTube and search for lo-fi beats."*
current_app → com.sec.android.app.launcheropen_app { package: "com.google.android.youtube" }ui_dump → #4 ImageView [clickable] desc="Search" center=980,140 …tap_element { text: "Search" }type_text { text: "lo-fi beats" }, then key_event { key: "enter" }screenshot to check the resultYou talk to your AI assistant normally. It works out the steps and uses android-use to carry them out on your phone: it looks at the screen (ui_dump, screenshot), acts (open_app, tap_element, tap, swipe, type_text, key_event) and checks the result before moving on. The phone needs to be unlocked.
The full guide, with step-by-step walkthroughs, more prompts and limits for each use case, is in [docs/USE-CASES.md](docs/USE-CASES.md).
Put on a video or stream, start music, open navigation, or set an alarm or timer while your hands are busy.
*Real example:* an assistant connected to a phone over Tailscale and Wireless debugging opened a YouTube channel's newest video, then switched to another channel's live stream, all from a chat message while the owner was away from the phone.
Tips: ask for list_apps if you don't know an app's package name. type_text is ASCII-only, so searches with accents or emoji won't type. More detail →
Clear notifications, check for updates, or run the same daily flow, such as collecting a daily reward. Pair it with an AI agent that can run on a schedule (for example a cron job running Claude Code headless) to make it happen every morning.
swipe from the top edge → tap_element "Clear" → key_event homeopen_app → screenshot → tap_element "Collect" → key_event homeLimits: Google Play is on the sensitive-app list by default (it can make purchases), so use Play's own auto-update instead. Scheduled runs fail if the phone has locked. Respect each app's terms of service: many games and apps ban automation and can suspend accounts for it. More detail →
Use mobile-only features, such as TikTok's editor or Instagram Stories, without a third-party scheduler, because the assistant drives the real app.
ui_dump + swipe)Keep a human in the loop: have the assistant stop on the final screen and send a screenshot, and write or approve captions yourself. Emoji can't be typed. Respect platform rules on automated activity; no bulk liking, following or fake engagement. More detail →
If touchscreens are hard for you, you can control the phone by talking or typing to an AI in plain language, and have it read the screen back using ui_dump (on-screen text) and screenshot (images and anything unlabelled).
key_event back, swipe, key_event volume_down)Be realistic: this complements Android's built-in tools such as TalkBack and Voice Access; it doesn't replace them. Those run on the phone, work offline and work on the lock screen. android-use needs a computer, a connection, an AI service and an unlocked phone, and it's slower. More detail →
Fix a relative's settings from anywhere over Tailscale plus ADB debugging: turn the ringer back on, enlarge the text, or find a missing app icon. Set ADB_SERIAL to their phone so nothing else can be touched.
Always with their consent. They grant access by accepting the "Allow USB debugging?" prompt, and they can switch it off at any time by turning off USB/Wireless debugging or disconnecting Tailscale. Leave the sensitive-app guard on. More detail →
In short: anything you could do by tapping the unlocked screen, the AI can do too, within the limits of what ADB allows and the guards below. This is based on the code in src/; the full breakdown has more detail.
| Can | Can't | Off by default |
|---|---|---|
See the screen (screenshot) | Get past the lock screen or bypass your PIN | Raw shell tool (ALLOW_SHELL=1) |
Read the UI as text (ui_dump) | Root the phone or gain system privileges | Banking, payment, messaging and password apps (ALLOW_SENSITIVE=1) |
| Tap, long-press, swipe | Read apps' private data (chats, databases, saved logins) | Device allowlist: off until you set ADB_SERIAL (recommended) |
| Type text (printable ASCII only) | Do anything when USB and Wireless debugging are off | |
| Press keys (home, back, recents, volume, power, enter…) | Type emoji or non-ASCII text | |
| Open apps, list apps, see the foreground app | Hear or speak on phone calls |
What it can't do, in more detail. It can wake the screen but can't unlock it without your PIN, pattern or password. ADB runs as Android's limited shell user, so it can't root the phone or read other apps' private storage; it only sees what's on screen, and screens that apps mark as secure show up black. If USB and Wireless debugging are off, or the phone hasn't authorised your computer, nothing works.
Safety guards that exist in the code:
list_devices. The first entry is used by default.screenshot, ui_dump, tap, tap_element, swipe, long_press, type_text and most keys are refused while a sensitive app is in the foreground, and open_app won't launch one. Blocked by default: Google Wallet, Samsung Wallet/Pay, PayPal, Venmo, Cash App, Zelle, Coinbase, WhatsApp, Telegram, Signal, Google Messages, Samsung Messages, Messenger and Google Play, plus any package whose name contains bank, wallet, pay, finance, crypto, authenticator, messag, signal, keepass, bitwarden or 1password. Add more with SENSITIVE_PACKAGES. Home, back, recents and power always work. It matches package names, so it's a best-effort heuristic: many banking apps need adding by hand.1, the shell tool isn't registered at all. If enabled, it isn't covered by the sensitive-app guard.120 calls per rolling minute).Revoke access instantly: on the phone, turn off Wireless debugging or USB debugging (or unplug). For a full reset, use Developer options → Revoke USB debugging authorisations, disconnect Tailscale, or restart the phone (which ends adb tcpip sessions).
Recommended safe setup:
ADB_SERIAL to jOnly the beginning is shown; read the rest in the repo