AVD MCP Server
Automates Android Virtual Device operations by enabling users to start emulators, execute development commands, and capture screenshots. It facilitates Android testing workflows by returning command outputs and visual feedback directly to AI assistants.
README
AVD MCP Server
A Model Context Protocol (MCP) server for Android Virtual Device automation. This tool allows you to start an Android emulator, execute commands, and capture screenshots automatically.
Features
- Automatically starts Android Virtual Device (AVD) if not running
- Executes commands (pnpm, gradle, npm, etc.)
- Captures screenshots from the emulator
- Returns command output and screenshot in base64 format
Prerequisites
- Android SDK with
adbandemulatorin PATH - Node.js 18 or higher
- An Android Virtual Device configured in Android Studio
Installation
Quick Start (Recommended)
No installation needed! Just add to your MCP client config (e.g., Claude Desktop):
json { "mcpServers": { "avd-mcp": { "command": "npx", "args": ["avd-mcp"] } } }
That's it! The package will be automatically downloaded and executed when needed.
Local Development
``bash
Clone the repository
git clone https://github.com/yourusername/avd-mcp.git cd avd-mcp
Install dependencies
pnpm install
Build the project
pnpm build
Test locally
node dist/index.js ``
Usage
Available Tools
avd_run_and_screenshot
Starts an AVD (if not running), executes a command, waits, and captures a screenshot.
Parameters:
avdName(optional): Name of the AVD to start. If omitted and no device is running, will throw an error.command(required): Command to execute (e.g.,pnpm android,gradle assembleDebug)waitMsAfterRun(optional): Milliseconds to wait after command execution before taking screenshot. Default: 2000ms
Returns:
- Command output (stdout/stderr)
- Screenshot in base64 format (PNG)
Example:
typescript { "avdName": "Pixel_5_API_31", "command": "pnpm android", "waitMsAfterRun": 5000 }
How It Works
- Device Check: Checks if an Android device/emulator is already running using
adb devices - Start Emulator: If no device is running and
avdNameis provided, starts the emulator - Execute Command: Runs the specified command using PowerShell
- Wait: Waits for the specified duration to allow UI updates
- Screenshot: Captures a screenshot using
adb screencap - Return: Returns both command output and screenshot
Troubleshooting
AVD not starting
- Verify AVD name matches one configured in Android Studio:
emulator -list-avds - Check that
emulatoris in your system PATH - Ensure virtualization is enabled in BIOS (Intel VT-x or AMD-V)
ADB not found
- Install Android SDK Platform-Tools
- Add Android SDK platform-tools to PATH:
C:\Users\YourUser\AppData\Local\Android\Sdk\platform-tools
Screenshot timeout
- Increase
waitMsAfterRunparameter - Check if device is fully booted:
adb shell getprop sys.boot_completed(should return1)
Publishing to npm
To publish this package to npm:
``bash
Login to npm
npm login
Update version in package.json
npm version patch # or minor, or major
Publish
npm publish ``
After publishing, users can use it directly with npx avd-mcp without cloning!
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details.
Author
Created for automating Android development workflows with AI assistants.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.