Install
$ agentstack add mcp-devbysatyam-mcp-memu Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
โ Flagged1 finding(s); flagged for manual review. ยท v0.1.0 How review works โ
- โข Prompt-injection patterns
- โข Secret / credential exfiltration
- โข Dangerous shell & filesystem operations
- โข Untrusted network calls
- โข Known-malicious package signatures
- high Destructive filesystem operation.
What it can access
- โ Network access No
- โ Filesystem access No
- โ Shell / process execution No
- โ Environment & secrets No
- โ Dynamic code execution No
From automated source analysis of v0.1.0. โUsedโ means the capability is present in the source โ more access means more to trust, not that itโs unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work โAbout
MCP-MEmu AI-Powered Android Emulator Control via Model Context Protocol by Devbysatyam @ Avion
Features โข Quick Start โข Use Cases โข Tools โข Prompts โข Security โข Architecture
๐ What is MCP-MEmu?
MCP-MEmu is a Model Context Protocol (MCP) server that gives AI agents complete control over MEmu Android Emulator. It wraps the MEMUC CLI through PyMEMUC and exposes 69 tools, 8 resources, and 7 prompt templates for seamless AI-driven Android automation.
Connect it to Claude Desktop, Antigravity, Cursor, or any MCP-compatible client โ and your AI can boot VMs, install apps, automate UI, take screenshots, spoof GPS, transfer files, and much more.
โจ Features
๐ฎ 69 Automation Tools
| Category | Count | Highlights | |---|:---:|---| | ๐ Lifecycle | 15 | Create, clone, start, stop, reboot, delete, export/import VMs | | โ๏ธ Configuration | 8 | CPU, RAM, resolution, GPS, IMEI, device fingerprint randomization | | ๐ฑ App Management | 7 | Install APK, launch, stop, uninstall, clear data, list packages | | ๐ UI Interaction | 14 | Tap, swipe, long press, text input, keys, scroll, rotate, zoom, shake | | ๐ธ Screenshot | 3 | Save to file, base64 for AI vision, get screen dimensions | | ๐ Network & Sensors | 6 | Connect/disconnect, GPS spoofing, accelerometer, public IP | | ๐ป Shell & Advanced | 8 | Shell commands, ADB passthrough, file push/pull, clipboard | | ๐ Compound | 8 | Boot & ready, fresh start app, batch install, monkey test, snapshots |
๐ 8 MCP Resources (LLM Context)
| Resource | Description | |---|---| | memu://guide | Comprehensive getting started guide with anti-hallucination rules | | memu://tools | Complete tool reference with all args and descriptions | | memu://workflows | Step-by-step automation recipes | | memu://config-keys | All VM configuration keys with valid values | | memu://vms | Live VM list with status (dynamic) | | memu://vm/{index}/status | Individual VM status (dynamic) | | memu://security | Security model documentation |
๐ก 7 Prompt Templates (Guided Workflows)
| Prompt | Description | |---|---| | automate_app_testing | Full app testing workflow with screenshot-first rules | | setup_new_vm | Create โ configure โ boot from scratch | | ui_automation_guide | Screen coordinate system, swipe directions, input reference | | batch_device_farm | Set up multiple VMs with diverse configs | | debug_vm_issues | Diagnostic flowchart with error โ fix mapping | | gps_spoofing_guide | 10 city presets with verification steps | | file_transfer_guide | Push/pull files with VM path reference |
๐ก๏ธ Security
- Protected VM Registry โ Pre-existing VMs cannot be deleted/stopped/renamed
- Input Validation โ VM index validation, dangerous command blocklist
- Audit Logging โ All destructive operations logged with timestamps
- Command Blocklist โ Blocks
rm -rf /,mkfs,dd,reboot,shutdown,format,wipe
๐ Quick Start
Prerequisites
| Requirement | Details | |---|---| | OS | Windows 10/11 | | MEmu Player | Download (installed & working) | | Python | 3.10 or higher | | uv | Install โ Python package manager | | Admin Privileges | Required by MEMUC CLI |
Installation
# Clone the repository
git clone https://github.com/devbysatyam/mcp-memu.git
cd mcp-memu
# Install dependencies
uv sync
Run the Server
# Start the MCP server (stdio transport)
python server.py
# Or test with MCP Inspector (opens browser UI)
mcp dev server.py
Connect to Claude Desktop
Add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"memu": {
"command": "uv",
"args": ["run", "--directory", "C:\\path\\to\\mcp-memu", "python", "server.py"]
}
}
}
Connect to Antigravity / Gemini
Add to your MCP server settings:
{
"memu": {
"command": "uv",
"args": ["run", "--directory", "C:\\path\\to\\mcp-memu", "python", "server.py"]
}
}
๐ Use Cases
1. ๐ฑ Automated App Testing
> "Install my APK, launch it, go through the onboarding flow, and take screenshots at each step."
The AI agent will:
- Boot the VM and wait for Android to fully load
- Install your APK via
install_apk - Launch the app and take a screenshot to see the screen
- Navigate through UI using
tap,swipe,input_text - Capture screenshots at each step for visual verification
Tools used: boot_and_ready โ install_apk โ launch_app โ screenshot_base64 โ tap โ input_text โ take_screenshot
2. ๐ GPS-Based Testing
> "Set the location to San Francisco and check if the app shows nearby restaurants."
Tools used: set_gps_location(lat=37.7749, lng=-122.4194) โ launch_app โ screenshot_base64
3. ๐ญ Device Farm Setup
> "Create 3 VMs with different resolutions and device fingerprints for compatibility testing."
The AI agent will:
- Create 3 new Android 9 VMs
- Configure each with different CPU, RAM, resolution
- Randomize device fingerprints so each looks unique
- Boot all VMs and verify they're working
Tools used: create_vm (x3) โ set_vm_cpu โ set_vm_memory โ set_vm_resolution โ randomize_vm_device โ boot_and_ready
4. ๐ CI/CD Integration
> "Run a monkey test on the app and capture the results."
Tools used: boot_and_ready โ install_apk โ run_monkey_test โ take_screenshot โ pull_file (logs)
5. ๐ Clipboard & File Transfer
> "Push a config file to the VM, read back the app's output log."
Tools used: push_file โ launch_app โ pull_file โ set_clipboard โ get_clipboard
6. ๐ง VM Configuration Management
> "Read current config, change to 4 CPU cores and 4GB RAM, then reboot."
Tools used: get_all_vm_config โ stop_vm โ set_vm_cpu(cores=4) โ set_vm_memory(mb=4096) โ boot_and_ready
๐ง Tool Reference
Lifecycle Management
| Tool | Description | Key Args | |---|---|---| | list_vms | List all VMs with status | โ | | get_vm_status | Check running/stopped | vm_index | | start_vm | Boot a VM | vm_index | | stop_vm | Graceful shutdown | vm_index | | reboot_vm | Restart a VM | vm_index | | create_vm | Create new VM | vm_version (76=Android 7, 96=Android 9) | | delete_vm | Permanently delete | vm_index | | clone_vm | Clone existing VM | vm_index, new_name | | rename_vm | Rename a VM | vm_index, new_name | | export_vm | Export to .ova | vm_index, output_path | | import_vm | Import from .ova | ova_path | | compress_vm | Compress disk | vm_index | | sort_out_all_vms | Re-tile windows | โ | | stop_all_vms | Stop all non-protected | โ | | check_task_status | Async task status | task_id |
Configuration
| Tool | Description | Key Args | |---|---|---| | get_all_vm_config | Read all common settings | vm_index | | get_vm_config | Read single setting | vm_index, key | | set_vm_config | Write single setting | vm_index, key, value | | set_vm_cpu | Set CPU cores | vm_index, cores (1/2/4/8) | | set_vm_memory | Set RAM | vm_index, mb | | set_vm_resolution | Set display | vm_index, width, height, dpi | | set_vm_gps | Set GPS | vm_index, lat, lng | | randomize_vm_device | Random fingerprint | vm_index |
App Management
| Tool | Description | Key Args | |---|---|---| | list_apps | Installed packages | vm_index | | install_apk | Install APK file | vm_index, apk_path | | uninstall_app | Remove app | vm_index, package | | launch_app | Start app | vm_index, package | | stop_app | Force stop | vm_index, package | | clear_app_data | Wipe app data | vm_index, package | | create_app_shortcut | Desktop shortcut | vm_index, package |
UI Interaction
| Tool | Description | Key Args | |---|---|---| | tap | Tap coordinates | vm_index, x, y | | swipe | Swipe gesture | vm_index, x1, y1, x2, y2, duration_ms | | long_press | Long press | vm_index, x, y, duration_ms | | input_text | Type text | vm_index, text | | send_key | Send key event | vm_index, key (home/back/menu/volumeup/volumedown) | | press_enter | Enter key | vm_index | | press_back | Back button | vm_index | | press_home | Home button | vm_index | | shake_device | Shake gesture | vm_index | | rotate_screen | Toggle orientation | vm_index | | zoom_in / zoom_out | Pinch zoom | vm_index | | scroll_up / scroll_down | Scroll | vm_index, x |
Screenshot & Capture
| Tool | Description | Key Args | |---|---|---| | take_screenshot | Save to file | vm_index, save_path | | screenshot_base64 | Base64 PNG for AI vision | vm_index | | get_screen_size | Current resolution | vm_index |
Network & Sensors
| Tool | Description | Key Args | |---|---|---| | connect_network | Enable internet | vm_index | | disconnect_network | Disable internet | vm_index | | get_public_ip | Get public IP | vm_index | | set_gps_location | Spoof GPS | vm_index, lat, lng | | set_accelerometer | Set sensor | vm_index, x, y, z | | get_adb_connection_info | Get ADB address | vm_index |
Shell & Advanced
| Tool | Description | Key Args | |---|---|---| | execute_shell | Run shell command | vm_index, command | | send_adb | Raw ADB command | vm_index, command | | get_device_info | Model/version/CPU | vm_index | | get_running_apps | Running processes | vm_index | | pull_file | VM โ Host | vm_index, remote_path, local_path | | push_file | Host โ VM | vm_index, local_path, remote_path | | set_clipboard | Set clipboard | vm_index, text | | get_clipboard | Read clipboard | vm_index |
Compound (Multi-Step)
| Tool | Description | |---|---| | wait_for_boot | Poll until Android is fully booted | | boot_and_ready | Start VM + wait for boot | | fresh_start_app | Stop โ clear data โ relaunch | | install_and_launch | Install APK + launch | | clone_and_configure | Clone + set CPU/RAM/resolution | | batch_install | Install multiple APKs (;-separated) | | full_vm_snapshot | Stop โ export โ restart | | run_monkey_test | Random UI stress test |
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Client โ
โ (Claude Desktop / Antigravity / Cursor / etc.) โ
โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ JSON-RPC (stdio)
โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP-MEmu Server โ
โ server.py โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ
โ โ Tools โ โResources โ โ Prompts โ โ
โ โ (69) โ โ (8) โ โ (7 templates) โ โ
โ โโโโโโฌโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Security Layer โ โ
โ โ โข Protected VM registry โ โ
โ โ โข Input validation & command blocklist โ โ
โ โ โข Audit logging โ โ
โ โโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ PyMEMUC + ADB Helpers โ โ
โ โ โข MEMUC CLI wrapper โ โ
โ โ โข ADB pull/push with auto-reconnect โ โ
โ โโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MEmu Android Emulator โ
โ (MEMUC CLI + ADB over TCP) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Project Structure
mcp-memu/
โโโ assets/
โ โโโ banner.png # GitHub banner image
โโโ tools/
โ โโโ lifecycle.py # VM start, stop, create, delete, clone
โ โโโ config.py # CPU, RAM, resolution, GPS settings
โ โโโ apps.py # Install, launch, stop apps
โ โโโ input.py # Tap, swipe, type, scroll, shake
โ โโโ capture.py # Screenshots (file & base64)
โ โโโ network.py # Network, GPS, accelerometer
โ โโโ shell.py # Shell, ADB, file transfer, clipboard
โ โโโ compound.py # High-level combined operations
โโโ resources/
โ โโโ vm_status.py # MCP resources (guides, tools ref, config keys)
โ โโโ prompts.py # MCP prompt templates (7 workflows)
โโโ utils/
โ โโโ memuc_instance.py # Singleton PyMemuc + security layer
โ โโโ adb_helpers.py # ADB pull/push with timeout & reconnect
โโโ server.py # FastMCP entry point
โโโ pyproject.toml # Project metadata & dependencies
โโโ protected_vms.json # Auto-generated (gitignored)
โโโ SECURITY.md # Security documentation
โโโ LICENSE # MIT License
โโโ README.md # This file
๐ฆ Dependencies
| Package | Version | Purpose | |---|---|---| | pymemuc | โฅ 0.6.0 | Python wrapper for MEmu's MEMUC CLI | | [mcp[cli]](https://modelcontextprotocol.io/) | โฅ 1.0.0 | Model Context Protocol SDK + CLI tools | | Pillow | โฅ 12.1.1 | Image processing for screenshots |
All dependencies are managed via pyproject.toml and installed automatically with uv sync.
๐ Security
See [SECURITY.md](SECURITY.md) for full details.
| Feature | Description | |---|---| | Protected VMs | Pre-existing VMs snapshotted on startup โ cannot be deleted/stopped | | Input Validation | VM index validated, negative values rejected | | Command Blocklist | rm -rf /, mkfs, dd, reboot, shutdown, format, wipe blocked | | Audit Logging | All destructive ops logged with timestamps to stderr | | Local-Only Transport | Uses stdio โ no network exposure by default |
For remote deployments, implement OAuth 2.1 with PKCE per the MCP specification.
โ ๏ธ Known Limitations
| Limitation | Details | Workaround | |---|---|---| | Clone requires disk space | Each clone needs 2-4GB | Free disk space before cloning | | DirectX blank screenshots | MEmu's DirectX mode produces blank images | Set graphics_render_mode=0 (OpenGL) | | ADB requires WiFi | ADB over TCP needs VM WiFi enabled | Call connect_network() first | | Config needs stopped VM | CPU/RAM/resolution only changeable when stopped | stop_vm() before config changes | | Windows only | MEmu is Windows-only software | No Linux/macOS support |
๐ค Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing) - Open a Pull Request
๐ License
This project is licensed under the MIT License โ see the [LICENSE](LICENSE) file for details.
๐ Acknowledgments
- MEmu Player โ Android emulator
- PyMEMUC โ Python MEMUC wrapper
- Model Context Protocol โ AI tool interoperability standard
- FastMCP โ Python MCP SDK
Built with โค๏ธ by Devbysatyam @ Avion
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source โ we do not rehost the code.
- Author: devbysatyam
- Source: devbysatyam/mcp-memu
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.