Open-source MCP for Android development

Marvis-dev MCP makes Android app debugging auditable for AI agents.

Drive an Android emulator from your coding agent. Build, boot, install, launch, test a feature, and get a logcat-and-actions timeline back.

U

Test my app

AI
Starting Android debug session

Building appDebug, booting Pixel_8_API_34, installing APK, and launching the target package.

tool start_debug_session

tool observe_screen

tool tap login_button

tool finish_test - report.md + timeline.md

Setup

Install Marvis-dev MCP

First clone the repository and prepare the Android tooling. Then choose one of the two install methods below.

Clone the repository

Start here: download the source from GitHub and switch into the project directory.

git clone https://github.com/fclab-skku/playwright_for_android.git
cd playwright_for_android
View on GitHub

Prerequisites

Then keep uv, Android SDK platform tools, the emulator binary, and at least one AVD ready on PATH.

brew install uv
python3 scripts/onboard.py
One-time setup

Claude Code plugin

Install path 1: use the Claude Code plugin so the bundled manifest registers the MCP server automatically.

/plugin marketplace add /path/to/android-app-debug-mcp
/plugin install android-app-debug-mcp@FCLab.SKKU
Recommended setup

Standalone MCP server

Install path 2: register the MCP server directly and point Claude at the checked-out repository path.

claude mcp add marvis-dev -- \
  uv run --project /absolute/path/to/android-app-debug-mcp \
  python \
    /absolute/path/to/android-app-debug-mcp/scripts/server.py
MCP setup

Built for Android debugging

One structured debug run

Build the APK, boot the selected AVD, install the app, launch the package, and drive the target feature from one session.

LLM-visible actions

Every tap, text entry, scroll, wait, home, and back action is a typed MCP tool call that stays visible in the agent transcript.

Unified logcat timeline

Action markers are written into live logcat, so the timeline can connect UI steps with system and app logs.

Artifacts by default

Each run saves screenshots, trace rows, logcat, a report, and a combined timeline under android-app-debug.

Built for AI agents

Raw screenshots plus UI-tree context

Agents reason from raw emulator screenshots and structured UI element lists so every action is grounded in visible Android state.

CLI for coding agents

A token-efficient MCP server purpose-built for Claude Code and similar coding agents that need to validate Android features without juggling Gradle, adb, and logcat manually.

MCP server

Drop-in Model Context Protocol tooling for any MCP client. Agents call standard tools for lifecycle, observation, touch input, typing, scrolling, navigation, waits, and reports.

Session monitoring

Every debug run writes screenshots, action traces, annotated logcat, report.md, and timeline.md so developers can inspect what the agent did after the session ends.

MCP toolset

Lifecycle

precheck, start_debug_session, finish_test, abort_session

Prepare the machine, start one active run, and close it with a report or an abort.

Observation

observe_screen

Refresh the current screen without firing input, returning screenshots.

UI actions

tap, long_press, type_text, scroll_dir, scroll_to_text_tool, press_home, press_back, wait

Drive the emulator through adb-injected actions and capture the next observation after each step.

Every run leaves a trail you can inspect

Marvis-dev writes a timestamped run directory with annotated logcat, action traces, screenshots, the final report, and a combined timeline. Add android-app-debug/ to your Android project's .gitignore.

android-app-debug/2026-05-28T22-15-04/
|-- logcat.log
|-- trace.jsonl
|-- screenshots/
|   |-- step01_raw.jpg
|   |-- step01_annotated.jpg
|   `-- ...
|-- report.md
|-- timeline.md
`-- build_error.log

Good fit when

You need to reproduce a bug on a real Android UI path.

You want screenshots and logcat tied to every action.

You want an agent to validate one feature without manual adb juggling.