Skip to main content
Glama
itest4u

Android MCP Server

by itest4u
README.md
# Android MCP Server

This is a Model Context Protocol (MCP) server that enables control of Android devices using `uiautomator2`. 

## Prerequisites

- Python 3.10+
- ADB installed and added to PATH
- An Android device connected via USB or WiFi (with ADB debugging enabled)

## Installation

1. Create a virtual environment:
   ```bash
   python -m venv venv
   .\venv\Scripts\activate
   ```
2. Install dependencies:
   ```bash
   pip install -r requirements.txt
   ```

## Usage

To run the server:

```bash
python main.py
```

### Tools Available

- `connect_device(serial)`: Connect to a device.
- `device_info()`: Get device status.
- `dump_hierarchy()`: View UI XML.
- `click_element(text, resource_id, description)`: Click UI elements.
- `wait_for_element(text, resource_id, description, timeout)`: Wait for element to appear.
- `click_point(x, y)`: Click at coordinates.
- `swipe(sx, sy, ex, ey)`: Swipe gesture.
- `input_text(text, clear)`: Type text.
- `press_key(key)`: Press physical keys (home, back, etc.).
- `open_app(package_name)`: Launch an app.
- `stop_app(package_name)`: Stop an app.
- `install_app(url_or_path)`: Install APK.
- `uninstall_app(package_name)`: Uninstall app.
- `shell_command(command)`: Run ADB shell command.
- `take_screenshot()`: Capture screen.

## Configuration

Ensure your device is visible via `adb devices` before connecting.

### Gemini MCP Configuration

To use this server with Gemini CLI or compatible MCP clients, add the following to your MCP configuration file (e.g., `~/.gemini/settings.json`):

```json
"android": {
  "command": "d:\\src\\android-mcp\\venv\\Scripts\\python.exe",
  "args": [
    "d:\\src\\android-mcp\\main.py"
  ]
}
```

Replace the paths with the actual absolute paths to your project if they differ.

Maintenance

ActivityInactive
ResponsivenessNo issues