/ Diretório / Playground / Android-MCP
● Comunidade CursorTouch ⚡ Instantâneo

Android-MCP

por CursorTouch · CursorTouch/Android-MCP

Drive an Android device or emulator from chat — tap, swipe, type, read notifications — for QA automation or demos.

Android-MCP by CursorTouch wraps ADB to give MCP clients tap, swipe, type, hardware-key, notification, and shell-command access to Android 10+ devices. Great for UI test scaffolding, repeatable demos, or automating boring app flows. Requires ADB and a connected device/emulator.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

android.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "android": {
      "command": "uvx",
      "args": [
        "Android-MCP"
      ],
      "_inferred": true
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "android": {
      "command": "uvx",
      "args": [
        "Android-MCP"
      ],
      "_inferred": true
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "android": {
      "command": "uvx",
      "args": [
        "Android-MCP"
      ],
      "_inferred": true
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "android": {
      "command": "uvx",
      "args": [
        "Android-MCP"
      ],
      "_inferred": true
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "android",
      "command": "uvx",
      "args": [
        "Android-MCP"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "android": {
      "command": {
        "path": "uvx",
        "args": [
          "Android-MCP"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add android -- uvx Android-MCP

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: Android-MCP

Automate a smoke test of your Android app

👤 Mobile QA engineers, dev teams without a test framework ⏱ ~30 min intermediate

Quando usar: You want 'app opens, login, main screen loads' as an auto-run before every release.

Pré-requisitos
  • ADB installed and device connected — Android Studio ships ADB; adb devices should show your device
  • Device has USB debugging or wireless debugging on — Settings > Developer Options > USB Debugging
Fluxo
  1. Capture current state
    Get the UI state — what screen am I on and what elements are visible?✓ Copiado
    → UI tree with labeled elements
  2. Execute the flow
    Tap the 'Sign In' button, type '[email protected]' in the email field, 'P@ss' in password, submit.✓ Copiado
    → App transitions to home
  3. Assert success
    Verify the home screen's 'Welcome' banner is visible. If not, fail.✓ Copiado
    → Pass/fail verdict

Resultado: A scriptable smoke test you can run on every build.

Armadilhas
  • Coordinates change between device sizes — Prefer State-Tool queries that find elements by label/id, then click the returned coordinates
  • Flow breaks on A/B tests — Pin build config or disable experiments for QA builds
Combine com: github

Run a repeatable product demo on a live device

👤 Sales engineers, product folks doing investor demos ⏱ ~20 min intermediate

Quando usar: You want the app driven hands-free while you talk.

Fluxo
  1. Script the demo
    Script these 5 steps with 3s pauses: open app, tap Explore, scroll to Category B, tap item X, take a screenshot.✓ Copiado
    → Step plan
  2. Dry run
    Execute. Pause between steps so I can narrate.✓ Copiado
    → Device follows

Resultado: A glitch-free demo you can re-run identically.

Triage notifications on a dev device

👤 Developers testing notification flows ⏱ ~10 min beginner

Quando usar: Verifying push notifications arrive and look right.

Fluxo
  1. Read recent notifications
    List active notifications. Flag any from com.myapp.prod.✓ Copiado
    → Filtered list
  2. Inspect one
    Pull the full content of the latest myapp notification; does it match our expected format?✓ Copiado
    → Diff against expected

Resultado: Fast confirmation that your push pipeline works.

Combinações

Combine com outros MCPs para 10× de alavancagem

android + github

Run smoke tests on PRs and post results

When PR #88 has a new APK artifact, install to the connected device, run the smoke test flow, comment results on the PR.✓ Copiado
android + filesystem

Save screenshots and logs as QA artifacts

Take a screenshot after each step of the demo flow and save to ./qa/2026-04-14/step-N.png.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
State-Tool (none) Always first — know what's on screen free
Click-Tool x: int, y: int Tap at a point returned by State free
Long-Click-Tool x, y, duration_ms? Context menus free
Type-Tool text: str, clear_first?: bool Enter text in the focused field free
Swipe-Tool x1,y1,x2,y2, duration_ms? Scroll or gesture free
Drag-Tool start_x,y,end_x,y Drag-and-drop flows free
Press-Tool key: Back|Home|VolumeUp|... Hardware keys / system nav free
Wait-Tool ms: int Wait for animation/transition free
Notification-Tool (none) or package: str Inspect notifications free
Shell-Tool cmd: str Escape hatch for logs, am/pm commands, etc. free (but powerful — dangerous)

Custo e limites

O que custa rodar

Cota de API
None — all local via ADB
Tokens por chamada
State tool returns UI trees that can be 2-10k tokens on dense screens
Monetário
Free
Dica
Ask State to filter by a query ('find buttons with Sign In') rather than dump the whole tree.

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: None; ADB trust is on the device
Saída de dados: All local; ADB over USB or local Wi-Fi only
Nunca conceda: Shell-Tool on devices with production data — it can read private files

Solução de problemas

Erros comuns e correções

adb: device unauthorized

Accept the fingerprint prompt on the device screen, then retry.

Verificar: adb devices
No devices found

Check USB debugging is on and USB cable supports data. For WiFi, verify ip:port with adb connect.

Verificar: adb devices
Coordinates off on different screen

Use State-Tool to get current coords for the labeled element rather than hardcoded x,y.

Verificar: Call State before click
Type-Tool inserts garbage characters

Device uses a non-US keyboard; switch to US or use adb shell input text via Shell-Tool.

Verificar: adb shell settings get secure default_input_method

Alternativas

Android-MCP vs. outros

AlternativaQuando usarTroca
AppiumYou want a full QA framework with assertions and reportsHeavy setup; no MCP layer
MaestroYAML-based UI testsNo MCP integration

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills