Data as of

Android MCP Server for Claude Code: Setup & Config

Claude Code: Android MCP Server exposes ADB-based device operations to MCP clients.

What you can do with Android in Claude Code

Pick it for direct ADB access paired with screenshot and clickable-UI inspection.

  • Inspect clickable UI elements and their screen coordinates
  • Run ADB commands from an MCP client

Before you start: Android in Claude Code

  • Python 3.x; setup example installs 3.11
  • uv
  • ADB installed and configured
  • An Android device; emulator support is untested

Replace both path placeholders. Clone the repository and run uv sync first. Select a device in config.yaml when more than one is attached.

Android Claude Code configuration

  1. Choose Claude Code configuration scope

    For Android MCP Server, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add Android MCP Server to Claude Code

    Use the android-mcp-server entry below in mcpServers. Keep Android MCP Server's documented stdio connection fields and your other Claude Code entries.

  3. Check Android MCP Server in Claude Code

    Android MCP Server: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "android-mcp-server": {
      "type": "stdio",
      "command": "path/to/uv",
      "args": [
        "--directory",
        "path/to/android-mcp-server",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'android-mcp-server' '{"type":"stdio","command":"path/to/uv","args":["--directory","path/to/android-mcp-server","run","server.py"],"env":{}}'

Android tools available to Claude Code

Android's stored tool list documents 5 tools; compare it with Claude Code's connected tool list, because the stored list is not a live check.

get_packages

For Android's get_packages, review the permission request and arguments in Claude Code before approval.

execute_adb_command

For Android's execute_adb_command, review the permission request and arguments in Claude Code before approval.

get_uilayout

For Android's get_uilayout, review the permission request and arguments in Claude Code before approval.

Inspect clickable UI elements, including bounds and center coordinates.

get_screenshot

For Android's get_screenshot, review the permission request and arguments in Claude Code before approval.

Capture the current device screen.

get_package_action_intents

For Android's get_package_action_intents, review the permission request and arguments in Claude Code before approval.

Retrieve non-data activity actions for a package.

Android: full stored tool descriptions

Troubleshooting Android in Claude Code

  • If Android MCP Server fails to start, check uv, the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • Android MCP Server uses stdio here: Claude Code must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Emulator use is marked untested
  • Known limitation: Requires ADB installation and a connected device
  • General Claude Code troubleshooting lives in the /clients/claude-code guide.

Android MCP Server — details. Claude Code guide

Frequently asked questions

Register Android MCP Server with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's android-mcp-server example uses stdio.

Android MCP Server's Claude Code configuration invokes uv.

Android MCP Server's stored list contains 5 tools, including get_packages, execute_adb_command, get_uilayout. Compare those names with Claude Code's connected tool list; the stored list is not a live check.

No. A single connected device is selected automatically without config.yaml.

The README mentions emulators but explicitly marks them untested.