मुख्य सामग्री पर जाएं

एमसीपी (मॉडल कॉन्टेक्स्ट प्रोटोकॉल)

यह क्या कर सकता है?

WebdriverIO MCP एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर है जो Claude Desktop और Claude Code जैसे AI असिस्टेंट को वेब ब्राउज़र और मोबाइल एप्लिकेशन को स्वचालित और इंटरैक्ट करने में सक्षम बनाता है।

WebdriverIO MCP क्यों?

  • मोबाइल-फर्स्ट: केवल ब्राउज़र-आधारित MCP सर्वर के विपरीत, WebdriverIO MCP Appium के माध्यम से iOS और Android नेटिव ऐप ऑटोमेशन का समर्थन करता है
  • क्रॉस-प्लेटफॉर्म सेलेक्टर्स: स्मार्ट एलिमेंट डिटेक्शन कई लोकेटर स्ट्रेटेजीज (एक्सेसिबिलिटी आईडी, XPath, UiAutomator, iOS प्रेडिकेट्स) स्वचालित रूप से जनरेट करता है
  • WebdriverIO इकोसिस्टम: युद्ध-परीक्षित WebdriverIO फ्रेमवर्क पर बनाया गया है जिसमें सेवाओं और रिपोर्टरों का समृद्ध पारिस्थितिकी तंत्र है

यह निम्नलिखित के लिए एक एकीकृत इंटरफेस प्रदान करता है:

  • 🖥️ डेस्कटॉप ब्राउज़र (Chrome - हेडेड या हेडलेस मोड)
  • 📱 नेटिव मोबाइल ऐप्स (iOS सिम्युलेटर / एंड्रॉइड एम्युलेटर / Appium के माध्यम से वास्तविक उपकरण)
  • 📳 हाइब्रिड मोबाइल ऐप्स (Appium के माध्यम से नेटिव + WebView कॉन्टेक्स्ट स्विचिंग)

@wdio/mcp पैकेज के माध्यम से।

यह AI असिस्टेंट को निम्न कार्य करने देता है:

  • ब्राउज़र लॉन्च और कंट्रोल कॉन्फ़िगर करने योग्य आयामों, हेडलेस मोड और वैकल्पिक प्रारंभिक नेविगेशन के साथ
  • वेबसाइटों पर नेविगेट और एलिमेंट्स के साथ इंटरैक्ट (क्लिक, टाइप, स्क्रॉल)
  • पेज कंटेंट का विश्लेषण एक्सेसिबिलिटी ट्री और पेजिनेशन समर्थन के साथ दृश्यमान एलिमेंट्स की पहचान के माध्यम से
  • स्क्रीनशॉट लें स्वचालित रूप से अनुकूलित (आकार बदला, अधिकतम 1MB तक संपीड़ित)
  • कुकीज़ प्रबंधित करें सत्र हैंडलिंग के लिए
  • मोबाइल डिवाइस नियंत्रित करें जिसमें जेस्चर (टैप, स्वाइप, ड्रैग और ड्रॉप) शामिल हैं
  • कॉन्टेक्स्ट स्विच करें हाइब्रिड ऐप्स में नेटिव और वेबव्यू के बीच
  • स्क्रिप्ट एक्जीक्यूट करें - ब्राउज़र में जावास्क्रिप्ट, डिवाइस पर Appium मोबाइल कमांड
  • डिवाइस फीचर्स हैंडल करें जैसे रोटेशन, कीबोर्ड, जियोलोकेशन
  • और बहुत कुछ, देखें टूल्स और कॉन्फ़िगरेशन विकल्प
जानकारी

नोट मोबाइल ऐप्स के लिए मोबाइल ऑटोमेशन के लिए उचित ड्राइवरों के साथ रनिंग Appium सर्वर की आवश्यकता होती है। सेटअप निर्देशों के लिए पूर्वापेक्षाएँ देखें।

इंस्टालेशन

@wdio/mcp का उपयोग करने का सबसे आसान तरीका बिना किसी स्थानीय इंस्टालेशन के npx के माध्यम से है:

npx @wdio/mcp

या इसे ग्लोबली इंस्टॉल करें:

npm install -g @wdio/mcp

Claude के साथ उपयोग

Claude के साथ WebdriverIO MCP का उपयोग करने के लिए, कॉन्फ़िगरेशन फ़ाइल को संशोधित करें:

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

कॉन्फ़िगरेशन जोड़ने के बाद, Claude को रीस्टार्ट करें। ब्राउज़र और मोबाइल ऑटोमेशन टास्क के लिए WebdriverIO MCP टूल्स उपलब्ध होंगे।

Claude Code के साथ उपयोग

Claude Code स्वचालित रूप से MCP सर्वर का पता लगाता है। आप इसे अपने प्रोजेक्ट के .claude/settings.json या .mcp.json में कॉन्फ़िगर कर सकते हैं।

या इसे ग्लोबली .claude.json में निष्पादित करके जोड़ सकते हैं:

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

claude code के अंदर /mcp कमांड चलाकर इसे वैलिडेट करें।

त्वरित शुरुआत उदाहरण

ब्राउज़र ऑटोमेशन

Claude से ब्राउज़र टास्क को ऑटोमेट करने के लिए कहें:

"Chrome खोलें और https://webdriver.io पर नेविगेट करें"
"'Get Started' बटन पर क्लिक करें"
"पेज का स्क्रीनशॉट लें"
"पेज पर सभी दृश्यमान लिंक खोजें"

मोबाइल ऐप ऑटोमेशन

Claude से मोबाइल ऐप्स को ऑटोमेट करने के लिए कहें:

"iPhone 15 सिम्युलेटर पर मेरा iOS ऐप शुरू करें"
"लॉगिन बटन पर टैप करें"
"नीचे स्क्रॉल करने के लिए ऊपर स्वाइप करें"
"वर्तमान स्क्रीन का स्क्रीनशॉट लें"

क्षमताएं

ब्राउज़र ऑटोमेशन (Chrome)

फीचरविवरण
सेशन मैनेजमेंटChrome को हेडेड/हेडलेस मोड में कस्टम डायमेंशन और वैकल्पिक नेविगेशन URL के साथ लॉन्च करें
नेविगेशनURL पर नेविगेट करें
एलिमेंट इंटरैक्शनएलिमेंट पर क्लिक करें, टेक्स्ट टाइप करें, विभिन्न सेलेक्टर द्वारा एलिमेंट ढूंढें
पेज एनालिसिसदृश्यमान एलिमेंट्स (पेजिनेशन के साथ), एक्सेसिबिलिटी ट्री (फिल्टरिंग के साथ) प्राप्त करें
स्क्रीनशॉटस्क्रीनशॉट कैप्चर करें (अधिकतम 1MB तक स्वचालित रूप से अनुकूलित)
स्क्रॉलिंगपेज को कॉन्फ़िगर करने योग्य पिक्सेल मात्रा से ऊपर/नीचे स्क्रॉल करें
कुकी मैनेजमेंटकुकीज़ प्राप्त करें, सेट करें और हटाएं
स्क्रिप्ट एक्सीक्यूशनब्राउज़र कॉन्टेक्स्ट में कस्टम जावास्क्रिप्ट एक्सीक्यूट करें

मोबाइल ऐप ऑटोमेशन (iOS/Android)

फीचरविवरण
सेशन मैनेजमेंटसिम्युलेटर, एम्युलेटर या वास्तविक डिवाइस पर ऐप्स लॉन्च करें
टच जेस्चरटैप, स्वाइप, ड्रैग और ड्रॉप
एलिमेंट डिटेक्शनमल्टीपल लोकेटर स्ट्रेटेजीज और पेजिनेशन के साथ स्मार्ट एलिमेंट डिटेक्शन
ऐप लाइफसाइकलऐप स्टेट प्राप्त करें (एक्टिवेट/टर्मिनेट के लिए execute_script के माध्यम से)
कॉन्टेक्स्ट स्विचिंगहाइब्रिड ऐप्स में नेटिव और वेबव्यू कॉन्टेक्स्ट के बीच स्विच करें
डिवाइस कंट्रोलडिवाइस को पोर्ट्रेट/लैंडस्केप में रोटेट करें, कीबोर्ड कंट्रोल
जियोलोकेशनडिवाइस जीपीएस कोऑर्डिनेट्स प्राप्त करें और सेट करें
परमिशनस्वचालित परमिशन और अलर्ट हैंडलिंग
स्क्रिप्ट एक्सीक्यूशनAppium मोबाइल कमांड (pressKey, deepLink, shell, आदि) एक्सीक्यूट करें

पूर्वापेक्षाएँ

ब्राउज़र ऑटोमेशन

  • Chrome आपके सिस्टम पर इंस्टॉल होना चाहिए
  • WebdriverIO स्वचालित ChromeDriver प्रबंधन का ख्याल रखता है

मोबाइल ऑटोमेशन

iOS

  1. Xcode इंस्टॉल करें Mac App Store से
  2. Xcode कमांड लाइन टूल्स इंस्टॉल करें:
    xcode-select --install
  3. Appium इंस्टॉल करें:
    npm install -g appium
  4. XCUITest ड्राइवर इंस्टॉल करें:
    appium driver install xcuitest
  5. Appium सर्वर स्टार्ट करें:
    appium
  6. सिम्युलेटर के लिए: Xcode → Window → Devices and Simulators खोलें, सिम्युलेटर बनाने/प्रबंधित करने के लिए
  7. वास्तविक डिवाइस के लिए: आपको डिवाइस UDID (40-कैरेक्टर विशिष्ट पहचानकर्ता) की आवश्यकता होगी

Android

  1. Android Studio इंस्टॉल करें और Android SDK सेट अप करें
  2. एन्वायरनमेंट वेरिएबल्स सेट करें:
    export ANDROID_HOME=$HOME/Library/Android/sdk
    export PATH=$PATH:$ANDROID_HOME/emulator
    export PATH=$PATH:$ANDROID_HOME/platform-tools
  3. Appium इंस्टॉल करें:
    npm install -g appium
  4. UiAutomator2 ड्राइवर इंस्टॉल करें:
    appium driver install uiautomator2
  5. Appium सर्वर स्टार्ट करें:
    appium
  6. एम्युलेटर बनाएँ Android Studio → Virtual Device Manager के माध्यम से
  7. टेस्ट चलाने से पहले एम्युलेटर स्टार्ट करें

आर्किटेक्चर

यह कैसे काम करता है

WebdriverIO MCP AI असिस्टेंट और ब्राउज़र/मोबाइल ऑटोमेशन के बीच एक ब्रिज के रूप में कार्य करता है:

┌─────────────────┐     MCP Protocol      ┌─────────────────┐
│ Claude Desktop │ ◄──────────────────► │ @wdio/mcp │
│ or Claude Code │ (stdio) │ Server │
└─────────────────┘ └────────┬────────┘

WebDriverIO API

┌──────────────────────────────┼──────────────────────────────┐
│ │ │
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐
│ Chrome │ │ Appium │ │ Appium │
│ (Browser) │ │ (iOS) │ │ (Android) │
└───────────────┘ └───────────────┘ └───────────────┘

सेशन प्रबंधन

  • सिंगल-सेशन मॉडल: एक समय में केवल एक ब्राउज़र या ऐप सेशन सक्रिय हो सकता है
  • सेशन स्टेट टूल कॉल के बीच ग्लोबली बनाए रखा जाता है
  • ऑटो-डिटैच: संरक्षित स्टेट (noReset: true) वाले सेशन बंद होने पर स्वचालित रूप से डिटैच हो जाते हैं

एलिमेंट डिटेक्शन

ब्राउज़र (वेब)

  • सभी दृश्यमान, इंटरैक्टेबल एलिमेंट्स को खोजने के लिए एक अनुकूलित ब्राउज़र स्क्रिप्ट का उपयोग करता है
  • CSS सेलेक्टर्स, ID, क्लासेज और ARIA जानकारी के साथ एलिमेंट्स रिटर्न करता है
  • डिफ़ॉल्ट रूप से व्यूपोर्ट-दृश्यमान एलिमेंट्स को फ़िल्टर करता है

मोबाइल (नेटिव ऐप्स)

  • कुशल XML पेज सोर्स पार्सिंग का उपयोग करता है (पारंपरिक क्वेरी के लिए 600+ के मुकाबले 2 HTTP कॉल)
  • Android और iOS के लिए प्लेटफॉर्म-विशिष्ट एलिमेंट वर्गीकरण
  • प्रति एलिमेंट कई लोकेटर स्ट्रेटेजीज जनरेट करता है:
    • एक्सेसिबिलिटी आईडी (क्रॉस-प्लेटफॉर्म, सबसे स्थिर)
    • रिसोर्स आईडी / नाम एट्रिब्यूट
    • टेक्स्ट / लेबल मैचिंग
    • XPath (पूर्ण और सरलीकृत)
    • UiAutomator (Android) / Predicates (iOS)

सेलेक्टर सिंटैक्स

