
خادم Model Context Protocol لأدوات مطوري Firefox - يمكّن مساعدي الذكاء الاصطناعي من فحص متصفح Firefox والتحكم فيه عبر WebDriver BiDi
خادم 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 الخاصة بالمتصفحات مخاطر كامنة. بعض الممارسات الأساسية:
basic بالفعل evaluate_script؛ --tool-preset slim يزيله. الإعدادات المسبقة الأعلى مثل --tool-preset developer (تصحيح الأخطاء، الشبكة، وحدة التحكم، ملف التعريف) و--tool-preset mozilla (السياق المميز) توسع ما يمكن للوكيل القيام به أكثر.راجع SECURITY.md للحصول على تفصيل كامل للمخاطر وكيفية الإبلاغ عن الثغرات الأمنية.
--firefox-path)موصى به: استخدم npx لتشغيل أحدث إصدار منشور من npm.
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 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
أضف إلى 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/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 في المسار الصحيح
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.
الإعدادات المسبقة (كل منها مجموعة شاملة من السابق):