android-dev-mcp
Provides Android CLI execution, scaffolding, linting, live dependency versions, and full Android development workflows for building and debugging apps.
Allows interaction with Android Studio to analyze files, render @Preview composables, and use Gemini for UI verification.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@android-dev-mcp scaffold a new login feature"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
android-dev-mcp
Unified MCP server for Android mobile development — combines project knowledge, Android CLI execution, live dependency versions, and agentic workflow tools for Claude Code.
Install
curl -fsSL https://raw.githubusercontent.com/maheshmishra271090-design/android-dev-mcp/main/scripts/install.sh | bashThat's it. No cloning, no manual steps. The installer handles everything:
Node.js ≥ 18 (installs or upgrades)
Git + ITGD aliases
Android CLI + Google Android Skills
android-dev-mcp global npm package
MCP config for Claude Code (via
claude mcp add) and Claude Desktop (viaclaude_desktop_config.json)CLAUDE.md block in current project
Git hooks (pre-commit lint + commit-msg Conventional Commits)
android-dev-mcp init registers the server in both places it can be used — the claude CLI's own MCP config (for Claude Code / the VSCode extension) and claude_desktop_config.json (for the Claude Desktop app). If the claude CLI isn't on PATH, Claude Code registration is skipped with a warning and the manual command to run instead (see below).
After install — verify
android-dev-mcp check MCP server built: ✔
Claude configured: ✔
Android CLI: ✔ android 1.x.x
CLAUDE.md (cwd): ✔ block presentclaude mcp get android-dev-mcpandroid-dev-mcp:
Status: ✔ Connected
Type: stdio
Command: node
Args: <path-to-package>/dist/index.jsThen inside Claude Code, start a new session (registration only takes effect on session start):
/mcp → should show android-dev-mcp with 24 toolsManual registration (Claude Code)
If init reports it couldn't find the claude CLI, or you're setting this up without the installer, register it directly:
claude mcp add android-dev-mcp -- node "$(npm root -g)/@maheshmishra271090-design/android-dev-mcp/dist/index.js"Or, when working from a local clone/checkout of this repo:
npm run build
claude mcp add android-dev-mcp -- node "$(pwd)/dist/index.js"Remove it with:
claude mcp remove android-dev-mcp -s localRelated MCP server: claude-android
What It Does
One MCP server that gives Claude Code both the knowledge and the execution power to complete full Android development workflows autonomously:
Layer | Tools | What it provides |
Knowledge | 14 | MVVM, Hilt, Compose, ExoPlayer, Retrofit, tests, git, prompts, model routing |
Android CLI | 5 | Scaffold, lint, render @Preview, deploy APK, live dep versions |
Execution | 4 | Direct adb, git, gradle, and shell command execution |
Tools (24 total)
Knowledge Layer (14)
Tool | Returns |
| All 14 knowledge domains — call at session start |
| Module layout, package naming, file conventions |
| MVVM, Hilt, ViewModel, StateFlow, Coroutines |
| Compose screens, Material 3, Navigation, Player UI |
| Retrofit, AuthInterceptor, DTO mapping, error codes |
| ExoPlayer/Media3, HLS, Widevine DRM, lifecycle |
| Gradle flavors, signing, CI pipeline |
| Frame rate · jank · recomposition · ACR crash analysis |
| ViewModel · Repository · Compose UI · API templates |
| Branch strategy, Conventional Commits, hooks |
| Ask CIO, few-shot CoT, compact tasks |
| /clear vs /compact, context window rules |
| Haiku/Sonnet/Opus routing + task recommendation |
| Graphify, RTK, Caveman, Superpowers guides |
Android CLI Integration Layer (5)
Tool | What it does |
| Full CLI command reference + workflow protocols |
| Executes any |
| Current agp/kotlin/compose/media3 from Google Maven* |
| Context + live versions + CLI scaffold in one call |
| Renders @Preview + validates against ITGD Compose standards* |
| Full debug protocol: ADB + layout tree + screenshot + ACR + lint |
*Requires Android Studio running with Gemini signed in.
Execution Layer (4)
Tool | What it does |
| Executes any |
| Executes any |
| Executes a Gradle task — uses |
| Executes an arbitrary shell command, returns stdout/stderr |
Agentic Workflows
New Feature
get_full_context → get_live_versions → scaffold_feature → studio analyze-file → verify_ui → android runFluidity Debug
fluidity_debug_workflow("player") → android layout --diff → android screen capture → ACR → fix → verifyNew Developer Onboarding
curl -fsSL https://raw.githubusercontent.com/maheshmishra271090-design/android-dev-mcp/main/scripts/install.sh | bash
# Done in ~3 minutes — no pair session neededPer-Project CLAUDE.md
To add or update the MCP block in any project:
android-dev-mcp setup-claude-md # current project
android-dev-mcp setup-claude-md --dir=~/projects/App # specific projectSafe to re-run — never overwrites existing content.
Customising Knowledge
All knowledge is plain markdown in knowledge/. Edit to match your project.
License
MIT
Available Tools
24 toolscheck_ui_fluidityB
Returns frame rate thresholds, ADB commands, Macrobenchmark templates, ACR crash analysis, and screen-specific guidance. screen: home|player|search|all
Inputs: screen.
fluidity_debug_workflowB
Agentic workflow: runs the full fluidity debug protocol — loads fluidity standards + generates Android CLI commands for layout inspection, screenshot capture, and ACR analysis. screen: home|player|search
Inputs: screen (required), project_dir.
generate_testsB
Returns test templates. target: viewmodel:X | repository:X | ui:X | api:X | all
Inputs: target.
get_android_cli_guideA
Returns the full Android CLI command reference, available Google Skills, and ITGD agentic workflow protocols (new feature, fluidity debug, onboarding, dependency upgrade).
Inputs: section.
get_api_backend_patternsA
Returns Retrofit, AuthInterceptor, repository patterns, error handling, and streaming API conventions.
Inputs: no named parameters.
get_architecture_patternsB
Returns MVVM, Hilt DI, ViewModel, StateFlow, and Coroutine patterns.
Inputs: no named parameters.
get_cicd_commandsA
Returns Gradle build commands, flavors, signing config, and CI pipeline steps.
Inputs: no named parameters.
get_full_contextA
Returns complete ITGD Android project context — all knowledge domains. Call once at session start.
Inputs: no named parameters.
get_git_workflowA
Returns branch strategy, Conventional Commits, Git hooks, and alias setup. topic: branches|commits|commands|hooks|all
Inputs: topic.
get_live_versionsA
Fetches live recommended dependency versions from Google Maven via Android CLI (agp, kotlin, compose, media3, hilt). Returns current versions to use in build.gradle.kts. Requires Android Studio + Android CLI.
Inputs: packages.
get_model_routingA
Returns Haiku/Sonnet/Opus routing guide. Optionally pass task description for a specific recommendation.
Inputs: task.
get_player_patternsA
Returns ExoPlayer/Media3 setup, HLS, Widevine DRM, and lifecycle management in Compose.
Inputs: no named parameters.
get_project_structureB
Returns module layout, package naming, and file naming conventions.
Inputs: no named parameters.
get_prompt_templatesC
Returns token-efficient prompt templates: Ask CIO, few-shot CoT, compact tasks, anti-patterns. topic: ask-cio|few-shot|compact-tasks|anti-patterns|all
Inputs: topic.
get_session_hygieneA
Returns /clear vs /compact rules, context window facts, autocompact buffer thresholds, and CLAUDE.md hygiene.
Inputs: no named parameters.
get_tooling_setupA
Returns install guides for Graphify, RTK, Caveman, Superpowers. tool: graphify|rtk|caveman|superpowers|all
Inputs: tool.
get_ui_compose_standardsA
Returns Compose screen structure, Material 3, Navigation, and Player UI standards.
Inputs: no named parameters.
run_adbA
Executes an adb command and returns stdout. Use for: adb shell, adb logcat, adb pull/push, adb devices, adb install, adb dumpsys, etc. Requires adb on PATH.
Inputs: command (required), cwd.
run_android_cliA
Executes an Android CLI command and returns stdout. Use for: android create, android run, android studio analyze-file, android studio version-lookup, android layout, android screen capture, android emulator, android skills, android docs. Requires Android CLI installed.
Inputs: command (required), cwd.
run_bashA
Executes an arbitrary shell command and returns stdout/stderr. Use for anything not covered by run_adb/run_git/run_gradle/run_android_cli.
Inputs: command (required), cwd.
run_gitA
Executes a git command and returns stdout. Use for: git status, diff, log, add, commit, branch, push, etc. Requires git on PATH.
Inputs: command (required), cwd.
run_gradleA
Executes a Gradle command and returns stdout. Uses ./gradlew if present in cwd, otherwise falls back to the global 'gradle' binary. Use for: build, assembleDebug, test, lint, dependencies, etc.
Inputs: command (required), cwd.
scaffold_featureA
Agentic workflow: loads ITGD conventions + fetches live versions + scaffolds a new feature. Returns the context + version data + Android CLI scaffold command for Claude to execute. Steps: get_full_context → get_live_versions → android create guidance.
Inputs: feature_name (required), template.
verify_uiA
Agentic workflow: renders a @Preview composable via Android CLI and cross-checks its semantics tree against ITGD Compose standards. Returns render command + standards to validate against.
Inputs: file_path (required), composable_name (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 24 tools
Most tools are clearly distinct by domain or action, such as the get_* knowledge tools for architecture, UI, API, player, etc. However, some overlap exists between check_ui_fluidity and fluidity_debug_workflow, which both address UI fluidity, and between get_full_context and the individual get_* tools, though descriptions clarify their intended usage.
The tool names use consistent prefixes within categories: get_ for knowledge, run_ for command execution. However, the set mixes multiple verb styles (check_, generate_, scaffold_, verify_, fluidity_debug_workflow) which reduces overall consistency, though the names remain readable and descriptive.
With 24 tools, the server is on the heavier side, approaching the threshold where the count becomes burdensome. While each tool has a specific purpose, many knowledge tools could potentially be consolidated, making the set feel slightly over-sized for a coherent assistant.
The tool surface covers the core Android development lifecycle: knowledge retrieval, command execution, and higher-level workflows for scaffolding, UI verification, and debugging. Minor gaps exist, such as no direct tool for editing project configuration, but these can be worked around via run_bash or run_gradle.
Maintenance
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceKotlin MCP Server for Android app development using OpenAI, Gemini, or OpenRouter. Enables AI-assisted coding via Aider, Gradle build/test integration, Kotlin LSP, and Docker-based portability.31AGPL 3.0
- AlicenseAqualityCmaintenanceMCP server for Android dev workflows that exposes Gradle, Manifest, and ProGuard context to Claude, with a library of skills for tasks like AGP upgrade and R8 audit.3MIT
- FlicenseAqualityDmaintenanceAn MCP server designed for Android development, enabling AI assistants to directly control Android devices for screenshots, UI analysis, app management, and more.19-
- FlicenseNot gradedqualityAmaintenanceMCP server that provides AI coding agents real Android development tools—Gradle, adb, logcat, lint, crash triage—through a local, permissioned interface. Enables agents to inspect projects, run safe Gradle tasks, capture logs/screenshots, and triage crashes.1-