MCP सर्वर कई सेलेक्टर स्ट्रेटेजीज का समर्थन करता है। विस्तृत दस्तावेज़ीकरण के लिए सेलेक्टर्स देखें।

वेब (CSS/XPath)

# CSS सेलेक्टर्स
button.my-class
#element-id
[data-testid="login"]

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

# टेक्स्ट सेलेक्टर्स (WebdriverIO विशिष्ट)
button=Exact Button Text
a*=Partial Link Text

मोबाइल (क्रॉस-प्लेटफॉर्म)

# एक्सेसिबिलिटी आईडी (अनुशंसित - 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 (दोनों प्लेटफॉर्म पर काम करता है)
//android.widget.Button[@text="Login"]
//XCUIElementTypeButton[@label="Login"]

उपलब्ध टूल्स

MCP सर्वर ब्राउज़र और मोबाइल ऑटोमेशन के लिए 25 टूल प्रदान करता है। पूरे संदर्भ के लिए टूल्स देखें।

ब्राउज़र टूल्स

टूलविवरण
start_browserChrome ब्राउज़र लॉन्च करें (वैकल्पिक प्रारंभिक URL के साथ)
close_sessionसेशन बंद करें या डिटैच करें
navigateURL पर नेविगेट करें
click_elementएलिमेंट पर क्लिक करें
set_valueइनपुट में टेक्स्ट टाइप करें
get_visible_elementsदृश्यमान/इंटरैक्टेबल एलिमेंट्स प्राप्त करें (पेजिनेशन के साथ)
get_accessibilityएक्सेसिबिलिटी ट्री प्राप्त करें (फिल्टरिंग के साथ)
take_screenshotस्क्रीनशॉट कैप्चर करें (स्वचालित रूप से अनुकूलित)
scrollपेज को ऊपर या नीचे स्क्रॉल करें
get_cookies / set_cookie / delete_cookiesकुकी प्रबंधन
execute_scriptब्राउज़र में जावास्क्रिप्ट एक्सीक्यूट करें

मोबाइल टूल्स

टूलविवरण
start_app_sessioniOS/Android ऐप लॉन्च करें
tap_elementएलिमेंट या कोऑर्डिनेट्स पर टैप करें
swipeकिसी दिशा में स्वाइप करें
drag_and_dropलोकेशन के बीच ड्रैग करें
get_app_stateजांचें कि ऐप चल रहा है या नहीं
get_contexts / switch_contextहाइब्रिड ऐप कॉन्टेक्स्ट स्विचिंग
rotate_deviceपोर्ट्रेट/लैंडस्केप में रोटेट करें
get_geolocation / set_geolocationGPS कोऑर्डिनेट्स प्राप्त या सेट करें
hide_keyboardऑन-स्क्रीन कीबोर्ड को छुपाएँ
execute_scriptAppium मोबाइल कमांड एक्सीक्यूट करें

स्वचालित हैंडलिंग

परमिशन

डिफ़ॉल्ट रूप से, MCP सर्वर स्वचालित रूप से ऐप परमिशन देता है (autoGrantPermissions: true), जिससे ऑटोमेशन के दौरान परमिशन डायलॉग को मैन्युअल रूप से हैंडल करने की आवश्यकता समाप्त हो जाती है।

सिस्टम अलर्ट्स

सिस्टम अलर्ट्स (जैसे "नोटिफिकेशन की अनुमति दें?") डिफ़ॉल्ट रूप से स्वचालित रूप से स्वीकार किए जाते हैं (autoAcceptAlerts: true)। इसे autoDismissAlerts: true के साथ खारिज करने के लिए कॉन्फ़िगर किया जा सकता है।

कॉन्फ़िगरेशन

एन्वायरनमेंट वेरिएबल्स

Appium सर्वर कनेक्शन कॉन्फ़िगर करें:

वेरिएबलडिफ़ॉल्टविवरण
APPIUM_URL127.0.0.1Appium सर्वर होस्टनेम
APPIUM_URL_PORT4723Appium सर्वर पोर्ट
APPIUM_PATH/Appium सर्वर पाथ

कस्टम Appium सर्वर के साथ उदाहरण

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

परफॉर्मेंस ऑप्टिमाइजेशन

