Skip to main content
Glama
apk-preview-mcp

apk-preview-mcp

by Famel-svg

APK Preview Desktop

Aplicativo Windows para instalar, executar, navegar e inspecionar APKs em um Android Emulator dedicado. A mesma sessão pode ser controlada pela interface PySide6 ou por ferramentas MCP locais usadas pelo Codex.

O projeto não implementa uma máquina virtual Android. Ele controla o Android Emulator oficial e renderiza capturas ADB dentro de uma interface desktop.

Recursos

  • descoberta automática do Android SDK no Windows;

  • inicialização de AVDs dedicados com prefixo ApkPreview_;

  • instalação e atualização de APKs com adb install -r;

  • abertura de aplicativos instalados;

  • preview atualizado dentro da janela desktop;

  • cliques no preview convertidos em coordenadas Android;

  • botões Voltar, Início e Recentes;

  • perfis de celular e tablet;

  • orientação retrato e paisagem;

  • tema claro, escuro ou definido pelo sistema;

  • captura PNG e inspeção da árvore UI;

  • servidor MCP local sem comandos shell arbitrários;

  • launcher Windows sem console e ponte nativa para isolamento de DLLs Qt/ADB.

Related MCP server: mobila

Arquitetura

flowchart LR
    UI[Desktop PySide6] --> C[AndroidController]
    MCP[Servidor MCP stdio] --> C
    C --> R[ProcessRunner]
    R --> B[ProcessBridge Windows]
    B --> ADB[adb / emulator]
    ADB --> AVD[AVD ApkPreview_*]
    AVD --> PNG[Capturas e árvore UI]
    PNG --> UI
    PNG --> MCP

AndroidController concentra validação, instalação, navegação e captura. ProcessRunner executa somente binários conhecidos usando listas de argumentos e shell=False. No Windows, ProcessBridge.exe cria uma fronteira limpa entre as DLLs carregadas pelo Qt e as ferramentas do Android SDK.

Requisitos

  • Windows 11;

  • Python 3.12 ou superior;

  • uv;

  • JDK 21 para projetos Android que precisem ser compilados;

  • Android SDK Platform Tools e Android Emulator;

  • imagem Android x86_64 compatível;

  • virtualização de hardware habilitada.

O SDK é procurado nesta ordem: ANDROID_HOME, ANDROID_SDK_ROOT, depois %LOCALAPPDATA%\Android\Sdk.

Instalação para desenvolvimento

git clone https://github.com/Famel-svg/apk-preview-desktop.git
cd apk-preview-desktop
uv sync --all-groups

Crie pelo Android Studio um AVD cujo nome comece por ApkPreview_. Exemplo: ApkPreview_Phone_API37.

Executar

uv run apk-preview-desktop

Fluxo básico:

  1. selecione o AVD;

  2. clique em Iniciar;

  3. escolha um arquivo .apk;

  4. clique em Instalar APK;

  5. selecione o pacote instalado e clique em Abrir app;

  6. use o preview, perfis de tela e controles Android.

Servidor MCP

uv run apk-preview-mcp

Ferramenta

Função

apk_preview_doctor

Diagnostica SDK, AVDs e dispositivos

list_avds

Lista AVDs dedicados permitidos

start_session

Inicializa ou reutiliza um AVD

install_apk

Instala APK local validado

list_apps

Lista pacotes de terceiros instalados

launch_app

Abre um pacote Android

configure_display

Troca perfil, orientação e tema

inspect_screen

Captura PNG e árvore UI

interact

Envia toque ou controle de navegação

stop_session

Encerra a sessão dedicada

Plugin portátil: plugins/apk-preview/. Configurações com caminhos absolutos da máquina não fazem parte do repositório.

Gerar executável Windows

.\scripts\build-windows.ps1

Saída: dist/APK Preview Desktop/APK Preview Desktop.exe.

O launcher usa .venv do projeto. Execute uv sync antes de abrir o executável. Artefatos binários não são versionados.

Testes e qualidade

uv run pytest -q
uv run ruff check .
uv run pyright

Estrutura

