home / mcp / droidrun mcp server

DroidRun MCP Server

Provides an MCP server to control Android devices via the DroidRun library using the Android accessibility tree.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "chukfinley-droidrun-mcp-server": {
      "command": "python3",
      "args": [
        "/full/path/to/droidrun-mcp-server/server.py"
      ]
    }
  }
}

You can control an Android device from an MCP client by running a local DroidRun MCP server that talks to the DroidRun library through the Android accessibility tree. This setup lets you navigate, tap, type, and launch apps on a connected device without relying on screenshots, offering fast, text-based automation you can integrate with Claude Code.

How to use

To control your Android device, first ensure your MCP server is running and reachable by your MCP client. You will interact with the device by issuing high-level actions such as opening apps, tapping on elements by index, typing text, swiping, and navigating back and home. The server exposes a set of actions you can call from your MCP client, and it uses the DroidRun library on your Android device to analyze the accessibility tree and perform the requested actions.

How to install

Prerequisites and initial setup are required before you can run the MCP server.

Install ADB on your computer to communicate with the Android device.

Install Python 3.10+ on your computer.

Install the DroidRun MCP server package and the MCP framework dependencies.

Clone the DroidRun MCP server repository and install dependencies.

Configuration and usage notes

Configure Claude Code to load the DroidRun MCP server as an MCP backend. You will specify a stdio configuration that starts the Python runtime and points to the server script on your machine.

Example configuration entry shows how Claude Code should spawn the local server process and provide an empty environment by default.

Troubleshooting

If the device is not detected, verify USB connectivity and ensure USB debugging is enabled on the device. Re-run ADB device checks to confirm the device appears in the list.

If the Portal/Accessibility service does not appear or enable, re-run the setup flow to prompt settings navigation and grant the necessary permissions.

Ensure the MCP server configuration is correctly referenced in Claude Code with an absolute path to the server script and a complete stdio command. Restart Claude Code after changes.

Usage example

Once configured, you can issue commands to perform operations on the device. For example, you can open an app by package name, inspect the current UI structure, tap a specific UI element by its index, input text, navigate back, or return to the home screen. The server translates these calls into actions on the Android device using the DroidRun portal.

Security and best practices

Keep the Android device connected only to trusted machines. Limit the exposure of the MCP server by running Claude Code in a secure environment and monitor any environment variables that your MCP config relies on.

Available tools

device_info

Get device model, Android version, and serial.

ui

Get current screen UI elements as an indexed list.

tap

Tap an element by index number from the ui() output.

tap_xy

Tap at specific screen coordinates.

swipe

Swipe in a direction (up, down, left, right).

text

Input text into a focused element or after selecting a target element.

back

Simulate the Android back button press.

home

Simulate the Android home button press.

enter

Simulate the Enter key press.

app

Open an app by its package name.

apps

List installed non-system apps.