UIAutomator2 MCP Server

Automatiza y controla dispositivos Android usando el framework UIAutomator2.

Documentación

UIAutomator2 MCP Server

Servidor MCP UIAutomator2 implementado sobre el framework FastMCP, que proporciona capacidades de control automatizado de dispositivos Android.

Características

  • Gestión de dispositivos Android

    • Ejecución de comandos ADB
    • Gestión de paquetes de aplicaciones
    • Capturas de pantalla
  • Operaciones de automatización de UI

    • Clic en elementos
    • Entrada de texto
    • Deslizamiento de pantalla
    • Espera de elementos
    • Desplazamiento de página
  • Gestión de aplicaciones

    • Iniciar/detener aplicaciones
    • Información de la aplicación actual
    • Gestión del servicio UIAutomator2

Requisitos del entorno

  • Python 3.10+
  • Herramienta ADB
  • Dispositivo Android o emulador

Instalación

  1. Clonar el proyecto
git clone https://github.com/yourusername/uiautomator2-mcp.git
cd uiautomator2-mcp
  1. Instalar dependencias
pip install -e .

Configuración de MCP

1. Configurar mcp.json

Crea o edita el archivo mcp.json en el directorio de configuración de Claude Desktop (normalmente en ~/.cursor/mcp.json o %APPDATA%\Cursor\mcp.json):

{
  "mcpServers": {
    "android": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/uiautomator2-mcp",  // 替换为你的项目路径
        "run",
        "src/server.py"
      ]
    }
  }
}

Descripción de la configuración:

  • android: Identificador único del servidor MCP
  • command: Comando para ejecutar Python (aquí se usa uv, también se puede usar python)
  • args: Argumentos de línea de comandos
    • --directory: Ruta del directorio del proyecto
    • run: Comando de ejecución de uv
    • src/server.py: Ruta del archivo de entrada del servidor

2. Opciones de configuración

Puedes ajustar la siguiente configuración según sea necesario:

  1. Ejecutar directamente con Python:
{
  "mcpServers": {
    "android": {
      "command": "python",
      "args": [
        "/path/to/uiautomator2-mcp/src/server.py"
      ]
    }
  }
}
  1. Usar un entorno virtual:
{
  "mcpServers": {
    "android": {
      "command": "/path/to/venv/bin/python",
      "args": [
        "/path/to/uiautomator2-mcp/src/server.py"
      ]
    }
  }
}
  1. Añadir variables de entorno:
{
  "mcpServers": {
    "android": {
      "command": "python",
      "args": [
        "/path/to/uiautomator2-mcp/src/server.py"
      ],
      "env": {
        "PYTHONPATH": "/path/to/uiautomator2-mcp",
        "ANDROID_HOME": "/path/to/android-sdk"
      }
    }
  }
}

3. Configuración de múltiples servidores

Puedes definir múltiples servidores MCP en el mismo archivo de configuración:

{
  "mcpServers": {
    "android": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/uiautomator2-mcp",
        "run",
        "src/server.py"
      ]
    },
    "android-debug": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/uiautomator2-mcp",
        "run",
        "src/server.py",
        "--debug"
      ]
    }
  }
}

Uso de herramientas

Una vez completada la configuración, puedes usar directamente todas las herramientas disponibles en Claude:

# 初始化UIAutomator2
await mcp.call_tool("mcp_android_init_uiautomator2", {})

# 启动应用
await mcp.call_tool("mcp_android_start_app", {
    "package_name": "com.example.app"
})

# 点击元素
await mcp.call_tool("mcp_android_click_element", {
    "text": "登录"
})

Desarrollo

  1. Instalar dependencias de desarrollo
pip install -e ".[dev]"
  1. Ejecutar pruebas
pytest

Contribuciones

Se aceptan Issues y Pull Requests.

Licencia

MIT License