Skip to main content
Glama

Claude Mobile

Servidor MCP para automatización móvil y de escritorio: Android (vía ADB), iOS Simulator (vía simctl), Escritorio (Compose Multiplatform) y Aurora OS (vía audb). Como Claude en Chrome pero para dispositivos móviles y aplicaciones de escritorio.

Controla tu teléfono Android, emulador, iOS Simulator, aplicaciones de escritorio o dispositivo Aurora OS con lenguaje natural a través de Claude.

Características

  • API unificada — Los mismos comandos funcionan para Android, iOS, Escritorio y Aurora OS

  • Capturas de pantalla inteligentes — Comprimidas automáticamente para un procesamiento óptimo por parte del LLM (¡se acabó el exceso de tamaño de imagen!)

  • Capturas de pantalla anotadas — Capturas con cuadros delimitadores de colores y etiquetas de elementos numeradas para una comprensión visual de la interfaz

  • Gestión de permisos — Concede, revoca y restablece permisos de aplicaciones mediante programación (permisos de tiempo de ejecución de Android, servicios de privacidad de iOS)

  • Registros del dispositivo — Lee logcat/registros del sistema con filtros para depuración

  • Interacciones de interfaz — Toca, mantén presionado, desliza por coordenadas o texto del elemento

  • Entrada de texto — Escribe en campos enfocados

  • Control de aplicaciones — Inicia, detén e instala aplicaciones

  • Selección de plataforma — Apunta explícitamente a Android, iOS, Escritorio o Aurora OS

  • Soporte de escritorio — Prueba aplicaciones de escritorio Compose Multiplatform con gestión de ventanas, portapapeles y métricas de rendimiento

Instalación

CLI nativa vía Homebrew (macOS)

brew tap AlexGladkov/claude-in-mobile https://github.com/AlexGladkov/claude-in-mobile
brew install claude-in-mobile

La CLI envuelve todas las herramientas de automatización de dispositivos además de la gestión de tiendas (Google Play, Huawei AppGallery, RuStore):

claude-in-mobile screenshot android
claude-in-mobile tap android 540 960 --from-size 540x960
claude-in-mobile store upload --package com.example.app --file app.aab
claude-in-mobile huawei upload --package com.example.app --file app.aab
claude-in-mobile rustore upload --package com.example.app --file app.apk

Comando de una línea (cualquier cliente)

Usando add-mcp — detecta automáticamente los clientes instalados:

npx add-mcp claude-in-mobile -y

O apunta a un cliente específico:

npx add-mcp claude-in-mobile -a claude-code -y
npx add-mcp claude-in-mobile -a opencode -y
npx add-mcp claude-in-mobile -a cursor -y

Claude Code CLI

claude mcp add --transport stdio mobile -- npx claude-in-mobile@latest

Para añadir globalmente (disponible en todos los proyectos):

claude mcp add --scope user --transport stdio mobile -- npx claude-in-mobile@latest

OpenCode

Usa la configuración interactiva:

opencode mcp add

O añade manualmente a opencode.json (raíz del proyecto o ~/.config/opencode/opencode.json):

{
  "mcp": {
    "mobile": {
      "type": "local",
      "command": ["npx", "-y", "claude-in-mobile"],
      "enabled": true
    }
  }
}

Cursor

Añade a .cursor/mcp.json:

{
  "mcpServers": {
    "mobile": {
      "command": "npx",
      "args": ["-y", "claude-in-mobile"]
    }
  }
}

Cualquier cliente MCP

Imprime un fragmento de configuración para tu cliente:

npx claude-in-mobile --init <client-name>
# Supported: opencode, cursor, claude-code

Desde npm

npx claude-in-mobile

Desde el código fuente

git clone https://github.com/AlexGladkov/claude-in-mobile.git
cd claude-in-mobile
npm install
npm run build:all  # Builds TypeScript + Desktop companion

Nota: Para soporte de escritorio, necesitas ejecutar npm run build:desktop (o build:all) para compilar la aplicación complementaria de escritorio.

Usando una compilación local con clientes MCP

Después de compilar desde el código fuente, apunta tu cliente MCP al dist/index.js local en lugar de usar npx:

{
  "mcpServers": {
    "mobile": {
      "command": "node",
      "args": ["/path/to/claude-in-mobile/dist/index.js"]
    }
  }
}

Para OpenCode (opencode.json):

{
  "mcp": {
    "mobile": {
      "type": "local",
      "command": ["node", "/path/to/claude-in-mobile/dist/index.js"],
      "enabled": true
    }
  }
}

Configuración manual

Añade a tus ajustes de Claude Code (~/.claude.json o ajustes del proyecto):

{
  "mcpServers": {
    "mobile": {
      "command": "npx",
      "args": ["-y", "claude-in-mobile"]
    }
  }
}

Windows

claude mcp add --transport stdio mobile -- cmd /c npx claude-in-mobile@latest

Requisitos

Android

  • ADB instalado y en el PATH

  • Dispositivo Android conectado (depuración USB habilitada) o emulador