src/apk_preview/             aplicação, Android e MCP
tests/                       testes automatizados
native/                      launcher e ponte de processos em C#
scripts/                     build Windows
plugins/apk-preview/         plugin MCP portátil
APK_PREVIEW_DESKTOP_SPEC.md  especificação funcional

Segurança

  • dispositivos físicos são recusados;

  • somente seriais emulator-* confirmados como QEMU são aceitos;

  • somente AVDs ApkPreview_* são controlados;

  • APK precisa existir localmente e possuir extensão .apk;

  • subprocessos não recebem texto shell arbitrário;

  • capturas temporárias usam nomes únicos e são removidas;

  • stop_session não apaga AVD nem dados;

  • credenciais, APKs, executáveis, artefatos e configurações locais são ignorados.

Use apenas APKs próprios ou autorizados. Use dados sintéticos e contas de teste.

Solução de problemas

Android SDK não encontrado

Defina ANDROID_HOME e confirme platform-tools/adb.exe e emulator/emulator.exe.

AVD não aparece

Crie ou renomeie um AVD usando prefixo ApkPreview_.

Erro de DLL do Qt ou console piscando

Recompile com scripts/build-windows.ps1. Launcher e ponte são aplicativos Windows sem console.

Preview não atualiza

Confirme boot concluído e estado device em adb devices -l; clique em Atualizar.

Limitações

  • suporte principal: Windows;

  • requer Android Emulator oficial;

  • não substitui testes instrumentados do APK;

  • não contorna autenticação, permissões Android ou proteções do aplicativo;

  • executável local depende do ambiente Python sincronizado.

Licença

Nenhuma licença pública definida. Todos os direitos permanecem com o autor.

Available Tools

10 tools
apk_preview_configure_displayB

Switch emulator screen profile, orientation, theme and font scale.

Inputs: profile (required), theme, font_scale, orientation. Returns: object

apk_preview_doctorA
Read-only

Diagnose Android SDK, Emulator, ADB, AVDs and connected devices.

Inputs: no named parameters. Returns: object

apk_preview_inspect_screenA
Read-only

Return current emulator PNG and optional accessible UI tree.

Inputs: include_ui_tree.

apk_preview_install_apkA

Install or replace one local APK on active dedicated emulator.

Inputs: apk_path (required). Returns: object

apk_preview_interactB

Tap coordinates or press an allowed Android navigation key.

Inputs: action (required), x, y. Returns: object

apk_preview_launch_appB

Launch installed package main activity.

Inputs: package (required). Returns: object

apk_preview_list_appsA
Read-only

List third-party packages installed in active emulator.

Inputs: no named parameters. Returns: object

apk_preview_list_avdsA
Read-only

List dedicated AVDs accepted by APK Preview.

Inputs: no named parameters. Returns: object

apk_preview_start_sessionC

Start a dedicated AVD and save shared session.

Inputs: avd (required), visible, timeout_seconds. Returns: object

apk_preview_stop_sessionA

Stop active emulator without deleting AVD or artifacts.

Inputs: no named parameters. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool targets a distinct stage or action in the APK preview workflow: diagnosis, AVD listing, session lifecycle, installation, app listing, launching, display configuration, screen inspection, interaction, and session teardown. There is no meaningful overlap or ambiguity between tool purposes.

    Naming Consistency5/5

    All tools follow the same `apk_preview_` prefix with a clear verb_noun pattern (e.g., start_session, install_apk, stop_session). This is highly predictable and consistent across the entire set.

    Tool Count5/5

    Ten tools provide a focused but complete toolset for the APK preview use case without unnecessary bloat. Each tool earns its place in the emulator workflow.

    Completeness4/5

    The toolset covers the full preview lifecycle: setup, session start, install, launch, inspect, interact, configure, and stop. Minor gaps exist such as no explicit uninstall or text input, but these do not block the core preview workflow.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI clients to control an Android emulator via MCP, allowing tasks like tapping, typing, swiping, taking screenshots, and installing apps through natural language commands.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to fully control an Android emulator via MCP, including UI interaction, screenshots, APK installation, logging, and clipboard access, with optional live browser viewing for humans.
      2
      MIT