close
Aller au contenu principal

MCP (Protocole de Contexte de ModĂšle)

Que peut-il faire ?​

WebdriverIO MCP est un serveur de Protocole de Contexte de ModĂšle (MCP) qui permet aux assistants IA comme Claude Desktop et Claude Code d'automatiser et d'interagir avec les navigateurs web et les applications mobiles.

Pourquoi WebdriverIO MCP ?​

  • Mobile en premier : Contrairement aux serveurs MCP limitĂ©s aux navigateurs, WebdriverIO MCP prend en charge l'automatisation d'applications natives iOS et Android via Appium
  • SĂ©lecteurs multi-plateformes : La dĂ©tection intelligente des Ă©lĂ©ments gĂ©nĂšre automatiquement plusieurs stratĂ©gies de localisation (ID d'accessibilitĂ©, XPath, UiAutomator, prĂ©dicats iOS)
  • ÉcosystĂšme WebdriverIO : Construit sur le framework WebdriverIO Ă©prouvĂ© avec son riche Ă©cosystĂšme de services et de rapporteurs

Il fournit une interface unifiée pour :

  • đŸ–„ïž Navigateurs de bureau (Chrome - en mode visible ou headless)
  • đŸ“± Applications mobiles natives (Simulateurs iOS / Émulateurs Android / Appareils rĂ©els via Appium)
  • 📳 Applications mobiles hybrides (Changement de contexte natif + WebView via Appium)

grĂące au package @wdio/mcp.

Cela permet aux assistants IA de :

  • Lancer et contrĂŽler des navigateurs avec des dimensions configurables, en mode headless, et une navigation initiale optionnelle
  • Naviguer sur des sites web et interagir avec les Ă©lĂ©ments (cliquer, taper, dĂ©filer)
  • Analyser le contenu de la page via l'arbre d'accessibilitĂ© et la dĂ©tection d'Ă©lĂ©ments visibles avec support de pagination
  • Prendre des captures d'Ă©cran automatiquement optimisĂ©es (redimensionnĂ©es, compressĂ©es Ă  1Mo maximum)
  • GĂ©rer les cookies pour la gestion des sessions
  • ContrĂŽler les appareils mobiles y compris les gestes (taper, glisser, glisser-dĂ©poser)
  • Changer de contexte dans les applications hybrides entre natif et webview
  • ExĂ©cuter des scripts - JavaScript dans les navigateurs, commandes mobiles Appium sur les appareils
  • GĂ©rer les fonctionnalitĂ©s des appareils comme la rotation, le clavier, la gĂ©olocalisation
  • et bien plus encore, voir les options Outils et Configuration
info

REMARQUE pour les applications mobiles L'automatisation mobile nécessite un serveur Appium en cours d'exécution avec les pilotes appropriés installés. Voir Prérequis pour les instructions d'installation.

Installation​

La façon la plus simple d'utiliser @wdio/mcp est via npx sans installation locale :

npx @wdio/mcp

Ou l'installer globalement :

npm install -g @wdio/mcp

Utilisation avec Claude​

Pour utiliser WebdriverIO MCP avec Claude, modifiez le fichier de configuration :

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

AprÚs avoir ajouté la configuration, redémarrez Claude. Les outils WebdriverIO MCP seront disponibles pour les tùches d'automatisation de navigateur et de mobile.

Utilisation avec Claude Code​

Claude Code détecte automatiquement les serveurs MCP. Vous pouvez le configurer dans le fichier .claude/settings.json ou .mcp.json de votre projet.

Ou l'ajouter globalement à .claude.json en exécutant :

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

Validez-le en exécutant la commande /mcp dans Claude Code.

Exemples de dĂ©marrage rapide​

Automatisation de navigateur​

Demandez Ă  Claude d'automatiser les tĂąches du navigateur :

"Ouvrir Chrome et naviguer vers https://webdriver.io"
"Cliquer sur le bouton 'Get Started'"
"Prendre une capture d'écran de la page"
"Trouver tous les liens visibles sur la page"

Automatisation d'applications mobiles​

Demandez Ă  Claude d'automatiser les applications mobiles :

"Démarrer mon application iOS sur le simulateur iPhone 15"
"Appuyer sur le bouton de connexion"
"Glisser vers le haut pour faire défiler vers le bas"
"Prendre une capture d'écran de l'écran actuel"

CapacitĂ©s​

Automatisation de navigateur (Chrome)​

FonctionnalitéDescription
Gestion des sessionsLancer Chrome en mode visible/headless avec dimensions personnalisées et URL de navigation optionnelle
NavigationNaviguer vers des URLs
Interaction avec les élémentsCliquer sur des éléments, taper du texte, trouver des éléments par divers sélecteurs
Analyse de pageObtenir les éléments visibles (avec pagination), arbre d'accessibilité (avec filtrage)
Captures d'écranCapturer des captures d'écran (auto-optimisées à 1Mo max)
DéfilementDéfiler vers le haut/bas par nombre de pixels configurable
Gestion des cookiesObtenir, définir et supprimer des cookies
Exécution de scriptsExécuter du JavaScript personnalisé dans le contexte du navigateur

Automatisation d'applications mobiles (iOS/Android)​

FonctionnalitéDescription
Gestion des sessionsLancer des applications sur simulateurs, émulateurs ou appareils réels
Gestes tactilesTaper, glisser, glisser-déposer
Détection d'élémentsDétection intelligente d'éléments avec stratégies de localisation multiples et pagination
Cycle de vie de l'applicationObtenir l'état de l'application (via execute_script pour activer/terminer)
Changement de contexteBasculer entre les contextes natifs et webview dans les applications hybrides
ContrĂŽle de l'appareilRotation de l'appareil, contrĂŽle du clavier
GéolocalisationObtenir et définir les coordonnées GPS de l'appareil
PermissionsGestion automatique des permissions et des alertes
Exécution de scriptsExécuter des commandes mobiles Appium (pressKey, deepLink, shell, etc.)

PrĂ©requis​

Automatisation de navigateur​

  • Chrome doit ĂȘtre installĂ© sur votre systĂšme
  • WebdriverIO gĂšre automatiquement ChromeDriver

Automatisation mobile​

iOS​

  1. Installer Xcode depuis le Mac App Store
  2. Installer les outils de ligne de commande Xcode :
    xcode-select --install
  3. Installer Appium :
    npm install -g appium
  4. Installer le pilote XCUITest :
    appium driver install xcuitest
  5. Démarrer le serveur Appium :
    appium
  6. Pour les simulateurs : Ouvrir Xcode → FenĂȘtre → Appareils et simulateurs pour crĂ©er/gĂ©rer les simulateurs
  7. Pour les appareils réels : Vous aurez besoin de l'UDID de l'appareil (identifiant unique de 40 caractÚres)

Android​

  1. Installer Android Studio et configurer le SDK Android
  2. Définir les variables d'environnement :
    export ANDROID_HOME=$HOME/Library/Android/sdk
    export PATH=$PATH:$ANDROID_HOME/emulator
    export PATH=$PATH:$ANDROID_HOME/platform-tools
  3. Installer Appium :
    npm install -g appium
  4. Installer le pilote UiAutomator2 :
    appium driver install uiautomator2
  5. Démarrer le serveur Appium :
    appium
  6. CrĂ©er un Ă©mulateur via Android Studio → Gestionnaire d'appareils virtuels
  7. Démarrer l'émulateur avant d'exécuter les tests

Architecture​

Comment ça fonctionne​

WebdriverIO MCP agit comme un pont entre les assistants IA et l'automatisation du navigateur/mobile :

┌─────────────────┐     Protocole MCP      ┌─────────────────┐
│ Claude Desktop │ ◄──────────────────â–ș │ @wdio/mcp │
│ ou Claude Code │ (stdio) │ Serveur │
└─────────────────┘ └────────┬────────┘
│
API WebDriverIO
│
┌──────────────────────────────┌──────────────────────────────┐
│ │ │
┌───────▌───────┐ ┌───────▌───────┐ ┌───────▌───────┐
│ Chrome │ │ Appium │ │ Appium │
│ (Navigateur)│ │ (iOS) │ │ (Android) │
└───────────────┘ └───────────────┘ └───────────────┘

Gestion des sessions​

  • ModĂšle mono-session : Une seule session de navigateur OU d'application peut ĂȘtre active Ă  la fois
  • État de session est maintenu globalement Ă  travers les appels d'outils
  • Auto-dĂ©tachement : Les sessions avec Ă©tat prĂ©servĂ© (noReset: true) se dĂ©tachent automatiquement Ă  la fermeture

DĂ©tection d'Ă©lĂ©ments​

  • Utilise un script de navigateur optimisĂ© pour trouver tous les Ă©lĂ©ments visibles et interactifs
  • Retourne les Ă©lĂ©ments avec les sĂ©lecteurs CSS, IDs, classes et informations ARIA
  • Filtre par dĂ©faut les Ă©lĂ©ments visibles dans la fenĂȘtre d'affichage

Mobile (Applications natives)​

  • Utilise l'analyse efficace de la source de page XML (2 appels HTTP contre 600+ pour les requĂȘtes traditionnelles)
  • Classification d'Ă©lĂ©ments spĂ©cifique Ă  la plateforme pour Android et iOS
  • GĂ©nĂšre plusieurs stratĂ©gies de localisation par Ă©lĂ©ment :
    • ID d'accessibilitĂ© (multi-plateforme, plus stable)
    • ID de ressource / attribut Name
    • Correspondance de texte / Ă©tiquette
    • XPath (complet et simplifiĂ©)
    • UiAutomator (Android) / PrĂ©dicats (iOS)

Syntaxe des sĂ©lecteurs​

Le serveur MCP prend en charge plusieurs stratégies de sélection. Voir Sélecteurs pour une documentation détaillée.

Web (CSS/XPath)​

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

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

# Sélecteurs de texte (spécifiques à WebdriverIO)
button=Texte exact du bouton
a*=Texte partiel du lien

Mobile (Multi-plateformes)​

# ID d'accessibilité (recommandé - fonctionne sur 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 (fonctionne sur les deux plateformes)
//android.widget.Button[@text="Login"]
//XCUIElementTypeButton[@label="Login"]

Outils disponibles​

Le serveur MCP fournit 25 outils pour l'automatisation de navigateurs et d'applications mobiles. Voir Outils pour la référence complÚte.

Outils de navigateur​

OutilDescription
start_browserLancer le navigateur Chrome (avec URL initiale optionnelle)
close_sessionFermer ou se détacher d'une session
navigateNaviguer vers une URL
click_elementCliquer sur un élément
set_valueTaper du texte dans un champ
get_visible_elementsObtenir les éléments visibles/interactifs (avec pagination)
get_accessibilityObtenir l'arbre d'accessibilité (avec filtrage)
take_screenshotCapturer une capture d'écran (auto-optimisée)
scrollFaire défiler la page vers le haut ou le bas
get_cookies / set_cookie / delete_cookiesGestion des cookies
execute_scriptExécuter du JavaScript dans le navigateur

Outils mobiles​

OutilDescription
start_app_sessionLancer une application iOS/Android
tap_elementAppuyer sur un élément ou des coordonnées
swipeGlisser dans une direction
drag_and_dropGlisser entre des emplacements
get_app_stateVérifier si l'application est en cours d'exécution
get_contexts / switch_contextChangement de contexte pour applications hybrides
rotate_deviceFaire pivoter en mode portrait/paysage
get_geolocation / set_geolocationObtenir ou définir les coordonnées GPS
hide_keyboardMasquer le clavier à l'écran
execute_scriptExécuter des commandes mobiles Appium

Gestion automatique​

Permissions​

Par défaut, le serveur MCP accorde automatiquement les permissions d'application (autoGrantPermissions: true), éliminant le besoin de gérer manuellement les boßtes de dialogue de permission pendant l'automatisation.

Alertes systùme​

Les alertes systĂšme (comme "Autoriser les notifications ?") sont automatiquement acceptĂ©es par dĂ©faut (autoAcceptAlerts: true). Cela peut ĂȘtre configurĂ© pour les rejeter avec autoDismissAlerts: true.

Configuration​

Variables d'environnement​

Configurer la connexion au serveur Appium :

VariablePar défautDescription
APPIUM_URL127.0.0.1Nom d'hĂŽte du serveur Appium
APPIUM_URL_PORT4723Port du serveur Appium
APPIUM_PATH/Chemin du serveur Appium

Exemple avec serveur Appium personnalisé​

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

Optimisation des performances​

Le serveur MCP est optimisé pour une communication efficace avec l'assistant IA :

  • Format TOON : Utilise Token-Oriented Object Notation pour minimiser l'utilisation de jetons
  • Analyse XML : La dĂ©tection d'Ă©lĂ©ments mobiles utilise 2 appels HTTP (contre 600+ traditionnellement)
  • Compression de captures d'Ă©cran : Images auto-compressĂ©es Ă  1Mo maximum Ă  l'aide de Sharp
  • Filtrage de la vue : Seuls les Ă©lĂ©ments visibles sont renvoyĂ©s par dĂ©faut
  • Pagination : Les grandes listes d'Ă©lĂ©ments peuvent ĂȘtre paginĂ©es pour rĂ©duire la taille de la rĂ©ponse

Support TypeScript​

Le serveur MCP est écrit en TypeScript et inclut des définitions de types complÚtes. Si vous étendez ou intégrez le serveur par programmation, vous bénéficierez de l'auto-complétion et de la sécurité des types.

Gestion des erreurs​

Tous les outils sont conçus avec une gestion robuste des erreurs :

  • Les erreurs sont renvoyĂ©es sous forme de contenu textuel (jamais levĂ©es), maintenant la stabilitĂ© du protocole MCP
  • Les messages d'erreur descriptifs aident Ă  diagnostiquer les problĂšmes
  • L'Ă©tat de la session est prĂ©servĂ© mĂȘme lorsque des opĂ©rations individuelles Ă©chouent

Cas d'utilisation​

Assurance qualité​

  • ExĂ©cution de cas de test alimentĂ©e par l'IA
  • Tests de rĂ©gression visuelle avec captures d'Ă©cran
  • Audit d'accessibilitĂ© via l'analyse de l'arbre d'accessibilitĂ©

Web scraping et extraction de donnĂ©es​

  • Navigation dans des flux complexes multi-pages
  • Extraction de donnĂ©es structurĂ©es Ă  partir de contenu dynamique
  • Gestion de l'authentification et des sessions

Test d'applications mobiles​

  • Automatisation de tests multi-plateformes (iOS + Android)
  • Validation des flux d'intĂ©gration
  • Tests de liens profonds et de navigation

Tests d'intĂ©gration​

  • Tests de flux de travail de bout en bout
  • VĂ©rification d'intĂ©gration API + UI
  • VĂ©rifications de cohĂ©rence multi-plateformes

DĂ©pannage​

Le navigateur ne dĂ©marre pas​

  • Assurez-vous que Chrome est installĂ©
  • VĂ©rifiez qu'aucun autre processus n'utilise le port de dĂ©bogage par dĂ©faut (9222)
  • Essayez le mode headless si des problĂšmes d'affichage surviennent

Échec de connexion à Appium​

  • VĂ©rifiez que le serveur Appium est en cours d'exĂ©cution (appium)
  • VĂ©rifiez la configuration de l'URL et du port Appium
  • Assurez-vous que le pilote appropriĂ© est installĂ© (appium driver list)

Problùmes de simulateur iOS​

  • Assurez-vous que Xcode est installĂ© et Ă  jour
  • VĂ©rifiez que les simulateurs sont disponibles (xcrun simctl list devices)
  • Pour les appareils rĂ©els, vĂ©rifiez que l'UDID est correct

ProblĂšmes d'Ă©mulateur Android​

  • Assurez-vous que le SDK Android est correctement configurĂ©
  • VĂ©rifiez que l'Ă©mulateur fonctionne (adb devices)
  • VĂ©rifiez que la variable d'environnement ANDROID_HOME est dĂ©finie

Ressources​

Welcome! How can I help?

WebdriverIO AI Copilot