Skip to main content
Glama

replicant-mcp

Let AI build, test, and debug your Android apps.

CI npm Node.js License: MIT Ask DeepWiki replicant-mcp MCP server

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


Related MCP server: android-adb-mcp

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

Emulator

Create, start, stop, wipe emulators; save/load/delete snapshots

Device Control

List connected devices, select active device, query device properties

App Management

Install, uninstall, launch, stop apps; clear app data

Log Analysis

Filter logcat by package, tag, level, time

UI Automation

Accessibility-first element finding, spatial proximity search, tap, text input, screenshots

Diagnostics

Environment health checks via replicant doctor; structured logging with configurable level and format


Coming Soon

  • Custom build commands (project-specific overrides, auto-detect gradlew)

  • 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)

node --version      # Should be 18+
adb --version       # Should show Android Debug Bridge version
emulator -version   # Should show Android emulator version

If you don't already have these tools, install them with Homebrew:

Node.js 18+

brew install node

Physical-device only — just adb, sufficient if you never run an emulator:

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:

# 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):

export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"

Installation

npm install -g replicant-mcp

After installation, run the built-in diagnostics to verify your environment:

replicant doctor

Updating

npm update -g replicant-mcp

Setup

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "replicant": {
      "command": "npx",
      "args": ["-y", "replicant-mcp"]
    }
  }
}

Claude Code

claude mcp add replicant -- npx -y replicant-mcp

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{
  "mcpServers": {
    "replicant": {
      "command": "npx",
      "args": ["-y", "replicant-mcp"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "replicant": {
      "command": "npx",
      "args": ["-y", "replicant-mcp"]
    }
  }
}

OpenAI Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.replicant]
command = "npx"
args = ["-y", "replicant-mcp"]

Or via CLI:

codex mcp add replicant -- npx -y replicant-mcp

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

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.

  • Troubleshooting: Common issues and solutions in docs/troubleshooting.md.

  • Tool documentation: Ask Claude to call rtfm with a category like "build", "adb", "emulator", or "ui".


Documentation

Document

Description

Architecture

Design overview and progressive disclosure pattern

Configuration

Config file reference, environment variables, Gradle setup

API Stability

Tool API versioning policy and deprecation process

Security Model

adb-shell safety model, command denylist, threat boundaries

Support Matrix

Tested OS, Node.js, Android SDK, and emulator versions

Known Limitations

Accessibility gaps, timeouts, single-device focus, and more

Artifacts

.replicant/ directory contents and privacy considerations

Troubleshooting

Common issues and solutions

Changelog

Version history

Security Policy

Vulnerability reporting process

Support / Getting Help

How to report bugs and ask questions

Contributing

Development setup and guidelines


Contributing

See CONTRIBUTING.md for development setup and guidelines.


Acknowledgments


License

MIT


Questions? Open an issue

Available Tools

14 tools
adb-appC
Destructive

Manage applications.

Inputs: operation (required), apkPath, packageName, limit, +2 more.

adb-deviceC

Manage device connections.

Inputs: operation (required), deviceId.

adb-logcatC
Read-onlyIdempotent

Read device logs. Returns summary with logId.

Inputs: lines (required), package, tags, level, +2 more.

adb-shellC
Destructive

Execute shell commands with safety guards.

Inputs: command (required), timeout, maxChars, summaryOnly, +1 more.

cacheD
Destructive

Manage the cache. See rtfm for details.

Inputs: operation (required), key, config.

emulator-deviceC
Destructive

Manage Android emulators.

Inputs: operation (required), avdName, device, systemImage, +2 more.

gradle-buildD

Build. Returns summary with buildId.

Inputs: operation (required), module, flavor.

gradle-get-detailsC
Read-onlyIdempotent

Fetch full output for a previous build/test by ID.

Inputs: id (required), detailType (required), maxChars, summaryOnly, +1 more.

gradle-listB
Read-onlyIdempotent

Introspect project structure.

Inputs: operation (required), module.

gradle-testA
Destructive

Run tests. Returns summary with testId. With baseline, auto-detects regressions.

Inputs: operation (required), module, filter, taskName.

rtfmA
Read-onlyIdempotent

Get documentation. Pass category ('build'|'adb'|'emulator'|'ui'|'cache'|'index') or tool (tool name like 'ui-query').

Inputs: category, tool.

ui-actionA
Destructive

Interact with app UI: tap, input, scroll. Use selector or coords.

Inputs: operation (required), x, y, elementIndex, +5 more.

ui-captureC

Capture screenshots or visual snapshots.

Inputs: operation (required), localPath, inline, maxDimension, +1 more.

ui-queryC
Read-onlyIdempotent

Query app UI. Accessibility-first.

Inputs: operation (required), selector, debug, maxTier, +5 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 14 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: adb-* for device management, gradle-* for build/test, ui-* for UI interaction, and separate tools for cache, docs, and emulators. No functional overlap.

    Naming Consistency4/5

    Names consistently use domain prefixes (adb-, gradle-, ui-), but gradle-get-details introduces a hyphenated verb-noun while others use single verbs or nouns, a minor inconsistency.

    Tool Count5/5

    14 tools is well-scoped for an Android development/testing MCP, covering ADB, Gradle, emulators, UI, cache, and documentation without being overwhelming.

    Completeness4/5

    Covers essential Android development operations (device management, build/test, UI interaction). Missing some niche ADB commands (e.g., port forwarding) but core workflows are present.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A powerful MCP server that provides comprehensive Android device automation capabilities through ADB, enabling AI agents to interact with Android devices for testing, automation, and device control tasks.
      1
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that wraps Android ADB functionality into AI assistant tools, enabling device management, shell execution, file operations, app management, media capture, and log analysis via natural language.
      23 npm
      3
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      A comprehensive MCP server for Android Debug Bridge, enabling AI agents to control Android devices through structured tools like launching apps, UI automation, file operations, and log capture.
      90
      7
      MIT