iOS

  • macOS con Xcode instalado

  • iOS Simulator (aún no hay soporte para dispositivos físicos)

  • WebDriverAgent para inspección completa de la interfaz e interacción basada en elementos:

    npm install -g appium
    appium driver install xcuitest

    O establece la variable de entorno WDA_PATH a la ubicación personalizada de WebDriverAgent

Escritorio

  • macOS (soporte para Windows/Linux planeado)

  • JDK 17+ para compilar el complemento de escritorio

  • Aplicación de escritorio Compose Multiplatform para probar

Aurora OS

  • audb CLI instalado y en el PATH (cargo install audb-client)

  • Dispositivo Aurora OS conectado con SSH habilitado

  • Python requerido en el dispositivo para tocar/deslizar: devel-su pkcon install python

Herramientas disponibles

Herramientas principales (todas las plataformas)

Herramienta

Android

iOS

Escritorio

Aurora

Descripción

list_devices

Lista todos los dispositivos conectados

set_device

Selecciona el dispositivo activo

screenshot

Toma una captura de pantalla

tap

⚠️

Toca en coordenadas o por texto/etiqueta (iOS: WDA requerido para tocar elementos)

long_press

Gesto de mantener presionado

swipe

⚠️

Desliza en dirección o coordenadas (requiere Python en Aurora)

input_text

Escribe texto

press_key

Presiona botones físicos

launch_app

Inicia aplicación

stop_app

Detén aplicación

install_app

Instala APK/.app/.rpm

list_apps

Lista aplicaciones instaladas (solo Aurora)

get_ui

Obtén jerarquía de interfaz (iOS: requiere WebDriverAgent)

find_element

Encuentra elementos por texto/id/etiqueta (iOS: requiere WebDriverAgent)

annotate_screenshot

Captura de pantalla con cuadros delimitadores de colores y etiquetas numeradas

grant_permission

Concede permiso de aplicación (Android: tiempo de ejecución, iOS: servicio de privacidad)

revoke_permission

Revoca permiso de aplicación

reset_permissions

Restablece todos los permisos de una aplicación

get_current_activity

Obtén actividad en primer plano

open_url

Abre URL en el navegador (aún no implementado en Aurora)

shell

Ejecuta comando de shell

wait

Espera durante un tiempo

get_logs

Obtén registros del dispositivo (logcat/registro del sistema)

clear_logs

⚠️

Limpia el búfer de registros

get_system_info

Información de batería y memoria

wait_for_element

Espera a que aparezca un elemento (sondeo + tiempo de espera)

assert_visible

Asegura que el elemento sea visible (pasa/falla)

assert_not_exists

Asegura que el elemento NO exista (pasa/falla)

batch_commands

Ejecuta múltiples comandos en un solo viaje de ida y vuelta

get_webview

Inspecciona WebView vía Chrome DevTools Protocol

push_file

Sube archivo (solo Aurora)

pull_file

Descarga archivo (solo Aurora)

Herramientas específicas de escritorio

Herramienta

Descripción

set_target

Establece la plataforma objetivo (android/ios/desktop)

get_target

Obtén la plataforma objetivo actual

launch_desktop_app

Inicia una aplicación de escritorio Compose

stop_desktop_app

Detén la aplicación de escritorio en ejecución

get_window_info

Obtén la posición y tamaño de la ventana de escritorio

focus_window

Trae la ventana de escritorio al frente

resize_window

Cambia el tamaño de la ventana de escritorio

get_clipboard

Obtén el contenido del portapapeles del sistema

set_clipboard

Establece el contenido del portapapeles del sistema

get_performance_metrics

Obtén el uso de CPU/memoria de la aplicación de escritorio

Para documentación detallada de la API de escritorio, consulta Desktop Specification

Ejemplos de uso

Simplemente habla con Claude de forma natural:

"Show me all connected devices"
"Take a screenshot of the Android emulator"
"Take a screenshot on iOS"
"Tap on Settings"
"Swipe down to scroll"
"Type 'hello world' in the search field"
"Press the back button on Android"
"Open Safari on iOS"
"Switch to iOS simulator"
"Run the app on both platforms"

Gestión de permisos

"Grant camera permission to com.example.app on Android"
"Revoke location access from com.example.app"
"Reset all permissions for com.apple.Maps on iOS"

Capturas de pantalla anotadas

"Take an annotated screenshot"  → Screenshot with green (clickable) and red (non-clickable) bounding boxes + numbered element index

Selección de plataforma

Puedes especificar explícitamente la plataforma:

"Screenshot on android"     → Uses Android device
"Screenshot on ios"         → Uses iOS simulator
"Screenshot on desktop"     → Uses Desktop app
"Screenshot on aurora"      → Uses Aurora OS device
"Screenshot"                → Uses last active device

O establecer el dispositivo activo:

"Use the iPhone 15 simulator"
"Switch to the Android emulator"
"Switch to desktop"
"Switch to Aurora device"

Ejemplos de escritorio

"Launch my desktop app from /path/to/app"
"Take a screenshot of the desktop app"
"Get window info"
"Resize window to 1280x720"
"Tap at coordinates 100, 200"
"Get clipboard content"
"Set clipboard to 'test text'"
"Get performance metrics"
"Stop the desktop app"

