بروتوكول سياق النموذج (MCP)
ما الذي يمكنه القيام به؟
WebdriverIO MCP هو خادم بروتوكول سياق النموذج (MCP) يمكّن مساعدي الذكاء الاصطناعي مثل Claude Desktop و Claude Code من أتمتة التفاعل مع متصفحات الويب وتطبيقات الجوال.
لماذا WebdriverIO MCP؟
- الأولوية للجوال: على عكس خوادم MCP المخصصة للمتصفح فقط، يدعم WebdriverIO MCP أتمتة تطبيقات iOS وAndroid الأصلية عبر Appium
- محددات عبر المنصات: يقوم اكتشاف العناصر الذكي بإنشاء استراتيجيات تحديد متعددة (معرّف الوصول، XPath، UiAutomator، شروط iOS) تلقائيًا
- نظام بيئي WebdriverIO: مبني على إطار عمل WebdriverIO المختبر جيدًا مع ن ظامه البيئي الغني من الخدمات والمراسلين
يوفر واجهة موحدة لـ:
- 🖥️ متصفحات سطح المكتب (Chrome - في وضع الواجهة أو الوضع غير المرئي)
- 📱 تطبيقات الجوال الأصلية (محاكيات iOS / محاكيات Android / الأجهزة الحقيقية عبر Appium)
- 📳 تطبيقات الجوال الهجينة (التبديل بين سياق الأصلي و WebView عبر Appium)
من خلال حزمة @wdio/mcp.
هذا يسمح لمساعدي الذكاء الاصطناعي بـ:
- إطلاق والتحكم في المتصفحات بأبعاد قابلة للتكوين، وضع بدون واجهة، وإمكانية التنقل الأولي الاختياري
- تصفح المواقع والتفاعل مع العناصر (النقر، الكتابة، التمرير)
- تحليل محتوى الصفحة عبر شجرة إمكانية الوصول واكتشاف العناصر المرئية مع دعم تقسيم الصفحات
- التقاط لقطات الشاشة محسّنة تلقائيًا (تغيير الحجم، ضغط إلى حد أقصى 1 ميجابايت)
- إدارة ملفات تعريف الارتباط للتعامل مع الجلسات
- التحكم في أجهزة الجوال بما في ذلك الإيماءات (النقر، التمرير، السحب والإفلات)
- تبديل السياقات في التطبيقات الهجينة بين الأصلي و webview
- تنفيذ البرامج النصية - JavaScript في المتصفحات، أوامر Appium للجوال على الأجهزة
- التعامل مع ميزات الجهاز مثل التدوير، لوحة المفاتيح، تحديد الموقع الجغرافي
- والكثير غير ذلك، راجع خيارات الأدوات و التكوين
ملاحظة لتطبيقات الجوال تتطلب أتمتة الجوال تشغيل خادم Appium مع تثبيت برامج التشغيل المناسبة. انظر المتطلبات المسبقة للحصول على تعليمات الإعداد.
التثبيت
أسهل طريقة لاستخدام @wdio/mcp هي عبر npx بدون أي تثبيت محلي:
npx @wdio/mcp
أو تثبيته عالميًا:
npm install -g @wdio/mcp
الاستخدام مع Claude
لاستخدام WebdriverIO MCP مع Claude، قم بتعديل ملف التكوين:
{
"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
تحقق منه عن طريق تشغيل أمر /mcp داخل claude code.
أمثلة البداية السريعة
أتمتة المتصفح
اطلب من Claude أتمتة مهام المتصفح:
"افتح Chrome وانتقل إلى https://webdriver.io"
"انقر على زر 'Get Started'"
"التقط لقطة شاشة للصفحة"
"ابحث عن جميع الروابط المرئية في الصفحة"
أتمتة تطبيقات الجوال
اطلب من Claude أتمتة تطبيقات الجوال:
"ابدأ تطبيق iOS الخاص بي على محاكي iPhone 15"
"انقر على زر تسجيل الدخول"
"اسحب لأعلى للتمرير لأسفل"
"التقط لقطة شاشة للشاشة الحالية"
القدرات
أتمتة المتصفح (Chrome)
| الميزة | الوصف |
|---|---|
| إدارة الجلسات | تشغيل Chrome في وضع الواجهة/بدون واجهة مع أبعاد مخصصة وعنوان URL اختياري للتنقل |
| التنقل | الانتقال إلى عناوين URL |
| التفاعل مع العناصر | النقر على العناصر، كتابة النص، البحث عن العناصر بواسطة محددات مختلفة |
| تحليل الصفحة | الحصول على العناصر المرئية (مع تقسيم الصفحات)، شجرة الوصول (مع التصفية) |
| لقطات الشاشة | التقاط لقطات الشاشة (محسنة تلقائيًا إلى حد أقصى 1 ميجابايت) |
| التمرير | التمرير لأعلى/لأسفل بمقادير بكسل قابلة للتكوين |
| إدارة ملفات تعريف الارتباط | الحصول على وتعيين وحذف ملفات تعريف الارتباط |
| تنفيذ البرامج النصية | تنفيذ JavaScript مخصص في سياق المتصفح |
أتمتة تطبيقات الجوال (iOS/Android)
| الميزة | الوصف |
|---|---|
| إدارة الجلسات | تشغيل التطبيقات على المحاكيات أو الأجهزة الحقيقية |
| إيماءات اللمس | النقر، التمرير، السحب والإفلات |
| اكتشاف العناصر | اكتشاف العناصر الذكي مع استراتيجيات تحديد متعددة وتقسيم الصفحات |
| دورة حياة التطبيق | الحصول على حالة التطبيق (عبر execute_script للتنشيط/الإنهاء) |
| تبديل السياق | التبديل بين سياقات الأصلي و webview في التطبيقات الهجينة |
| التحكم في الجهاز | تدوير الجهاز، التحكم في لوحة المفاتيح |
| تحديد الموقع الجغرافي | الحصول على وتعيين إحداثيات GPS للجهاز |
| الأذونات | التعامل التلقائي مع الأذونات والتنبيهات |
| تنفيذ البرامج النصية | تنفيذ أوامر Appium للجوال (pressKey, deepLink, shell، إلخ) |
المتطلبات المسبقة
أتمتة المتصفح
- يجب تثبيت Chrome على نظامك
- يتعامل WebdriverIO مع إدارة ChromeDriver الآلية
أتمتة الجوال
iOS
- تثبيت Xcode من Mac App Store
- تثبيت أدوات سطر أوامر Xcode:
xcode-select --install - تثبيت Appium:
npm install -g appium - تثبيت برنامج تشغيل XCUITest:
appium driver install xcuitest - بدء خادم Appium:
appium - للمحاكيات: افتح Xcode → Window → Devices and Simulators لإنشاء/إدارة المحاكيات
- للأجهزة الحقيقية: ستحتاج إلى UDID للجهاز (معرّف فريد مكون من 40 حرفًا)
Android
- تثبيت Android Studio وإعداد Android SDK
- تعيين متغيرات البيئة:
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools - تثبيت Appium:
npm install -g appium - تثبيت برنامج تشغيل UiAutomator2:
appium driver install uiautomator2 - بدء خادم Appium:
appium - إنشاء محاكي عبر Android Studio → Virtual Device Manager
- بدء تشغيل المحاكي قبل تشغيل الاختبارات
البنية
كيف يعمل
يعمل WebdriverIO MCP كجسر بين مساعدي الذكاء الاصطناعي وأتمتة المتصفح/الجوال:
┌──────────── ─────┐ MCP Protocol ┌─────────────────┐
│ Claude Desktop │ ◄──────────────────► │ @wdio/mcp │
│ or Claude Code │ (stdio) │ Server │
└─────────────────┘ └────────┬────────┘
│
WebDriverIO API
│
┌──────────────────────────────┼──────────────────────────────┐
│ │ │
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐
│ Chrome │ │ Appium │ │ Appium │
│ (Browser) │ │ (iOS) │ │ (Android) │
└───────────────┘ └───────────────┘ └───────────────┘
إدارة الجلسات
- نموذج الجلسة الفردية: يمكن أن تكون جلسة متصفح واحدة أو تطبيق واحد نشطة في وقت واحد
- حالة الجلسة يتم الحفاظ عليها عالميًا عبر استدعاءات الأدوات
- الفصل التلقائي: الجلسات ذات الحالة المحفوظة (
noReset: true) تنفصل تلقائيًا عند الإغلاق