Android MCP server for AI-assisted development. Build, test, emulate, and automate.
io.github.thecombatwombat/replicant-mcp — Android MCP Server
The io.github.thecombatwombat/replicant-mcp server is an Android MCP server for AI-assisted development. It supports building, testing, emulating, and automating development workflows. The README excerpt positions it for AI-assisted app activities, including build, test, and debugging.
🛠️ Key Features
Android-focused MCP server
Build, test, and debug support (from the readme excerpt)
Emulate and automate capabilities (from the description)
🚀 Use Cases
AI-assisted development for Android apps
Running build and test cycles
Emulating environments for development/testing
Automating parts of the Android workflow
⚡ Developer Benefits
Integrates AI into Android development tasks
Emphasizes end-to-end development activities: build, test, and debug
Includes CI workflow and Node.js version requirement (Node.js 18+)
⚠️ Limitations
Only described at a high level (build/test/emulate/automate); no additional tool list details are provided in the available data
replicant-mcp is a Model Context Protocol server that gives AI assistants like Claude the ability to interact with your Android development environment. Build APKs, launch emulators, install apps, navigate UIs, and debug crashes—all through natural conversation.
Demo
replicant-mcp demo
Why replicant-mcp?
Without replicant-mcp
With replicant-mcp
"Run ./gradlew assembleDebug, then adb install, then adb shell am start..."
"Build and run the app"
Copy-paste logcat output, lose context
AI reads filtered logs directly
Screenshot → describe UI → guess coordinates
AI sees accessibility tree, taps elements by text
5,000 tokens of raw Gradle output
50-token summary + details on demand
Features
Category
Capabilities
Build & Test
Build APKs/bundles, run unit and instrumented tests, list modules/variants/tasks, test regression detection with baseline comparison
Video capture (start/stop recording, duration-based capture)
Quick Start
Prerequisites
Node.js 18+
Android SDK with adb and emulator in your PATH
An Android project with gradlew (for build tools)
bash
node --version # Should be 18+
adb --version # Should show Android Debug Bridge version
emulator -version # Should show Android emulator version
Installing prerequisites (macOS via Homebrew)
If you don't already have these tools, install them with Homebrew:
Node.js 18+
bash
brew install node
Physical-device only — just adb, sufficient if you never run an emulator:
bash
brew install --cask android-platform-tools
adb lands directly on your PATH; no further config needed.
Full Android SDK — needed for emulator workflows or building APKs via the gradle-* tools. Run the steps in order:
bash
# 1. JDK — required by sdkmanager itself, and by the gradle-* tools
brew install --cask temurin@17
# 2. cmdline-tools (provides sdkmanager)
brew install --cask android-commandlinetools
# 3. Set ANDROID_HOME and create the directory BEFORE running sdkmanager,# otherwise sdkmanager has no install target.export ANDROID_HOME="$HOME/Library/Android/sdk"mkdir -p "$ANDROID_HOME"# 4. Accept all SDK licenses first, then install packages.# `sdkmanager --install` aborts on unaccepted per-package licenses# (e.g. the Google APIs system image) if licenses aren't accepted first.# The system-image arch must match your host: `arm64-v8a` for Apple# Silicon (M1/M2/M3), `x86_64` for Intel Macs. Check with `uname -m`.yes | sdkmanager --licenses
sdkmanager --install "platform-tools""emulator""system-images;android-34;google_apis;arm64-v8a"
Persist ANDROID_HOME and put the SDK binaries on your PATH by appending to ~/.zshrc (or ~/.bashrc):
Note: Ensure adb and emulator are in your PATH, or set ANDROID_HOME environment variable. On macOS: ~/Library/Android/sdk, on Linux: ~/Android/Sdk.
Example
code
You: "I just changed the checkout flow. Build the app, go through checkout
with a test product, and make sure the confirmation screen shows up."
Claude: [Builds debug APK, installs on emulator, launches app]
[Taps "Electronics" category → "Wireless Headphones" → "Add to Cart"]
[Navigates to cart, taps "Checkout"]
[Fills shipping form, taps "Place Order"]
Confirmation screen is showing:
- Order #38291
- "Wireless Headphones" × 1
- Total: $79.99
- Estimated delivery: Jan 30
The flow works. Want me to test the edge cases—empty cart,
invalid address, payment failure?
Design
replicant-mcp uses progressive disclosure (summaries first, details on demand) to minimize token usage, and accessibility-first UI automation for faster, cheaper, more reliable interactions than screenshot-based approaches. See docs/architecture.md for details.
More Info
Configuration: Set REPLICANT_CONFIG for advanced options. See docs/configuration.md.
Logging: Set REPLICANT_LOG_LEVEL (error, warn, info, debug) and REPLICANT_LOG_FORMAT (json for structured output) to control server logging. Logs are written to stderr.