Ejemplos de Aurora

"List all Aurora devices"
"Take a screenshot on Aurora"
"Tap at coordinates 100, 200 on Aurora"
"Launch ru.example.app on Aurora"
"List installed apps on Aurora device"
"Get logs from Aurora device"
"Push file.txt to /home/defaultuser/ on Aurora device"

CLI nativa

Un binario nativo de Rust de 2 MB con todos los mismos comandos. Sin Node.js, sin dependencias.

Instalar CLI

brew tap AlexGladkov/claude-in-mobile
brew install claude-in-mobile

O descarga desde Releases.

Ventajas sobre MCP

  • Instalación fácilbrew install o copia un único binario de 2 MB

  • Sin dependencias — sin Node.js, sin npm, nada

  • Uso desde terminal — ejecuta comandos directamente, no se necesita Claude Code ni cliente MCP

  • Automatización de pruebas — escribe scripts .sh universales para cualquier plataforma sin aprender los internos de la plataforma

  • Eficiente en tokens — la documentación de habilidades se carga solo cuando se usa; MCP carga todos los esquemas de herramientas en cada solicitud, lo que se acumula rápidamente durante una sesión

  • Rápido — ~5ms de inicio de comando (Rust) vs ~500ms (Node.js MCP)

  • Listo para CI/CD — códigos de salida, stdout/stderr, se ejecuta en cualquier lugar

Ejemplo de script de prueba

#!/bin/bash
claude-in-mobile launch android com.example.app
claude-in-mobile wait 2000
claude-in-mobile tap android 0 0 --text "Login"
claude-in-mobile input android "test@example.com"
claude-in-mobile screenshot android -o result.png
claude-in-mobile ui-dump android | grep "Welcome" && echo "PASS" || echo "FAIL"

Plugin de Claude Code

claude plugin marketplace add AlexGladkov/claude-in-mobile
claude plugin install claude-in-mobile@claude-in-mobile

Después de instalar, Claude Code controla los dispositivos con lenguaje natural. La habilidad se carga en el contexto solo bajo demanda — sin sobrecarga de tokens cuando no está en uso.

Consulta cli/README.md para la documentación completa de la CLI.

Configuración de iOS WebDriverAgent

Para una inspección completa de la interfaz de iOS e interacción basada en elementos, se requiere WebDriverAgent. Habilita:

  • get_ui - Inspección del árbol de accesibilidad JSON

  • tap con parámetros label o text - Tocar basado en elementos

  • find_element - Descubrimiento y consulta de elementos

  • swipe - Simulación de gestos mejorada

Instalación

Automática (vía Appium):

npm install -g appium
appium driver install xcuitest

Manual: Establece la variable de entorno WDA_PATH a tu ubicación de WebDriverAgent:

export WDA_PATH=/path/to/WebDriverAgent

Primer uso

En el primer uso, WebDriverAgent será automáticamente:

  1. Descubierto desde la instalación de Appium o WDA_PATH

  2. Compilado con xcodebuild (una vez, ~2 minutos)

  3. Iniciado en el simulador de iOS

  4. Conectado vía HTTP en el puerto 8100+

Solución de problemas

La compilación falla:

# Install Xcode command line tools
xcode-select --install

# Accept license
sudo xcodebuild -license accept

# Set Xcode path
sudo xcode-select -s /Applications/Xcode.app

La sesión falla:

  • Asegúrate de que el simulador esté arrancado: xcrun simctl list | grep Booted

  • Comprueba la disponibilidad del puerto: lsof -i :8100

  • Intenta reiniciar el simulador

Prueba manual:

cd ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
xcodebuild test -project WebDriverAgent.xcodeproj \
  -scheme WebDriverAgentRunner \
  -destination 'platform=iOS Simulator,id=<DEVICE_UDID>'

Cómo funciona

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│ Claude Code │────▶│                  │────▶│  Android (ADB)  │
├─────────────┤     │  Claude Mobile   │     └─────────────────┘
│  OpenCode   │────▶│   MCP Server     │     ┌─────────────────┐
├─────────────┤     │                  │────▶│ iOS (simctl+WDA)│
│   Cursor    │────▶│  (auto-detects   │     └─────────────────┘
├─────────────┤     │   client via     │     ┌─────────────────┐
│  Any MCP    │────▶│   MCP protocol)  │────▶│ Desktop (Compose)│
│   Client    │     │                  │     └─────────────────┘
└─────────────┘     │                  │     ┌─────────────────┐
                    │                  │────▶│ Aurora (audb)   │
                    └──────────────────┘     └─────────────────┘
  1. Claude envía comandos a través del protocolo MCP

  2. El servidor enruta a la plataforma apropiada (ADB, simctl+WDA, complemento de escritorio o audb)

  3. Los comandos se ejecutan en tu dispositivo o aplicación de escritorio

  4. Los resultados (capturas de pantalla, datos de interfaz, métricas) regresan a Claude

Licencia

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlexGladkov/claude-in-mobile'

If you have feedback or need assistance with the MCP directory API, please join our Discord server