
firefox-devtools-mcp v0.9.15
خادم بروتوكول سياق النموذج (Model Context Protocol) لأدوات مطوري Firefox - يتيح للمساعدين الذكاء الاصطناعي فحص متصفح Firefox والتحكم فيه عبر بروتوكول التصحيح عن بُعد.
خادم Firefox DevTools MCP
خادم Model Context Protocol لأتمتة Firefox عبر WebDriver BiDi (من خلال Selenium WebDriver). يعمل مع Claude Code وClaude Desktop وCursor وCline وعملاء MCP آخرين.
المستودع: https://github.com/mozilla/firefox-devtools-mcp
ملاحظة: يتطلب خادم MCP هذا تثبيت متصفح Firefox محليًا ولا يمكن تشغيله على خدمات الاستضافة السحابية مثل glama.ai. استخدم
npx @mozilla/firefox-devtools-mcp@latestللتشغيل محليًا، أو استخدم Docker مع ملف Dockerfile المرفق.
الأمان
تحمل خوادم MCP الخاصة بالمتصفحات مخاطر كامنة. بعض الممارسات الأساسية:
- استخدم ملف تعريف Firefox مخصصًا. لا تقم أبدًا بتشغيل الخادم على ملف التعريف العادي الخاص بك — فالوكيل لديه وصول إلى كل ما يمكن للمتصفح الوصول إليه، بما في ذلك ملفات تعريف الارتباط والجلسات المحفوظة.
- كن حذرًا بشأن المواقع التي تزورها. يمكن للصفحات إرجاع محتوى مصمم للتلاعب بالوكيل (حقن الأوامر). التزم بالمواقع التي تتحكم فيها أو تثق بها.
- فعّل فقط وحدات الأدوات التي تحتاجها. يتضمن الإعداد المسبق الافتراضي
basicبالفعلevaluate_script؛--tool-preset slimيزيله. الإعدادات المسبقة الأعلى مثل--tool-preset developer(تصحيح الأخطاء، الشبكة، وحدة التحكم، ملف التعريف) و--tool-preset mozilla(السياق المميز) توسع ما يمكن للوكيل القيام به أكثر.
راجع SECURITY.md للحصول على تفصيل كامل للمخاطر وكيفية الإبلاغ عن الثغرات الأمنية.
المتطلبات
- Node.js ≥ 20.19.0
- Firefox 100+ مثبت (يتم اكتشافه تلقائيًا، أو مرر
--firefox-path)
التثبيت والاستخدام مع Claude Code أو Codex (npx)
موصى به: استخدم npx لتشغيل أحدث إصدار منشور من npm.
الخيار أ — سطر الأوامر
Claude Code
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest
# بدون واجهة رسومية + منفذ عرض عبر الوسائط
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# أو عبر متغيرات البيئة
claude mcp add firefox-devtools npx @mozilla/firefox-devtools-mcp@latest \
--env START_URL=https://example.com \
--env FIREFOX_HEADLESS=true
Codex
codex mcp add firefox-devtools -- npx @mozilla/firefox-devtools-mcp@latest
# بدون واجهة رسومية + منفذ عرض عبر الوسائط
codex mcp add firefox-devtools -- \
npx @mozilla/firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# أو عبر متغيرات البيئة
codex mcp add firefox-devtools \
--env START_URL=https://example.com \
--env FIREFOX_HEADLESS=true \
-- npx @mozilla/firefox-devtools-mcp@latest
الخيار ب — تحرير ملف التكوين
Claude Code
أضف إلى mcp_settings.json الخاص بـ Claude Code:
{
"mcpServers": {
"firefox-devtools": {
"command": "npx",
"args": ["-y", "@mozilla/firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"],
"env": {
"START_URL": "about:blank"
}
}
}
}
Codex
أضف إلى ~/.codex/config.toml:
[mcp_servers.firefox-devtools]
command = "npx"
args = ["-y", "@mozilla/firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"]
[mcp_servers.firefox-devtools.env]
START_URL = "about:blank"
الخيار ج — سكربت مساعد (بناء تطوير محلي)
npm run setup
# اختر Claude Code؛ يحفظ السكربت JSON في المسار الصحيح
جرّبه مع MCP Inspector
npx @modelcontextprotocol/inspector npx @mozilla/firefox-devtools-mcp@latest --start-url https://example.com --headless
ثم استدعِ أدوات مثل:
list_pages,select_page,navigate_pagetake_snapshotثمclick_by_uid/fill_by_uidlist_network_requests(التقاط دائم التشغيل),get_network_requestlist_downloads(التقاط دائم التشغيل),set_download_behaviorscreenshot_page,list_console_messages
خيارات سطر الأوامر
يمكنك تمرير علامات أو متغيرات بيئة (الأسماء على اليمين):
--firefox-path— المسار المطلق لملف Firefox الثنائي--headless— التشغيل بدون واجهة مستخدم (FIREFOX_HEADLESS=true)--viewport 1280x720— حجم النافذة الأولي--profile-path— استخدام ملف تعريف Firefox محدد--firefox-arg— وسائط Firefox إضافية (قابلة للتكرار)--start-url— فتح هذا الرابط عند البدء (START_URL)--accept-insecure-certs— تجاهل أخطاء TLS (ACCEPT_INSECURE_CERTS=true)--connect-existing— الاتصال بجلسة Firefox قيد التشغيل بدلاً من إطلاق واحدة جديدة (CONNECT_EXISTING=true)--marionette-port— منفذ Marionette لوضع connect-existing، الافتراضي 2828 (MARIONETTE_PORT)--pref name=value— تعيين تفضيل Firefox عند بدء التشغيل عبرmoz:firefoxOptions(قابل للتكرار)--tool-preset— تحديد وحدات الأدوات التي سيتم تفعيلها:slim,basic(الافتراضي),developer,mozilla, أوall. راجع وحدات الأدوات والإعدادات المسبقة. (TOOL_PRESET)--tools— قائمة صريحة بوحدات الأدوات لتفعيلها، متجاوزة--tool-presetبالكامل (مثل--tools pages network script). راجع وحدات الأدوات والإعدادات المسبقة.--enable-script— مهمل، استخدم--tool-preset developerأو--tools ... script debugging. يحدد الإعداد المسبق لأداةdeveloper. (ENABLE_SCRIPT=true)--enable-privileged-context— مهمل، استخدم--tool-preset mozillaأو--tools ... privileged prefs. يحدد الإعداد المسبق لأداةmozilla. يتطلبMOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1(ENABLE_PRIVILEGED_CONTEXT=true)--android-device— تفعيل وضع Firefox لنظام Android؛ القيمة هي الرقم التسلسلي لجهاز ADB (مثلemulator-5554). شغّلadb devicesلعرض الأجهزة المتصلة. احذف القيمة أو استخدمautoلتحديد الجهاز المتصل الوحيد تلقائيًا.--android-wipe-app-data— تأكيد أن وضع Android يمسح جميع بيانات التطبيق المستهدف. مطلوب مع--android-device. (ANDROID_WIPE_APP_DATA=true)--android-package— اسم حزمة تطبيق Android، الافتراضيorg.mozilla.firefox. حزم أخرى:org.mozilla.firefox_betaلـ Firefox Beta،org.mozilla.fenixلـ Firefox Nightly،org.mozilla.fenix.debugلـ Firefox Nightly Debug،org.mozilla.geckoview_exampleلـ geckoview (ANDROID_PACKAGE)--unrestricted-save-paths— السماح لمعاملsaveToبالكتابة في أي مكان على القرص بدلاً من الجذور الافتراضية. راجع حفظ المخرجات الكبيرة على القرص وملاحظة الأمان في SECURITY.md. (UNRESTRICTED_SAVE_PATHS=true)--log-file— كتابة سجلات خادم MCP إلى ملف بدلاً من stderr. مفيد لجلسات تصحيح الأخطاء مع عملاء MCP الذين يخفون مخرجات الخادم. اضبطDEBUG=*لتضمين سجلات تصحيح مفصلة أيضًا. مثال:--log-file /tmp/firefox-mcp.log
وحدات الأدوات والإعدادات المسبقة
يتم تجميع الأدوات في وحدات. تختار الوحدات التي تريد كشفها إما بإعداد مسبق مسمى
(--tool-preset) أو بقائمة صريحة (--tools). عند تقديم كليهما، يفوز --tools ويتم
تجاهل الإعداد المسبق.
الوحدات: pages, snapshot, input, network, console, screenshot, downloads,
utilities, management, webextension, profiler, screencast, script, debugging,
prefs, privileged.
الإعدادات المسبقة (كل منها مجموعة شاملة من السابق):
