by jduartedj
Control Android devices via ADB with natural-language commands — capture screenshots, simulate touches and swipes for fa
Controls Android devices through ADB to capture screenshots, simulate touch interactions, and stream video. Provides 22 tools for comprehensive Android UI automation via natural language commands.
Android MCP Server is a community-built MCP server published by jduartedj that provides AI assistants with tools and capabilities via the Model Context Protocol. Control Android devices via ADB with natural-language commands — capture screenshots, simulate touches and swipes for fa It is categorized under developer tools.
You can install Android MCP Server in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Android MCP Server is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
We wired Android MCP Server into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Strong directory entry: Android MCP Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
Strong directory entry: Android MCP Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
We wired Android MCP Server into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Android MCP Server has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
According to our notes, Android MCP Server benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
I recommend Android MCP Server for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Android MCP Server is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
I recommend Android MCP Server for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Android MCP Server is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
showing 1-10 of 72
A Model Context Protocol (MCP) server providing comprehensive Android device control with 22 powerful tools for UI automation, screen capture, and ultra-fast H.264 streaming via Scrcpy.
Note: ADB (Android Debug Bridge) and Scrcpy are optional - the server automatically downloads them from official sources on first use if needed.
Clone and Build
git clone https://github.com/jduartedj/android-mcp-server.git
cd android-mcp-server
npm install
npm run build
Test the Server
node dist/index.js
The server will start and automatically download ADB/Scrcpy if needed.
Add to VS Code (see VS Code Integration below)
npm install
npm run build
node dist/index.js
The server supports the following environment variables:
ADB_PATH: Custom path to ADB executable (default: uses system PATH or auto-downloads)DEVICE_SERIAL: Specific device serial number to target (default: first available device)To use this MCP server with GitHub Copilot in VS Code:
Open VS Code Settings (Ctrl+, or Cmd+,)
Search for MCP or navigate to: GitHub Copilot > Chat > MCP Servers
Edit the MCP configuration by clicking "Edit in settings.json"
Add the Android MCP Server to your configuration:
{
"github.copilot.chat.mcp.servers": {
"android-mcp-server": {
"command": "node",
"args": ["F:\android-mcp-server\dist\index.js"],
"env": {
"ADB_PATH": "",
"DEVICE_SERIAL": ""
}
}
}
}
Note: Replace F:\android-mcp-server\dist\index.js with the actual absolute path to your dist/index.js file. Use double backslashes on Windows.
{
"github.copilot.chat.mcp.servers": {
"android-mcp-server": {
"command": "npx",
"args": ["-y", "android-mcp-server"]
}
}
}
After adding the server:
@workspace and you should see the Android MCP tools availableOnce integrated, you can ask GitHub Copilot:
android_screenshotCapture a screenshot from the Android device.
Parameters:
outputPath (optional): Local path to save the screenshot. If not provided, returns base64 encoded image.deviceSerial (optional): Target specific device by serial numberPerformance: ~1-2 seconds per capture
Example:
{
"name": "android_screenshot",
"arguments": {
"outputPath": "./screenshot.png"
}
}
android_touchSimulate a touch event at specific screen coordinates. Supports both quick taps and long presses.
Parameters:
x (required): X coordinatey (required): Y coordinateduration (optional): Touch duration in milliseconds (default: 100ms for tap, >100ms for long press)deviceSerial (optional): Target specific device by serial numberPerformance: Immediate
Example - Quick Tap:
{
"name": "android_touch",
"arguments": { "x": 500, "y": 1000, "duration": 100 }
}
Example - Long Press:
{
"name": "android_touch",
"arguments": { "x": 500, "y": 1000, "duration": 2000 }
}
android_swipePerform a swipe gesture between two coordinates.
Parameters:
startX (required): Starting X coordinatestartY (required): Starting Y coordinateendX (required): Ending X coordinateendY (required): Ending Y coordinateduration (optional): Swipe duration in milliseconds (default: 300)deviceSerial (optional): Target specific device by serial numberPerformance: Immediate
Example:
{
"name": "android_swipe",
"arguments": {
"startX": 500, "startY": 1500, "endX": 500, "endY": 500, "duration": 300
}
}
android_launch_appLaunch an Android app by package name.
Parameters:
packageName (required): Package name of the app (e.g., com.example.app, com.google.android.apps.maps)deviceSerial (optional): Target specific device by serial numberPerformance: ~1-2 seconds
Example:
{
"name": "android_launch_app",
"arguments": { "packageName": "com.example.app" }
}
android_list_packagesList installed packages on the Android device with optional filtering.
Parameters:
filter (optional): Search filter for package names (case-insensitive)deviceSerial (optional): Target specific device by serial numberPerformance: Medium (retrieves full package list)
Example - List All Packages:
{
"name": "android_list_packages",
"arguments": {}
}
Example - Filter Packages:
{
"name": "android_list_packages",
"arguments": { "filter": "google" }
}
android_input_textInput text into the currently focused field on the Android device via ADB.
Parameters:
text (required): Text to input. Spaces are automatically handled.deviceSerial (optional): Target specific device by serial numberPerformance: Immediate
Use Cases:
Example:
{
"name": "android_input_text",
"arguments": {
"text": "[email protected]"
}
}
android_send_key_eventSend a key event to the Android device (e.g., HOME, BACK, ENTER).
Parameters:
keyCode (required): Key event code. Can be key name (e.g., KEYEVENT_HOME, KEYEVENT_BACK) or numeric code (e.g., 3 for HOME, 4 for BACK)deviceSerial (optional): Target specific device by serial numberPerformance: Immediate
Common Key Codes:
KEYEVENT_HOME or 3 - Home buttonKEYEVENT_BACK or 4 - Back buttonKEYEVENT_ENTER or 66 - Enter/Return keyKEYEVENT_DEL or 67 - Delete keyKEYEVENT_MENU or 82 - Menu buttonKEYEVENT_VOLUME_UP or 24 - Volume upKEYEVENT_VOLUME_DOWN or 25 - Volume downKEYEVENT_POWER or 26 - Power buttonUse Cases:
Example:
{
"name": "android_send_key_event",
"arguments": {
"keyCode": "KEYEVENT_BACK"
}
}
android_execute_commandExecute a generic ADB command with custom arguments. This powerful tool gives agents full flexibility to run any ADB command with their own parameters.
Parameters:
args (required): Array of ADB command arguments (e.g., ["shell", "pm", "list", "packages"])deviceSerial (optional): Target specific device by serial numberPerformance: Varies by command
Returns: Both stdout and stderr from the command execution
Use Cases:
Common Examples:
**
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.