Claude Mobile
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-mobileLa 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.apkComando de una línea (cualquier cliente)
Usando add-mcp — detecta automáticamente los clientes instalados:
npx add-mcp claude-in-mobile -yO 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 -yClaude Code CLI
claude mcp add --transport stdio mobile -- npx claude-in-mobile@latestPara añadir globalmente (disponible en todos los proyectos):
claude mcp add --scope user --transport stdio mobile -- npx claude-in-mobile@latestOpenCode
Usa la configuración interactiva:
opencode mcp addO 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-codeDesde npm
npx claude-in-mobileDesde 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 companionNota: Para soporte de escritorio, necesitas ejecutar
npm run build:desktop(obuild: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@latestRequisitos
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 xcuitestO establece la variable de entorno
WDA_PATHa 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 |
| ✅ | ✅ | ✅ | ✅ | Lista todos los dispositivos conectados |
| ✅ | ✅ | ✅ | ✅ | Selecciona el dispositivo activo |
| ✅ | ✅ | ✅ | ✅ | Toma una captura de pantalla |
| ✅ | ✅ | ✅ | ⚠️ | Toca en coordenadas o por texto/etiqueta (iOS: WDA requerido para tocar elementos) |
| ✅ | ✅ | ✅ | ✅ | Gesto de mantener presionado |
| ✅ | ✅ | ✅ | ⚠️ | Desliza en dirección o coordenadas (requiere Python en Aurora) |
| ✅ | ✅ | ✅ | ❌ | Escribe texto |
| ✅ | ✅ | ✅ | ✅ | Presiona botones físicos |
| ✅ | ✅ | ❌ | ✅ | Inicia aplicación |
| ✅ | ✅ | ❌ | ✅ | Detén aplicación |
| ✅ | ✅ | ❌ | ✅ | Instala APK/.app/.rpm |
| ❌ | ❌ | ❌ | ✅ | Lista aplicaciones instaladas (solo Aurora) |
| ✅ | ✅ | ✅ | ❌ | Obtén jerarquía de interfaz (iOS: requiere WebDriverAgent) |
| ✅ | ✅ | ✅ | ❌ | Encuentra elementos por texto/id/etiqueta (iOS: requiere WebDriverAgent) |
| ✅ | ✅ | ❌ | ❌ | Captura de pantalla con cuadros delimitadores de colores y etiquetas numeradas |
| ✅ | ✅ | ❌ | ❌ | Concede permiso de aplicación (Android: tiempo de ejecución, iOS: servicio de privacidad) |
| ✅ | ✅ | ❌ | ❌ | Revoca permiso de aplicación |
| ✅ | ✅ | ❌ | ❌ | Restablece todos los permisos de una aplicación |
| ✅ | ❌ | ❌ | ❌ | Obtén actividad en primer plano |
| ✅ | ✅ | ❌ | ❌ | Abre URL en el navegador (aún no implementado en Aurora) |
| ✅ | ✅ | ❌ | ✅ | Ejecuta comando de shell |
| ✅ | ✅ | ✅ | ✅ | Espera durante un tiempo |
| ✅ | ✅ | ❌ | ✅ | Obtén registros del dispositivo (logcat/registro del sistema) |
| ✅ | ⚠️ | ❌ | ✅ | Limpia el búfer de registros |
| ✅ | ❌ | ❌ | ✅ | Información de batería y memoria |
| ✅ | ✅ | ❌ | ❌ | Espera a que aparezca un elemento (sondeo + tiempo de espera) |
| ✅ | ✅ | ❌ | ❌ | Asegura que el elemento sea visible (pasa/falla) |
| ✅ | ✅ | ❌ | ❌ | Asegura que el elemento NO exista (pasa/falla) |
| ✅ | ✅ | ✅ | ✅ | Ejecuta múltiples comandos en un solo viaje de ida y vuelta |
| ✅ | ❌ | ❌ | ❌ | Inspecciona WebView vía Chrome DevTools Protocol |
| ❌ | ❌ | ❌ | ✅ | Sube archivo (solo Aurora) |
| ❌ | ❌ | ❌ | ✅ | Descarga archivo (solo Aurora) |
Herramientas específicas de escritorio
Herramienta | Descripción |
| Establece la plataforma objetivo (android/ios/desktop) |
| Obtén la plataforma objetivo actual |
| Inicia una aplicación de escritorio Compose |
| Detén la aplicación de escritorio en ejecución |
| Obtén la posición y tamaño de la ventana de escritorio |
| Trae la ventana de escritorio al frente |
| Cambia el tamaño de la ventana de escritorio |
| Obtén el contenido del portapapeles del sistema |
| Establece el contenido del portapapeles del sistema |
| 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 indexSelecció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 deviceO 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-mobileO descarga desde Releases.
Ventajas sobre MCP
Instalación fácil —
brew installo copia un único binario de 2 MBSin 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
.shuniversales para cualquier plataforma sin aprender los internos de la plataformaEficiente 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-mobileDespué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 JSONtapcon parámetroslabelotext- Tocar basado en elementosfind_element- Descubrimiento y consulta de elementosswipe- Simulación de gestos mejorada
Instalación
Automática (vía Appium):
npm install -g appium
appium driver install xcuitestManual:
Establece la variable de entorno WDA_PATH a tu ubicación de WebDriverAgent:
export WDA_PATH=/path/to/WebDriverAgentPrimer uso
En el primer uso, WebDriverAgent será automáticamente:
Descubierto desde la instalación de Appium o
WDA_PATHCompilado con xcodebuild (una vez, ~2 minutos)
Iniciado en el simulador de iOS
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.appLa sesión falla:
Asegúrate de que el simulador esté arrancado:
xcrun simctl list | grep BootedComprueba la disponibilidad del puerto:
lsof -i :8100Intenta 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) │
└──────────────────┘ └─────────────────┘Claude envía comandos a través del protocolo MCP
El servidor enruta a la plataforma apropiada (ADB, simctl+WDA, complemento de escritorio o audb)
Los comandos se ejecutan en tu dispositivo o aplicación de escritorio
Los resultados (capturas de pantalla, datos de interfaz, métricas) regresan a Claude
Licencia
MIT
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