Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

MEmu

БесплатноНе проверен

AI-powered Android emulator control via Model Context Protocol, enabling agents to manage VMs, install apps, automate UI, and more.

GitHubEmbed

Описание

AI-powered Android emulator control via Model Context Protocol, enabling agents to manage VMs, install apps, automate UI, and more.

README

MCP-MEmu Banner

MCP-MEmu

AI-Powered Android Emulator Control via Model Context Protocol

by Devbysatyam @ Avion

Stars Forks Issues License Python MCP

FeaturesQuick StartUse CasesToolsPromptsSecurityArchitecture


🌟 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:

  1. Boot the VM and wait for Android to fully load
  2. Install your APK via install_apk
  3. Launch the app and take a screenshot to see the screen
  4. Navigate through UI using tap, swipe, input_text
  5. 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:

  1. Create 3 new Android 9 VMs
  2. Configure each with different CPU, RAM, resolution
  3. Randomize device fingerprints so each looks unique
  4. 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] ≥ 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 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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License — see the LICENSE file for details.


🙏 Acknowledgments


Built with ❤️ by Devbysatyam @ Avion

from github.com/devbysatyam/mcp-memu

Установка MEmu

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/devbysatyam/mcp-memu

FAQ

MEmu MCP бесплатный?

Да, MEmu MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для MEmu?

Нет, MEmu работает без API-ключей и переменных окружения.

MEmu — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить MEmu в Claude Desktop, Claude Code или Cursor?

Открой MEmu на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare MEmu with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории design