Zum Hauptinhalt springen

MCP (Model Context Protocol)

Was kann es tun?​

WebdriverIO MCP ist ein Model Context Protocol (MCP) Server, der es KI-Assistenten wie Claude Desktop und Claude Code ermöglicht, Webbrowser und mobile Anwendungen zu automatisieren und mit ihnen zu interagieren.

Warum WebdriverIO MCP?​

  • Mobile-First: Im Gegensatz zu reinen Browser-MCP-Servern unterstĂŒtzt WebdriverIO MCP die Automatisierung von iOS- und Android-Apps ĂŒber Appium
  • PlattformĂŒbergreifende Selektoren: Intelligente Elementerfassung generiert automatisch mehrere Lokalisierungsstrategien (Accessibility ID, XPath, UiAutomator, iOS Predicates)
  • WebdriverIO-Ökosystem: Aufgebaut auf dem bewĂ€hrten WebdriverIO-Framework mit seinem reichhaltigen Ökosystem an Services und Reportern

Es bietet eine einheitliche Schnittstelle fĂŒr:

  • đŸ–„ïž Desktop-Browser (Chrome - im sichtbaren oder Headless-Modus)
  • đŸ“± Native Mobile Apps (iOS-Simulatoren / Android-Emulatoren / Echte GerĂ€te ĂŒber Appium)
  • 📳 Hybride Mobile Apps (Wechsel zwischen nativem und WebView-Kontext ĂŒber Appium)

ĂŒber das @wdio/mcp Paket.

Dies ermöglicht KI-Assistenten:

  • Browser zu starten und zu steuern mit konfigurierbaren Abmessungen, Headless-Modus und optionaler initialer Navigation
  • Websites zu navigieren und mit Elementen zu interagieren (Klicken, Tippen, Scrollen)
  • Seiteninhalt zu analysieren ĂŒber Accessibility-Tree und Erkennung sichtbarer Elemente mit PaginierungsunterstĂŒtzung
  • Screenshots zu erstellen, die automatisch optimiert werden (angepasste GrĂ¶ĂŸe, komprimiert auf max. 1MB)
  • Cookies zu verwalten fĂŒr Session-Handling
  • Mobile GerĂ€te zu steuern einschließlich Gesten (Tippen, Wischen, Drag and Drop)
  • Kontexte zu wechseln in Hybrid-Apps zwischen nativem und WebView-Kontext
  • Skripte auszufĂŒhren - JavaScript in Browsern, Appium mobile Befehle auf GerĂ€ten
  • GerĂ€tefunktionen zu verwalten wie Rotation, Tastatur, Geolokalisierung
  • und vieles mehr, siehe die Tools und Konfigurationsmöglichkeiten
Info

HINWEIS fĂŒr Mobile Apps Mobile Automatisierung erfordert einen laufenden Appium-Server mit den entsprechenden Treibern. Siehe Voraussetzungen fĂŒr Installationsanweisungen.

Installation​

Der einfachste Weg, @wdio/mcp zu nutzen, ist ĂŒber npx ohne lokale Installation:

npx @wdio/mcp

Oder installieren Sie es global:

npm install -g @wdio/mcp

Verwendung mit Claude​

Um WebdriverIO MCP mit Claude zu verwenden, modifizieren Sie die Konfigurationsdatei:

{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}

Nach dem HinzufĂŒgen der Konfiguration starten Sie Claude neu. Die WebdriverIO MCP-Tools werden fĂŒr Browser- und mobile Automatisierungsaufgaben verfĂŒgbar sein.

Verwendung mit Claude Code​

Claude Code erkennt MCP-Server automatisch. Sie können ihn in der .claude/settings.json oder .mcp.json Ihres Projekts konfigurieren.

Oder fĂŒgen Sie ihn global in .claude.json hinzu, indem Sie ausfĂŒhren:

claude mcp add --transport stdio wdio-mcp -- npx -y @wdio/mcp

ÜberprĂŒfen Sie es, indem Sie den Befehl /mcp in Claude Code ausfĂŒhren.

Schnellstart-Beispiele​

Browser-Automatisierung​

Bitten Sie Claude, Browser-Aufgaben zu automatisieren:

"Öffne Chrome und navigiere zu https://webdriver.io"
"Klicke auf den 'Get Started' Button"
"Mache einen Screenshot der Seite"
"Finde alle sichtbaren Links auf der Seite"

Mobile App-Automatisierung​

Bitten Sie Claude, mobile Apps zu automatisieren:

"Starte meine iOS-App auf dem iPhone 15 Simulator"
"Tippe auf den Login-Button"
"Wische nach oben, um nach unten zu scrollen"
"Mache einen Screenshot des aktuellen Bildschirms"

FĂ€higkeiten​

Browser-Automatisierung (Chrome)​

FunktionBeschreibung
Session-ManagementChrome im sichtbaren/Headless-Modus mit benutzerdefinierten Abmessungen und optionaler Navigations-URL starten
NavigationZu URLs navigieren
Element-InteraktionElemente anklicken, Text eingeben, Elemente mit verschiedenen Selektoren finden
SeitenanalyseSichtbare Elemente abrufen (mit Paginierung), Accessibility-Tree (mit Filterung)
ScreenshotsScreenshots aufnehmen (automatisch optimiert auf max. 1MB)
ScrollenNach oben/unten scrollen mit konfigurierbaren Pixelwerten
Cookie-ManagementCookies abrufen, setzen und löschen
SkriptausfĂŒhrungBenutzerdefiniertes JavaScript im Browser-Kontext ausfĂŒhren

Mobile App-Automatisierung (iOS/Android)​

FunktionBeschreibung
Session-ManagementApps auf Simulatoren, Emulatoren oder echten GerÀten starten
Touch-GestenTippen, Wischen, Ziehen und Ablegen
Element-ErkennungIntelligente Elementerkennung mit mehreren Lokalisierungsstrategien und Paginierung
App-LebenszyklusApp-Status abrufen (ĂŒber execute_script fĂŒr Aktivieren/Beenden)
KontextwechselZwischen nativem und WebView-Kontext in Hybrid-Apps wechseln
GerÀtesteuerungGerÀt drehen, Tastatursteuerung
GeolokalisierungGPS-Koordinaten des GerÀts abrufen und setzen
BerechtigungenAutomatisches Berechtigungs- und Benachrichtigungshandling
SkriptausfĂŒhrungAppium mobile Befehle ausfĂŒhren (pressKey, deepLink, shell, etc.)

Voraussetzungen​

Browser-Automatisierung​

  • Chrome muss auf Ihrem System installiert sein
  • WebdriverIO ĂŒbernimmt die automatische ChromeDriver-Verwaltung

Mobile Automatisierung​

iOS​

  1. Xcode installieren aus dem Mac App Store
  2. Xcode Command Line Tools installieren:
    xcode-select --install
  3. Appium installieren:
    npm install -g appium
  4. XCUITest-Treiber installieren:
    appium driver install xcuitest
  5. Appium-Server starten:
    appium
  6. FĂŒr Simulatoren: Xcode öffnen → Fenster → GerĂ€te und Simulatoren, um Simulatoren zu erstellen/verwalten
  7. FĂŒr echte GerĂ€te: Sie benötigen die UDID des GerĂ€ts (40-stellige eindeutige Kennung)

Android​

  1. Android Studio installieren und Android SDK einrichten
  2. Umgebungsvariablen setzen:
    export ANDROID_HOME=$HOME/Library/Android/sdk
    export PATH=$PATH:$ANDROID_HOME/emulator
    export PATH=$PATH:$ANDROID_HOME/platform-tools
  3. Appium installieren:
    npm install -g appium
  4. UiAutomator2-Treiber installieren:
    appium driver install uiautomator2
  5. Appium-Server starten:
    appium
  6. Emulator erstellen ĂŒber Android Studio → Virtual Device Manager
  7. Emulator starten vor dem AusfĂŒhren von Tests

Architektur​

Wie es funktioniert​

WebdriverIO MCP fungiert als BrĂŒcke zwischen KI-Assistenten und Browser-/MobilgerĂ€t-Automatisierung:

┌─────────────────┐     MCP Protocol      ┌─────────────────┐
│ Claude Desktop │ ◄──────────────────â–ș │ @wdio/mcp │
│ or Claude Code │ (stdio) │ Server │
└─────────────────┘ └────────┬────────┘
│
WebDriverIO API
│
┌──────────────────────────────┌──────────────────────────────┐
│ │ │
┌───────▌───────┐ ┌───────▌───────┐ ┌───────▌───────┐
│ Chrome │ │ Appium │ │ Appium │
│ (Browser) │ │ (iOS) │ │ (Android) │
└───────────────┘ └───────────────┘ └───────────────┘

Session-Management​

  • Einzel-Session-Modell: Nur eine Browser- ODER App-Session kann gleichzeitig aktiv sein
  • Session-Status wird global ĂŒber Tool-Aufrufe hinweg beibehalten
  • Auto-Detach: Sessions mit bewahrtem Status (noReset: true) trennen sich beim Schließen automatisch

Element-Erkennung​

Browser (Web)​

  • Verwendet ein optimiertes Browser-Skript, um alle sichtbaren, interagierbaren Elemente zu finden
  • Gibt Elemente mit CSS-Selektoren, IDs, Klassen und ARIA-Informationen zurĂŒck
  • Filtert standardmĂ€ĂŸig auf im Viewport sichtbare Elemente

Mobile (Native Apps)​

  • Verwendet effiziente XML-Quellcode-Analyse (2 HTTP-Aufrufe vs. 600+ fĂŒr traditionelle Abfragen)
  • Plattformspezifische Elementklassifizierung fĂŒr Android und iOS
  • Generiert mehrere Lokalisierungsstrategien pro Element:
    • Accessibility ID (plattformĂŒbergreifend, am stabilsten)
    • Resource ID / Name-Attribut
    • Text- / Label-Übereinstimmung
    • XPath (vollstĂ€ndig und vereinfacht)
    • UiAutomator (Android) / Predicates (iOS)

Selektor-Syntax​

Der MCP-Server unterstĂŒtzt mehrere Selektor-Strategien. Siehe Selektoren fĂŒr detaillierte Dokumentation.

Web (CSS/XPath)​

# CSS Selectors
button.my-class
#element-id
[data-testid="login"]

# XPath
//button[@class='submit']
//a[contains(text(), 'Click')]

# Text Selectors (WebdriverIO specific)
button=Exact Button Text
a*=Partial Link Text

Mobile (PlattformĂŒbergreifend)​

# Accessibility ID (empfohlen - funktioniert auf iOS & Android)
~loginButton

# Android UiAutomator
android=new UiSelector().text("Login")

# iOS Predicate String
-ios predicate string:label == "Login"

# iOS Class Chain
-ios class chain:**/XCUIElementTypeButton[`label == "Login"`]

# XPath (funktioniert auf beiden Plattformen)
//android.widget.Button[@text="Login"]
//XCUIElementTypeButton[@label="Login"]

VerfĂŒgbare Tools​

Der MCP-Server bietet 25 Tools fĂŒr Browser- und Mobile-Automatisierung. Siehe Tools fĂŒr die vollstĂ€ndige Referenz.

Browser-Tools​

ToolBeschreibung
start_browserChrome-Browser starten (mit optionaler Start-URL)
close_sessionSession schließen oder trennen
navigateZu einer URL navigieren
click_elementElement anklicken
set_valueText in Eingabefeld eingeben
get_visible_elementsSichtbare/interagierbare Elemente abrufen (mit Paginierung)
get_accessibilityAccessibility-Tree abrufen (mit Filterung)
take_screenshotScreenshot aufnehmen (automatisch optimiert)
scrollSeite nach oben oder unten scrollen
get_cookies / set_cookie / delete_cookiesCookie-Verwaltung
execute_scriptJavaScript im Browser ausfĂŒhren

Mobile Tools​

ToolBeschreibung
start_app_sessioniOS/Android-App starten
tap_elementElement oder Koordinaten antippen
swipeIn eine Richtung wischen
drag_and_dropZwischen Positionen ziehen
get_app_statePrĂŒfen, ob App lĂ€uft
get_contexts / switch_contextKontextwechsel in Hybrid-Apps
rotate_deviceIn Hochformat/Querformat drehen
get_geolocation / set_geolocationGPS-Koordinaten abrufen oder setzen
hide_keyboardBildschirmtastatur ausblenden
execute_scriptAppium mobile Befehle ausfĂŒhren

Automatisches Handling​

Berechtigungen​

StandardmĂ€ĂŸig gewĂ€hrt der MCP-Server automatisch App-Berechtigungen (autoGrantPermissions: true), wodurch die manuelle Behandlung von Berechtigungsdialogen wĂ€hrend der Automatisierung entfĂ€llt.

System-Benachrichtigungen​

System-Benachrichtigungen (wie "Benachrichtigungen zulassen?") werden standardmĂ€ĂŸig automatisch akzeptiert (autoAcceptAlerts: true). Dies kann mit autoDismissAlerts: true konfiguriert werden, um stattdessen Benachrichtigungen abzulehnen.

Konfiguration​

Umgebungsvariablen​

Konfigurieren Sie die Appium-Server-Verbindung:

VariableStandardBeschreibung
APPIUM_URL127.0.0.1Appium-Server-Hostname
APPIUM_URL_PORT4723Appium-Server-Port
APPIUM_PATH/Appium-Server-Pfad

Beispiel mit benutzerdefiniertem Appium-Server​

{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"],
"env": {
"APPIUM_URL": "192.168.1.100",
"APPIUM_URL_PORT": "4724"
}
}
}
}

Leistungsoptimierung​

Der MCP-Server ist fĂŒr effiziente KI-Assistenten-Kommunikation optimiert:

  • TOON-Format: Verwendet Token-Oriented Object Notation fĂŒr minimale Token-Nutzung
  • XML-Analyse: Mobile Elementerkennung verwendet 2 HTTP-Aufrufe (vs. traditionell 600+)
  • Screenshot-Komprimierung: Bilder werden automatisch auf max. 1MB mit Sharp komprimiert
  • Viewport-Filterung: StandardmĂ€ĂŸig werden nur sichtbare Elemente zurĂŒckgegeben
  • Paginierung: Große Elementlisten können paginiert werden, um die AntwortgrĂ¶ĂŸe zu reduzieren

TypeScript-UnterstĂŒtzung​

Der MCP-Server ist in TypeScript geschrieben und enthÀlt vollstÀndige Typdefinitionen. Wenn Sie den Server programmatisch erweitern oder integrieren, profitieren Sie von Auto-VervollstÀndigung und Typsicherheit.

Fehlerbehandlung​

Alle Tools sind mit robuster Fehlerbehandlung konzipiert:

  • Fehler werden als Textinhalt zurĂŒckgegeben (niemals geworfen), um die MCP-ProtokollstabilitĂ€t aufrechtzuerhalten
  • Beschreibende Fehlermeldungen helfen bei der Diagnose von Problemen
  • Der Session-Status bleibt erhalten, auch wenn einzelne Operationen fehlschlagen

AnwendungsfĂ€lle​

QualitĂ€tssicherung​

  • KI-gestĂŒtzte TestfallausfĂŒhrung
  • Visuelle Regressionstests mit Screenshots
  • ZugĂ€nglichkeitsprĂŒfung ĂŒber Accessibility-Tree-Analyse

Web-Scraping & Datenextraktion​

  • Komplexe mehrseitige AblĂ€ufe navigieren
  • Strukturierte Daten aus dynamischen Inhalten extrahieren
  • Authentifizierung und Session-Management verwalten

Mobile App-Tests​

  • PlattformĂŒbergreifende Testautomatisierung (iOS + Android)
  • Validierung des Onboarding-Prozesses
  • Deep-Linking- und Navigationstest

Integrationstests​

  • End-to-End-Workflow-Tests
  • API + UI-Integrationsverifikation
  • PlattformĂŒbergreifende KonsistenzprĂŒfungen

Fehlerbehebung​

Browser startet nicht​

  • Stellen Sie sicher, dass Chrome installiert ist
  • ÜberprĂŒfen Sie, dass kein anderer Prozess den Standard-Debug-Port (9222) verwendet
  • Versuchen Sie den Headless-Modus, wenn Anzeigeprobleme auftreten

Appium-Verbindung fehlgeschlagen​

  • ÜberprĂŒfen Sie, ob der Appium-Server lĂ€uft (appium)
  • Kontrollieren Sie die Appium-URL und Port-Konfiguration
  • Stellen Sie sicher, dass der entsprechende Treiber installiert ist (appium driver list)

iOS-Simulator-Probleme​

  • Stellen Sie sicher, dass Xcode installiert und aktuell ist
  • PrĂŒfen Sie, ob Simulatoren verfĂŒgbar sind (xcrun simctl list devices)
  • Bei echten GerĂ€ten ĂŒberprĂŒfen Sie, ob die UDID korrekt ist

Android-Emulator-Probleme​

  • Stellen Sie sicher, dass das Android SDK korrekt konfiguriert ist
  • ÜberprĂŒfen Sie, ob der Emulator lĂ€uft (adb devices)
  • PrĂŒfen Sie, ob die Umgebungsvariable ANDROID_HOME gesetzt ist

Ressourcen​

Welcome! How can I help?

WebdriverIO AI Copilot