Android MCP Server
Click on "Install 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 MCP Serveropen the Settings app"
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 Server
AI-powered Android device automation via MCP (Model Context Protocol).
Control an Android phone with natural language β through Claude Desktop, Cherry Studio, Kai 9000, or the built-in Web GUI with AI chat.
ποΈ Architecture
flowchart LR
A["π€ MCP Client<br/>Claude / Kai 9000 / Cherry"]
B["π Python Server<br/>FastMCP + Web GUI :8080"]
C["π± Android Device<br/>Shizuku App :18080"]
A <-->|"SSE / stdio / HTTP<br/>:9000"| B
B <-->|"JSON-RPC<br/>ADB tunnel"| C
B -.->|"Vision API"| D["π§ AI Vision<br/>Claude / GPT-4o"]
C -.->|"UID 2000"| E["β‘ System APIs<br/>Shell / Input / Files"]Layer | Role | Key Tech |
π€ MCP Client | AI assistant connects via MCP | Claude Desktop, Kai 9000, Cherry Studio |
π Python Server | Tool registry, Web GUI, AI chat agent | FastMCP + FastAPI + WebSocket |
π± Android App | System-level execution on device | Shizuku (UID 2000), HTTP JSON-RPC |
π‘ The server can run on the phone itself (Termux / Kai 9000). Set
ANDROID_HOST=127.0.0.1β no ADB needed.
Related MCP server: scrcpy-mcp
β¨ Features
Device Control (29 MCP Tools)
Category | Tools |
Device |
|
Shell |
|
Input |
|
Apps |
|
Screen |
|
Files |
|
System |
|
Vision |
|
AI Vision
AI-powered screen element recognition via Claude Vision / GPT-4o / custom API
Natural language β pixel coordinates β automated click
Example:
find_element("the login button")β{center_x: 540, center_y: 960, confidence: 0.95}
Web Dashboard
AI Chat β control the phone by typing "open settings" or "click the search icon"
Live Screen β 10fps WebSocket stream with click-to-touch
scrcpy β native low-latency mirroring (one-click launch)
Setup Wizard β guided 5-step setup with auto-detection + MCP SSE endpoint display
Settings Panel β configure API providers + ADB device manager with .env sync
δΈ/English β full i18n support
Shell Terminal β live ADB shell in the browser
MCP Clients
Connect any MCP-compatible client to the server:
Client | Transport | Endpoint | Platform |
Kai 9000 | Streamable HTTP |
| Android (F-Droid) |
Cherry Studio | Streamable HTTP |
| Windows / macOS / Linux |
Claude Desktop | SSE / stdio |
| Windows / macOS / Linux |
Termux + curl | SSE |
| Android (Termux) |
Cherry Studio config: Set MCP type to
streamableHttp, URLhttp://<lan_ip>:9000/mcp. Or importcherry-studio-mcp.jsonfrom the project root.
MCP Transport
Mode | Endpoint | Use Case |
| (local pipe) | Claude Desktop local integration |
SSE |
| Claude Desktop remote, web frontends |
Streamable HTTP |
| Kai 9000, modern MCP clients |
Combined (default) | both on | SSE + Streamable HTTP simultaneously |
π Links
Resource | URL |
GitHub | |
Issues | |
README δΈζ |
π Quick Start
Prerequisites
Python 3.10+
Android device with Shizuku installed
ADB (Android SDK Platform Tools)
scrcpy (optional, for native mirroring)
1. Install
git clone https://github.com/shuao-pro/android-mcp.git
cd android-mcp
pip install -e .2. Setup
# First-time setup (configures .env)
bash scripts/setup.shOr manually:
cp .env.example .envInstall the Android APK to your phone:
# Pre-built APK (recommended) ι₯?from the android/ project
adb install "android/app/build/outputs/apk/debug/app-debug.apk"
# Or build from source
cd android && .\gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk3. On Your Phone
Start Shizuku (grant root or wireless debugging permission)
Open Android MCP app β grant Shizuku permission β tap Start
Notification shows "MCP service running" on port 18080
4. Start Server
# One-click (SSE + Web GUI + ADB forward)
./start.sh
# Windows
start.batOpens browser at http://127.0.0.1:8080.
5. Connect MCP Client
In the Web GUI, open Menu β Setup to see your MCP addresses:
Client | Endpoint |
Kai 9000 (phone) |
|
Claude Desktop (remote) |
|
Same device (Termux) |
|
Add the address in Kai 9000 (Settings β MCP Servers β Add) or Claude Desktop:
{
"mcpServers": {
"android": {
"command": "python",
"args": ["-m", "android_mcp.main", "--mode", "mcp"]
}
}
}Now chat with the AI to control your phone β "open settings", "take a screenshot", "click the search button".
βοΈ Configuration
Edit .env:
# Device connection
ANDROID_HOST=127.0.0.1
ANDROID_PORT=18080
# Web GUI
WEB_HOST=127.0.0.1
WEB_PORT=8080
# MCP Server (SSE + Streamable HTTP) β for Kai 9000 & other clients
# Use 0.0.0.0 to accept WiFi/phone connections; 127.0.0.1 for local-only
MCP_HOST=0.0.0.0
MCP_PORT=9000
# AI Vision (optional β enables AI chat + element recognition)
VISION_PROVIDER=anthropic # anthropic | openai | custom
VISION_API_KEY=sk-ant-api03-xxxxx
VISION_MODEL= # leave empty for default
VISION_API_BASE= # only for custom providerπ₯οΈ CLI Commands
# Start modes
python -m android_mcp.main --mode all-sse # SSE + Streamable HTTP + Web GUI (default)
python -m android_mcp.main --mode mcp # stdio only (Claude Desktop)
python -m android_mcp.main --mode mcp-sse # SSE + Streamable HTTP (headless)
python -m android_mcp.main --mode mcp-http # Streamable HTTP only
python -m android_mcp.main --mode web # Web GUI only
# Process management
python -m android_mcp.gateway start # Start as daemon
python -m android_mcp.gateway status # Check status
python -m android_mcp.gateway stop # Stop daemon
python -m android_mcp.gateway forward # Set up ADB port forwardπ Project Structure
android-mcp/
βββ android_mcp/
β βββ server.py # FastMCP server definition
β βββ main.py # Entry point
β βββ config.py # Environment config
β βββ bridge.py # HTTP bridge to Android
β βββ gateway.py # CLI process manager
β βββ tools/ # MCP tool implementations (by domain)
β β βββ device.py # Health, info, screenshot
β β βββ input.py # Touch, swipe, keys
β β βββ apps.py # Package management
β β βββ system.py # Shell, settings, clipboard
β β βββ files.py # File read/write
β β βββ vision.py # AI element recognition
β βββ vision/ # Vision model clients
β β βββ models.py # Data classes + Protocol
β β βββ clients.py # Anthropic + OpenAI clients
β β βββ prompts.py # Prompt builder + parser
β βββ web/ # Web GUI
β βββ server.py # FastAPI + WebSocket
β βββ chat_agent.py # AI chat β tool execution
β βββ scrcpy_bridge.py # scrcpy + frame streaming
β βββ static/ # HTML/CSS/JS frontend
βββ android/ # Android APK project
β βββ app/src/main/
β β βββ java/com/example/androidmcp/
β β β βββ App.kt # Application class
β β β βββ MainActivity.kt # Main UI + Shizuku auth
β β β βββ McpService.kt # Foreground service
β β β βββ api/
β β β β βββ FileApi.kt # File read/write/delete
β β β β βββ InputApi.kt # Touch, swipe, key events
β β β β βββ PackageApi.kt # App install/uninstall
β β β β βββ ShellApi.kt # Shell command execution
β β β β βββ SystemApi.kt # Screenshot, clipboard, settings
β β β βββ server/
β β β β βββ HttpServer.kt # Embedded HTTP server (:18080)
β β β β βββ Router.kt # JSON-RPC method dispatch
β β β βββ util/
β β β βββ ShizukuHelper.kt # Shizuku binder wrapper
β β βββ res/ # Layout, drawable, strings
β βββ gradle/ # Gradle wrapper
β βββ build.gradle.kts
β βββ settings.gradle.kts
βββ scripts/setup.sh # First-time setup
βββ start.sh # One-click start
βββ start.bat # Windows launcher
βββ pyproject.toml
βββ .env.exampleπ Requirements
Component | Requirement |
Python | 3.10+ |
Android | 11+ (API 30+) |
Android App | Shizuku installed and running |
ADB | Platform Tools (for port forward) |
scrcpy | Optional (native mirroring) |
AI Vision | Anthropic/OpenAI API key (optional) |
MCP Client | Kai 9000 (F-Droid), Claude Desktop, or any SSE/stdio MCP client |
π License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityCmaintenanceA MCP server that enables AI assistants to control Android devices via ADB, supporting device info, screen control, input simulation, app management, shell execution, file transfer, and UI parsing.Last updated20
- AlicenseAqualityBmaintenanceMCP server that gives AI agents full vision and control over Android devices via ADB and scrcpy. Supports screenshots, input, apps, UI automation, shell, files, and clipboard.Last updated3822759MIT
- Alicense-qualityAmaintenanceAn MCP server that provides tools for controlling Android devices using uiautomator2, enabling AI to automate tasks like tapping, swiping, and managing apps.Last updated33Apache 2.0
- Alicense-qualityBmaintenanceEnables AI agents to control Android phones via MCP and HTTP. Supports screen capture, taps, swipes, text input, and app management.Last updatedAGPL 3.0
Related MCP Connectors
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shuao-pro/android-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server