Skip to main content
Glama

MCP Appium Server

by Rahulec08

Servidor MCP Appium

Una implementación de servidor de Protocolo de Contexto de Modelo (MCP) para la automatización de aplicaciones móviles utilizando Appium.

Prerrequisitos

  1. Node.js (v14 o superior)
  2. Kit de desarrollo de Java (JDK)
  3. SDK de Android (para pruebas de Android)
  4. Xcode (solo para pruebas de iOS, macOS)
  5. Servidor Appium
  6. Dispositivo o emulador Android / dispositivo o simulador iOS

Configuración del entorno

Antes de ejecutar cualquier comando, asegúrese de que las variables de entorno estén configuradas correctamente:

  1. Asegúrese de que su .bash_profile , .zshrc u otro archivo de configuración de shell contenga las variables de entorno necesarias:
# Example environment variables in ~/.bash_profile export JAVA_HOME=/path/to/your/java export ANDROID_HOME=/path/to/your/android/sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
  1. Obtenga el archivo de su entorno antes de ejecutar MCP-Appium:
source ~/.bash_profile # For bash # OR source ~/.zshrc # For zsh

Nota : El sistema intentará obtener su .bash_profile automáticamente al inicializar el controlador, pero se recomienda asegurar la configuración adecuada del entorno manualmente antes de ejecutar pruebas en una nueva sesión de terminal.

Configuración de las herramientas de línea de comandos de Xcode

Para las pruebas de iOS, es esencial configurar adecuadamente las herramientas de línea de comandos de Xcode:

  1. Instale las herramientas de línea de comandos de Xcode si aún no están instaladas:
xcode-select --install
  1. Verifique la instalación y verifique la ruta actual de Xcode:
xcode-select -p
  1. Si es necesario, configure la ruta Xcode correcta (especialmente si tiene varias versiones de Xcode):
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
  1. Aceptar los acuerdos de licencia de Xcode:
sudo xcodebuild -license accept
  1. Para realizar pruebas en dispositivos iOS reales, asegúrese de que su cuenta de desarrollador de Apple esté configurada correctamente en Xcode:
    • Abrir Xcode
    • Vaya a Preferencias > Cuentas
    • Añade tu ID de Apple si aún no lo has hecho
    • Descargue los perfiles de aprovisionamiento necesarios
  2. Configurar variables de entorno para el desarrollo de iOS:
# Add these to your ~/.bash_profile or ~/.zshrc export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" export PATH="$DEVELOPER_DIR/usr/bin:$PATH"
  1. Obtenga su configuración actualizada:
source ~/.bash_profile # For bash # OR source ~/.zshrc # For zsh

Configuración

  1. Instalar dependencias:
npm install
  1. Instalar e iniciar el servidor Appium:
npm install -g appium appium
  1. Configurar el dispositivo/emulador de Android:
    • Habilite las opciones de desarrollador en su dispositivo Android
    • Habilitar la depuración USB
    • Conecte el dispositivo a través de USB o inicie un emulador
    • Verifique que el dispositivo esté conectado mediante adb devices
  2. Para pruebas de iOS (solo macOS):
    • Asegúrese de que las herramientas de línea de comandos de Xcode estén instaladas: xcode-select --install
    • Configurar el simulador de iOS o conectar un dispositivo real
    • Confíe en la computadora de desarrollo en el dispositivo iOS si usa un dispositivo real

Ejecución de pruebas

  1. Construir el proyecto:
npm run build
  1. Inicie el servidor MCP:
npm run dev
  1. En una nueva terminal, ejecute la prueba:
npm test

Configuración de prueba

Configuración de Android

La prueba de ejemplo utiliza la aplicación Ajustes de Android como demostración. Para probar tu propia aplicación:

  1. Editar examples/appium-test.ts :
    • Actualice deviceName para que coincida con su dispositivo
    • Establezca la ruta app en su archivo APK, o
    • Actualizar appPackage y appActivity para una aplicación instalada
  2. Configuración de capacidades comunes:
const capabilities: AppiumCapabilities = { platformName: "Android", deviceName: "YOUR_DEVICE_NAME", automationName: "UiAutomator2", // For installing and testing an APK: app: "./path/to/your/app.apk", // OR for testing an installed app: appPackage: "your.app.package", appActivity: ".MainActivity", noReset: true, };

Configuración de iOS

Para probar iOS usando la nueva compatibilidad con la línea de comandos de Xcode:

  1. Ejemplo de configuración en examples/xcode-appium-example.ts :
const capabilities: AppiumCapabilities = { platformName: "iOS", deviceName: "iPhone 13", // Your simulator or device name automationName: "XCUITest", udid: "DEVICE_UDID", // Get this from XcodeCommands.getIosSimulators() // For installing and testing an app: app: "./path/to/your/app.app", // OR for testing an installed app: bundleId: "com.your.app", noReset: true, };

Acciones disponibles

El servidor MCP admite varias acciones de Appium:

  1. Interacciones de elementos:
    • Encontrar elementos
    • Tocar o hacer clic en elementos con la API de acciones del W3C (consulte la sección "Gestos estándar del W3C")
    • Escribe texto
    • Desplazarse al elemento con la API de acciones W3C
    • Pulsación larga
  2. Gestión de aplicaciones:
    • Iniciar/cerrar la aplicación
    • Restablecer la aplicación
    • Obtener paquete/actividad actual
  3. Controles del dispositivo:
    • Orientación de la pantalla
    • Manejo del teclado
    • Bloqueo/desbloqueo del dispositivo
    • Capturas de pantalla
    • Información de la batería
  4. Funciones avanzadas:
    • Cambio de contexto (Nativo/WebView)
    • Operaciones con archivos
    • Notificaciones
    • Gestos personalizados
  5. Herramientas de línea de comandos de Xcode (solo iOS):
    • Administrar simuladores de iOS (arranque, apagado)
    • Instalar/desinstalar aplicaciones en simuladores
    • Iniciar/cerrar aplicaciones
    • Tomar capturas de pantalla
    • Grabar vídeos
    • Crear/eliminar simuladores
    • Obtener tipos de dispositivos y tiempos de ejecución

Gestos estándar del W3C

La biblioteca MCP-Appium ahora implementa la API W3C WebDriver Actions para gestos táctiles, que es el estándar moderno para la automatización móvil.

Acciones del W3C para elementos Tap

El método tapElement ahora utiliza la API de acciones W3C con alternativas inteligentes:

// The method will try in this order: // 1. Standard WebdriverIO click() // 2. W3C Actions API // 3. Legacy TouchAction API (fallback for backward compatibility) await appium.tapElement("//android.widget.Button[@text='OK']"); // or using the click alias await appium.click("//android.widget.Button[@text='OK']");

Acciones del W3C para el desplazamiento

El método scrollToElement ahora utiliza la API de acciones W3C:

// Uses W3C Actions API for more reliable scrolling await appium.scrollToElement( "//android.widget.TextView[@text='About phone']", // selector "down", // direction: "up", "down", "left", "right" "xpath", // strategy 10 // maxScrolls );

Gestos personalizados del W3C

Puede crear sus propios gestos W3C personalizados utilizando el método executeMobileCommand :

// Create custom W3C Actions API gesture const w3cActions = { actions: [ { type: "pointer", id: "finger1", parameters: { pointerType: "touch" }, actions: [ // Move to start position { type: "pointerMove", duration: 0, x: startX, y: startY }, // Press down { type: "pointerDown", button: 0 }, // Move to end position over duration milliseconds { type: "pointerMove", duration: duration, origin: "viewport", x: endX, y: endY, }, // Release { type: "pointerUp", button: 0 }, ], }, ], }; // Execute the W3C Actions using executeScript await appium.executeMobileCommand("performActions", [w3cActions.actions]);

Consulte examples/w3c-actions-swipe-demo.ts para obtener más ejemplos de implementaciones de gestos estándar del W3C.

Uso de las herramientas de línea de comandos de Xcode

La nueva clase XcodeCommands proporciona herramientas potentes para las pruebas de iOS:

import { XcodeCommands } from "../src/lib/xcode/xcodeCommands.js"; // Check if Xcode CLI tools are installed const isInstalled = await XcodeCommands.isXcodeCliInstalled(); // Get available simulators const simulators = await XcodeCommands.getIosSimulators(); // Boot a simulator await XcodeCommands.bootSimulator("SIMULATOR_UDID"); // Install an app await XcodeCommands.installApp("SIMULATOR_UDID", "/path/to/app.app"); // Launch an app await XcodeCommands.launchApp("SIMULATOR_UDID", "com.example.app"); // Take a screenshot await XcodeCommands.takeScreenshot("SIMULATOR_UDID", "/path/to/output.png"); // Shutdown a simulator await XcodeCommands.shutdownSimulator("SIMULATOR_UDID");

Uso de la función de clic

El método click() proporciona una alternativa más intuitiva a tapElement() :

// Using the click method await appium.click("//android.widget.Button[@text='OK']"); // This is equivalent to: await appium.tapElement("//android.widget.Button[@text='OK']");

Solución de problemas

  1. Dispositivo no encontrado:
    • Comprobar la salida de adb devices
    • Verifique que la depuración USB esté habilitada
    • Intente volver a conectar el dispositivo
  2. La aplicación no se instala:
    • Verificar que la ruta del APK sea correcta
    • Compruebe que el dispositivo tenga suficiente almacenamiento
    • Asegúrese de que la aplicación esté firmada para depuración
  3. Elementos no encontrados:
    • Utilice Appium Inspector para verificar los selectores
    • Comprobar si los elementos son visibles en la pantalla
    • Pruebe diferentes estrategias de localización
  4. Problemas de conexión:
    • Verifique que el servidor Appium esté en ejecución
    • Comprobar conflictos de puertos
    • Asegúrese de que se configuren las capacidades correctas
  5. Problemas con el simulador de iOS:
    • Verifique que las herramientas de línea de comandos de Xcode estén instaladas: xcode-select -p
    • Compruebe que el UDID del simulador sea correcto usando xcrun simctl list devices
    • Cierre y reinicie el simulador si deja de responder.

Contribuyendo

No dudes en enviar problemas y solicitudes de extracción para funciones adicionales o correcciones de errores.

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite la automatización de aplicaciones móviles mediante Appium, admitiendo diversas interacciones de dispositivos, operaciones de elementos y gestión de aplicaciones a través de un protocolo estandarizado.

  1. Prerrequisitos
    1. Configuración del entorno
      1. Configuración de las herramientas de línea de comandos de Xcode
    2. Configuración
      1. Ejecución de pruebas
        1. Configuración de prueba
          1. Configuración de Android
          2. Configuración de iOS
        2. Acciones disponibles
          1. Gestos estándar del W3C
            1. Acciones del W3C para elementos Tap
            2. Acciones del W3C para el desplazamiento
            3. Gestos personalizados del W3C
          2. Uso de las herramientas de línea de comandos de Xcode
            1. Uso de la función de clic
              1. Solución de problemas
                1. Contribuyendo
                  1. Licencia

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Model Context Protocol (MCP) server implementation for interacting with Phabricator API. This server allows LLMs to interact with Phabricator through a standardized interface.
                      Last updated -
                      5
                      Python
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.
                      Last updated -
                      3
                      9
                      36
                      JavaScript
                      Apache 2.0
                    • -
                      security
                      F
                      license
                      -
                      quality
                      This MCP server implementation allows users to manage and expose actions as tools from their Integration App workspace through the Model Context Protocol.
                      Last updated -
                      10
                      21
                      TypeScript
                    • A
                      security
                      F
                      license
                      A
                      quality
                      A Model Context Protocol (MCP) server that interacts with system APIs, allowing users to check connections, search employees, register breakfast, and update chemical information by shifts.
                      Last updated -
                      21
                      37
                      JavaScript

                    View all related MCP servers

                    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/Rahulec08/appium-mcp'

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