LABSCO SUMMARY
Screenshot plus gestures — enough to close the loop.
Capture, tap and swipe together are what let an assistant work a screen rather than just describe one: it can see the current state, act, and look again. Coordinates are raw, so it is at its best on an emulator you can reset, which is exactly the target here.
What it is
A server that gives an assistant control of an Android emulator through ADB, including MuMu Emulator instances. It covers device discovery, app lifecycle and the input gestures needed to actually operate a screen.
What you get
- List the devices connected through MuMu Emulator or ADB
- Reload the ADB server, and open a TCP port for connecting to one
- List every package name installed on a device
- Open and stop an app by package name
- Tap at a coordinate and swipe between coordinates
- Capture the device screen
Requirements
uv, and a running emulator reachable over ADB. Install with uv pip install -r pyproject.toml, then point your client at main.py in src. No account and no key — the access it needs is to the emulator on your machine. Version 0.1.0.
Setup effort
Build from source — git clone https://github.com/Teemo4621/MCP-Emulator-Controller
USE CASES
01
Walking through an app flow without touching the mouse
Open the app by package name, then tap and swipe through the screens.
02
Seeing what the emulator is showing
Capture the screen and let the assistant read the current state before it acts.
03
Getting a stuck emulator connection back
List devices, reload the ADB server, and open the TCP port again.
BEFORE YOU INSTALL
What to know first
Requires
- Windows (the server uses its bundled adb.exe)
- uv
- Python 3.12+
- An Android emulator (MuMu or any ADB device) running
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
TERMINAL
git clone https://github.com/Teemo4621/MCP-Emulator-Controller
cd MCP-Emulator-Controller
uv venv
uv pip install -r pyproject.tomlMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"MCPEmulatorController": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_MCP_EMULATOR_CONTROLLER>\\src",
"run",
"main.py"
]
}
}
}<YOUR_PATH_TO_MCP_EMULATOR_CONTROLLER> is the folder the git clone created, with \src kept at the end. The server drives the adb.exe bundled in src\libs, so it runs on Windows, with the emulator already started.