العودة إلى التحديثات
New releaseJul 28, 2026

firefox-devtools-mcp v0.9.15

خادم بروتوكول سياق النموذج (Model Context Protocol) لأدوات مطوري Firefox - يتيح للمساعدين الذكاء الاصطناعي فحص متصفح Firefox والتحكم فيه عبر بروتوكول التصحيح عن بُعد.

مشاركة

خادم Firefox DevTools MCP

npm version CI codecov License: MIT License: Apache 2.0

Glama

خادم 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_page
  • take_snapshot ثم click_by_uid / fill_by_uid
  • list_network_requests (التقاط دائم التشغيل), get_network_request
  • list_downloads (التقاط دائم التشغيل), set_download_behavior
  • screenshot_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.

الإعدادات المسبقة (كل منها مجموعة شاملة من السابق):

الفئات