Let AI build, test, and debug your Android apps.
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.
| 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 |
| 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 |
- Custom build commands (project-specific overrides, auto-detect gradlew)
- Video capture (start/stop recording, duration-based capture)
- Node.js 18+
- Android SDK with
adbandemulatorin 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 versionnpm install -g replicant-mcpAfter installation, run the built-in diagnostics to verify your environment:
replicant doctornpm update -g replicant-mcpAdd 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 mcp add replicant -- npx -y replicant-mcpAdd to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"replicant": {
"command": "npx",
"args": ["-y", "replicant-mcp"]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"replicant": {
"command": "npx",
"args": ["-y", "replicant-mcp"]
}
}
}Add to ~/.codex/config.toml:
[mcp_servers.replicant]
command = "npx"
args = ["-y", "replicant-mcp"]Or via CLI:
codex mcp add replicant -- npx -y replicant-mcpNote: Ensure
adbandemulatorare in your PATH, or setANDROID_HOMEenvironment variable. On macOS:~/Library/Android/sdk, on Linux:~/Android/Sdk.
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?
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.
- Configuration: Set
REPLICANT_CONFIGfor advanced options. See docs/configuration.md. - Logging: Set
REPLICANT_LOG_LEVEL(error,warn,info,debug) andREPLICANT_LOG_FORMAT(jsonfor 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
rtfmwith a category like "build", "adb", "emulator", or "ui".
| 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 |
See CONTRIBUTING.md for development setup and guidelines.
- Inspired by xc-mcp for iOS
- Built on the Model Context Protocol
Questions? Open an issue
