Skip to main content
Glama

phantom-mcp

Servidor MCP que permite a Claude Code ver y controlar simuladores de iOS, emuladores de Android y dispositivos reales. 24 herramientas para probar aplicaciones móviles sin salir de la terminal.

Claude puede tomar capturas de pantalla, leer la pantalla, tocar, desplazarse, rellenar campos, verificar aserciones, grabar videos — automáticamente, en iOS y Android.

Se genera automáticamente un informe de prueba con capturas de pantalla en cada sesión de prueba.


Arquitectura

Claude Code
    | MCP protocol (stdio)
    v
Phantom (Node.js TypeScript)
    |                       |
    v                       v
iOS                      Android
  xcrun simctl             ADB
  WebDriverAgent           UIAutomator
  (localhost:8100)         (adb shell)
    |                       |
    v                       v
Simulateur / iPhone    Emulateur / Device

Related MCP server: mobile-device-mcp

Requisitos previos

Herramienta

Requerido para

Cómo verificar

macOS 13+

todo

-

Xcode 15+

iOS

xcode-select -p

Node.js 18+

todo

node --version

Appium 3+

iOS (WDA)

appium --version

xcuitest driver

iOS (WDA)

appium driver list --installed

Android SDK

Android

adb version


Instalación

Opción A — npm (recomendado)

# 1. Installer le package
npm install -g phantom-mcp

# 2. Installer Appium + driver iOS
npm install -g appium
appium driver install xcuitest

# 3. Enregistrer dans Claude Code
claude mcp add -s user phantom -- npx phantom-mcp

Opción B — desde las fuentes

git clone https://github.com/nthimpulse/phantom-mcp.git
cd phantom-mcp
npm install
npm run build
claude mcp add -s user phantom -- node "$(pwd)/build/index.js"

Las 24 herramientas

Gestión de dispositivos

Herramienta

Descripción

list_devices

Lista todos los dispositivos (simuladores iOS + emuladores Android + dispositivos reales)

set_device

Selecciona el dispositivo activo. Arranca automáticamente si está apagado. Prepara automáticamente el dispositivo (se puede desactivar mediante skip_setup)

prepare_device

Pone el dispositivo en un estado limpio: limpiar portapapeles / sobrescritura de barra de estado / descartar teclado / forzar QWERTY en iOS

Observación

Herramienta

Descripción

screenshot

Captura la pantalla del dispositivo activo

get_ui_tree

Árbol de accesibilidad con índice [N] para cada elemento

wait_for_element

Espera a que aparezca un elemento (con tiempo de espera)

scroll_until_visible

Desplaza hasta encontrar un elemento

Aserciones

Herramienta

Descripción

assert_visible

Verifica que un texto ESTÁ en la pantalla

assert_not_visible

Verifica que un texto NO ESTÁ en la pantalla

Interacción

Herramienta

Descripción

tap

Toca (por índice, coordenadas o texto). Descarta automáticamente el teclado si el objetivo está oculto

long_press

Pulsación larga (menús contextuales)

type_text

Entrada de texto con opción de limpiar y opción de verificar para volver a leer el valor después de escribir

swipe

Deslizar (arriba/abajo/izquierda/derecha)

dismiss_keyboard

Cierra el teclado virtual (no hace nada si no está visible)

Navegación

Herramienta

Descripción

deep_link

Abre una URL / enlace profundo

Acciones del dispositivo

Herramienta

Descripción

shake

Simula una sacudida

rotate

Cambia la orientación (vertical/horizontal)

video_record

Inicia/detiene la grabación de video

Ciclo de vida de la aplicación

Herramienta

Descripción

launch_app

Inicia una aplicación por ID de paquete / nombre de paquete

kill_app

Cierra una aplicación

Análisis y Automatización (Nivel 3)

Herramienta

Descripción

accessibility_audit

Auditoría de accesibilidad: etiquetas faltantes, objetivos táctiles demasiado pequeños, imágenes sin texto alternativo

test_report

Informe de prueba automático: start para comenzar el seguimiento, end para generar el markdown. Cada acción se rastrea automáticamente.

visual_diff

Compara dos capturas de pantalla píxel por píxel para detectar regresiones visuales

multi_device

Ejecuta la misma acción en varios dispositivos en un solo comando


Funcionamiento automático

Selección de dispositivo