MCP सर्वर कुशल AI असिस्टेंट संचार के लिए अनुकूलित है:

  • TOON फॉर्मेट: न्यूनतम टोकन उपयोग के लिए टोकन-ओरिएंटेड ऑब्जेक्ट नोटेशन का उपयोग करता है
  • XML पार्सिंग: मोबाइल एलिमेंट डिटेक्शन 2 HTTP कॉल का उपयोग करता है (पारंपरिक रूप से 600+ के मुकाबले)
  • स्क्रीनशॉट कम्प्रेशन: इमेज स्वचालित रूप से Sharp का उपयोग करके अधिकतम 1MB तक कम्प्रेस की जाती हैं
  • व्यूपोर्ट फिल्टरिंग: डिफ़ॉल्ट रूप से केवल दृश्यमान एलिमेंट्स रिटर्न किए जाते हैं
  • पेजिनेशन: बड़ी एलिमेंट सूची को पेजिनेट किया जा सकता है ताकि रिस्पॉन्स साइज कम हो

TypeScript समर्थन

MCP सर्वर TypeScript में लिखा गया है और पूर्ण टाइप परिभाषाएँ शामिल हैं। यदि आप सर्वर का प्रोग्रामेटिक रूप से विस्तार या एकीकरण कर रहे हैं, तो आपको ऑटो-कंप्लीशन और टाइप सुरक्षा का लाभ मिलेगा।

एरर हैंडलिंग

सभी टूल मजबूत एरर हैंडलिंग के साथ डिज़ाइन किए गए हैं:

  • एरर टेक्स्ट कंटेंट के रूप में रिटर्न किए जाते हैं (कभी भी थ्रो नहीं किए जाते), MCP प्रोटोकॉल स्थिरता बनाए रखते हुए
  • विस्तृत एरर मैसेज समस्याओं का निदान करने में मदद करते हैं
  • व्यक्तिगत ऑपरेशन विफल होने पर भी सेशन स्टेट संरक्षित रहता है

उपयोग के मामले

क्वालिटी एश्योरेंस

  • AI-पावर्ड टेस्ट केस एक्सीक्यूशन
  • स्क्रीनशॉट के साथ विजुअल रिग्रेशन टेस्टिंग
  • एक्सेसिबिलिटी ट्री एनालिसिस के माध्यम से एक्सेसिबिलिटी ऑडिटिंग

वेब स्क्रैपिंग और डेटा एक्सट्रैक्शन

  • जटिल मल्टी-पेज फ्लो नेविगेट करें
  • डायनामिक कंटेंट से स्ट्रक्चर्ड डेटा निकालें
  • ऑथेंटिकेशन और सेशन मैनेजमेंट हैंडल करें

मोबाइल ऐप टेस्टिंग

  • क्रॉस-प्लेटफॉर्म टेस्ट ऑटोमेशन (iOS + Android)
  • ऑनबोर्डिंग फ्लो वैलिडेशन
  • डीप लिंकिंग और नेविगेशन टेस्टिंग

इंटीग्रेशन टेस्टिंग

  • एंड-टू-एंड वर्कफ्लो टेस्टिंग
  • API + UI इंटीग्रेशन वेरिफिकेशन
  • मल्टी-प्लेटफॉर्म कंसिस्टेंसी चेक

ट्रबलशूटिंग

ब्राउज़र स्टार्ट नहीं हो रहा है

  • सुनिश्चित करें कि Chrome इंस्टॉल है
  • जांचें कि कोई अन्य प्रोसेस डिफॉल्ट डीबगिंग पोर्ट (9222) का उपयोग नहीं कर रहा है
  • डिस्प्ले समस्याएं होने पर हेडलेस मोड आज़माएं

Appium कनेक्शन विफल हुआ

  • सत्यापित करें कि Appium सर्वर चल रहा है (appium)
  • Appium URL और पोर्ट कॉन्फ़िगरेशन जांचें
  • सुनिश्चित करें कि उचित ड्राइवर इंस्टॉल है (appium driver list)

iOS सिम्युलेटर समस्याएं

  • सुनिश्चित करें कि Xcode इंस्टॉल है और अप टू डेट है
  • जांचें कि सिम्युलेटर उपलब्ध हैं (xcrun simctl list devices)
  • वास्तविक डिवाइस के लिए, UDID सही है, यह सत्यापित करें

एंड्रॉइड एमुलेटर समस्याएं

  • सुनिश्चित करें कि Android SDK सही ढंग से कॉन्फ़िगर है
  • सत्यापित करें कि एमुलेटर चल रहा है (adb devices)
  • जांचें कि ANDROID_HOME एन्वायरनमेंट वेरिएबल सेट है

संसाधन

Welcome! How can I help?

WebdriverIO AI Copilot