Phantom nunca arranca un dispositivo automáticamente. Te pide que elijas:

  1. Si solo hay 1 dispositivo activo, lo usa automáticamente

  2. Si hay varios, te pide que elijas con set_device

  3. Si no hay ninguno, te muestra la lista de dispositivos disponibles

Auto-lanzamiento de WDA (iOS)

WebDriverAgent se lanza automáticamente con la primera herramienta de iOS que lo necesite. El primer lanzamiento tarda ~60-90s (compilación de Xcode), luego es instantáneo.

ADB multidispositivo (Android)

Todos los comandos ADB se dirigen al dispositivo seleccionado mediante -s <serial>. Sin confusión multidispositivo.

Entrada de texto (compatible con AZERTY)

La entrada utiliza pbcopy + Cmd+V (pegar) en lugar del teclado virtual. Es instantáneo y funciona en todas las distribuciones de teclado (AZERTY, QWERTY, etc.).

Informe de prueba automático

Cada acción (tocar, escribir, deslizar, afirmar...) se registra automáticamente con una captura de pantalla. Al final de la prueba, se genera un informe markdown en /tmp/phantom-report-xxx/.


Seguridad

  • Todos los comandos del sistema pasan por execFile (sin shell)

  • Entradas validadas por regex: IDs de paquete, UDIDs, nombres de paquete, nombres de AVD, URLs

  • Predicados de iOS escapados (anti-inyección)

  • Texto de Android escapado para el shell del dispositivo

  • Cero as any, cero exec() shell


Configuración

Variables de entorno opcionales:

  • PHANTOM_WDA_PATH — ruta hacia WebDriverAgent (predeterminado: ~/.appium/...)

  • PHANTOM_WDA_URL — URL de WDA (predeterminado: http://localhost:8100)


Contribuir

Ver CONTRIBUTING.md para la configuración local, el patrón para añadir una nueva herramienta, las convenciones de nomenclatura y el flujo de trabajo de PR.

Ver también:


Solución de problemas

WDA se bloquea en bucle

MobAI u otra herramienta está utilizando el puerto 8100.

lsof -i :8100
pkill -f "MobAI"

"Ningún dispositivo disponible"

xcrun simctl list devices available   # iOS
adb devices -l                        # Android

WDA no arranca

cd ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
xcodebuild -project WebDriverAgent.xcodeproj \
  -scheme WebDriverAgentRunner \
  -destination "platform=iOS Simulator,name=iPhone 17 Pro" \
  test

ADB no encontrado

ls ~/Library/Android/sdk/platform-tools/adb

Estructura del proyecto

phantom/
  src/
    index.ts                Point d'entree MCP (24 tools)
    platforms/
      types.ts              Interfaces communes
      ios/
        simctl.ts            Wrapper xcrun simctl
        wda.ts               Client WDA + auto-launch
      android/
        adb.ts               Wrapper ADB complet
    tools/                   24 tools (21 fichiers)
    utils/
      device-manager.ts      Detection + routing multi-device
      xml.ts                 Parser XML partage
  docs/
    README.md               Ce fichier
    TUTORIAL.md             Tuto pas-a-pas
    FLOWS.md                Exemples de flows de test
Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    -
    quality
    F
    maintenance
    An MCP server that provides comprehensive tools for managing iOS simulators, including device control, app lifecycle management, and UI automation. It enables developers to boot devices, install apps, capture screenshots, and simulate user interactions through natural language commands.
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that gives AI coding assistants the ability to see and interact with mobile devices. 49 tools for Android/iOS — AI-powered visual analysis (Claude + Gemini), smart tap/type by description, Flutter widget tree inspection, video recording, and test script generation. 4-tier element search with <1ms local matching. Free tier included, zero setup via npx.
    49
    79
    3
    Business Source 1.1
  • A
    license
    -
    quality
    D
    maintenance
    MCP server for cross-platform mobile automation (iOS/Android) using accessibility trees and screenshots, enabling agents to interact with apps on simulators, emulators, and physical devices.
    7
    Apache 2.0
  • A
    license
    -
    quality
    D
    maintenance
    An MCP server for mobile automation that enables LLMs to interact with Android and iOS devices through screenshot, tap, swipe, log analysis, and app lifecycle management.
    24
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Appcircle mobile CI/CD platform.

  • Augments MCP Server - A comprehensive framework documentation provider for Claude Code

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

View all MCP Connectors

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/nthImpulse/phantom-mcp'

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