خادم Firebase MCP

يمكنك استخدام خادم MCP في Firebase لمنح أدوات التطوير المستندة إلى الذكاء الاصطناعي إمكانية العمل مع مشاريعك على Firebase. يعمل خادم MCP من Firebase مع أي أداة يمكنها العمل كعميل MCP، بما في ذلك Claude Desktop وCline وCursor وVisual Studio Code Copilot وWindsurf Editor وغيرها.

يمكن للمحرّر الذي تم إعداده لاستخدام خادم Firebase MCP الاستفادة من إمكانات الذكاء الاصطناعي لمساعدتك في ما يلي:

  • إنشاء مشاريع Firebase وإدارتها
  • إدارة مستخدمي "مصادقة Firebase"
  • العمل باستخدام البيانات في Cloud Firestore وFirebase Data Connect
  • استرداد مخططات Firebase Data Connect
  • فهم قواعد الأمان في Firestore وCloud Storage for Firebase
  • إرسال الرسائل باستخدام "المراسلة عبر السحابة الإلكترونية من Firebase"

تستعين بعض الأدوات بـ "Gemini في Firebase" لمساعدتك في ما يلي:

  • إنشاء مخطط وعمليات Firebase Data Connect
  • استشارة Gemini بشأن منتجات Firebase

هذه القوائم جزئية فقط، لذا يُرجى الاطّلاع على قسم إمكانات الخادم للحصول على قائمة كاملة بالأدوات المتاحة للمحرّر.

عندما يُجري خادم MCP في Firebase طلبات إلى الأدوات، يستخدم بيانات اعتماد المستخدم نفسها التي تمنح الإذن لواجهة سطر الأوامر (CLI) في Firebase في البيئة التي يتم تشغيلها فيها. يمكن أن يكون ذلك مستخدمًا مسجّلاً الدخول أو بيانات الاعتماد التلقائية للتطبيق ، وذلك حسب البيئة.

قبل البدء

تأكَّد من تثبيت Node.js وnpm بشكل صحيح.

إعداد برنامج MCP

يمكن لخادم MCP في Firebase العمل مع أي عميل MCP يتيح استخدام الإدخال/الإخراج العادي (stdio) كوسيط نقل. في ما يلي تعليمات محدّدة لبعض الأدوات الشائعة:

الإعداد الأساسي

Firebase Studio

لضبط Firebase Studio لاستخدام خادم Firebase MCP، عدِّل ملف الإعداد أو أنشئه: .idx/mcp.json.

إذا لم يكن الملف موجودًا بعد، أنشئه من خلال النقر بزر الماوس الأيمن على الدليل الرئيسي واختيار ملف جديد. أضِف المحتوى التالي إلى الملف:

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

‫Gemini CLI وGemini Code Assist

لضبط Gemini CLI أو Gemini Code Assist لاستخدام خادم Firebase MCP، عدِّل ملفات الإعداد أو أنشئها:

  • في مشروعك: .gemini/settings.json
  • في الدليل الرئيسي: ~/.gemini/settings.json

إذا لم يكن الملف موجودًا بعد، أنشئه من خلال النقر بزر الماوس الأيمن على الدليل الرئيسي واختيار ملف جديد. أضِف المحتوى التالي إلى الملف:

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Claude Desktop

لضبط تطبيق Claude Desktop لاستخدام خادم Firebase MCP، عدِّل ملف claude_desktop_config.json. يمكنك فتح هذا الملف أو إنشاؤه من قائمة Claude > الإعدادات. انقر على علامة التبويب المطوّر، ثم على تعديل الإعدادات.

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Claude Code

لضبط Claude Code لاستخدام خادم MCP في Firebase، شغِّل الأمر التالي ضمن مجلد تطبيقك:

claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp

يمكنك التحقّق من عملية التثبيت من خلال تنفيذ الأمر التالي:

claude mcp list

يجب أن يعرض ما يلي:

firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected

Cline

لضبط Cline لاستخدام خادم MCP في Firebase، عدِّل ملف cline_mcp_settings.json. يمكنك فتح هذا الملف أو إنشاؤه من خلال النقر على رمز خوادم MCP في أعلى جزء Cline، ثم النقر على الزر ضبط خوادم MCP.

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"],
      "disabled": false
    }
  }
}

المؤشر

لضبط Cursor لاستخدام خادم Firebase MCP، عدِّل الملف .cursor/mcp.json (لضبط مشروع معيّن فقط) أو الملف ~/.cursor/mcp.json (لإتاحة خادم MCP في جميع المشاريع):

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
   }
}

‫Visual Studio Code Copilot

لضبط إعدادات مشروع واحد، عدِّل الملف .vscode/mcp.json في مساحة العمل باتّباع الخطوات التالية:

"servers": {
  "firebase": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

لإتاحة الخادم في كل مشروع تفتحه، عدِّل إعدادات المستخدم:

"mcp": {
  "servers": {
    "firebase": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

محرّر التزلج الشراعي

لإعداد Windsurf Editor، عدِّل الملف ~/.codeium/windsurf/mcp_config.json:

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

الإعدادات الاختيارية

بالإضافة إلى الإعداد الأساسي لكل عميل، كما هو موضّح سابقًا، هناك مَعلمتان اختياريتان يمكنك تحديدهما:

  • --dir ABSOLUTE_DIR_PATH: المسار المطلق لدليل يحتوي على firebase.json، وذلك لضبط سياق مشروع لخادم MCP. في حال عدم تحديدها، ستتوفّر الأداتان get_project_directory وset_project_directory وسيكون الدليل التلقائي هو دليل العمل الذي تم فيه بدء تشغيل خادم MCP.

  • --only FEATURE_1,FEATURE_2: قائمة مفصولة بفواصل تتضمّن مجموعات الميزات التي سيتم تفعيلها. استخدِم هذا الخيار للحدّ من الأدوات المعروضة لتقتصر على الميزات التي تستخدمها حاليًا. يُرجى العِلم أنّ الأدوات الأساسية متاحة دائمًا.

على سبيل المثال:

"firebase": {
  "command": "npx",
  "args": [
    "-y",
    "firebase-tools@latest", "experimental:mcp",
    "--dir", "/Users/turing/my-project",
    "--only", "auth,firestore,storage"
  ]
}

إمكانات خادم MCP

يسرد الجدول التالي الأدوات التي يوفّرها خادم MCP. يمكنك أيضًا الاطّلاع على هذه المعلومات باستخدام الأمر:

npx firebase-tools@latest experimental:mcp --generate-tool-list
اسم الأداة مجموعة الميزات الوصف
firebase_login لُبّ (قلب الثمرة) تسجيل دخول المستخدم إلى واجهة سطر الأوامر (CLI) وخادم MCP في Firebase
firebase_logout لُبّ (قلب الثمرة) تسجيل الخروج من Firebase CLI
firebase_get_project لُبّ (قلب الثمرة) تعرض هذه السمة معلومات عن مشروع Firebase النشط حاليًا.
firebase_list_apps لُبّ (قلب الثمرة) يسترد هذا الحقل التطبيقات المسجّلة في مشروع Firebase الحالي.
firebase_get_admin_sdk_config لُبّ (قلب الثمرة) تعرض هذه الدالة إعدادات حزمة SDK للمشرف للمشروع الحالي.
firebase_list_projects لُبّ (قلب الثمرة) تعرض هذه الطريقة قائمة بمشاريع Firebase يصل عددها إلى العدد الإجمالي المحدّد.
firebase_get_sdk_config لُبّ (قلب الثمرة) تعرض هذه السمة معلومات إعداد حزمة تطوير البرامج (SDK) لمنصة Firebase للنظام الأساسي المحدّد. يجب تحديد إما منصة أو app_id.
firebase_create_project لُبّ (قلب الثمرة) تنشئ هذه الطريقة مشروعًا جديدًا على Firebase.
firebase_create_app لُبّ (قلب الثمرة) تُنشئ هذه السمة تطبيقًا جديدًا في مشروعك على Firebase للويب أو iOS أو Android.
firebase_create_android_sha لُبّ (قلب الثمرة) تضيف هذه السمة تجزئة لشهادة SHA إلى تطبيق Android حالي.
firebase_consult_assistant لُبّ (قلب الثمرة) يمكنك الوصول إلى مساعد مستنِد إلى الذكاء الاصطناعي ومتخصّص في جميع جوانب Firebase. استخدِم هذه الأداة للحصول على معلومات تفصيلية وأفضل الممارسات وخطوات تحديد المشاكل وحلّها وأمثلة على الرموز البرمجية ومساعدة سياقية بشأن خدمات Firebase وميزاتها وإعدادات المشاريع. ويشمل ذلك أسئلة حول Firestore وAuthentication وCloud Functions وHosting وStorage وAnalytics وغير ذلك. يمكنه أيضًا تقديم إحصاءات استنادًا إلى سياق مشروع Firebase الحالي.
firebase_get_environment لُبّ (قلب الثمرة) يستردّ معلومات عن بيئة Firebase الحالية، بما في ذلك المستخدم الحالي الذي تمّت مصادقته ودليل المشروع والمشروع النشط وغير ذلك.
firebase_update_environment لُبّ (قلب الثمرة) تعدِّل هذه السمة إعدادات بيئة Firebase، مثل دليل المشروع والمشروع النشط وحساب المستخدم النشط وغير ذلك. استخدِم firebase_get_environment للاطّلاع على البيئة التي تم ضبطها حاليًا.
firebase_init لُبّ (قلب الثمرة) تُستخدَم لضبط ميزات Firebase المحدّدة في مساحة العمل (Firestore وData Connect وRealtime Database). جميع الميزات اختيارية، لذا قدِّم المنتجات التي تريد إعدادها فقط. يمكنك تهيئة ميزات جديدة في دليل مشروع حالي، ولكن قد تؤدي إعادة تهيئة ميزة حالية إلى الكتابة فوق الإعدادات. لنشر الميزات التي تمّت تهيئتها، نفِّذ الأمر firebase deploy بعد أداة firebase_init.
firestore_delete_document firestore تحذف هذه الطريقة مستندات Firestore من قاعدة بيانات في المشروع الحالي من خلال مسارات المستندات الكاملة. استخدِم هذا الخيار إذا كنت تعرف المسار الدقيق للمستند.
firestore_get_documents firestore يستردّ هذا الإجراء مستندًا واحدًا أو أكثر من مستندات Firestore من قاعدة بيانات في المشروع الحالي من خلال مسارات المستندات الكاملة. استخدِم هذا الخيار إذا كنت تعرف المسار الدقيق للمستند.
firestore_list_collections firestore يستردّ هذا الإجراء قائمة بالمجموعات من قاعدة بيانات Firestore في المشروع الحالي.
firestore_query_collection firestore يسترد هذا الإجراء مستندًا واحدًا أو أكثر من مستندات Firestore من مجموعة هي قاعدة بيانات في المشروع الحالي من خلال مجموعة تتضمّن مسار مستند كامل. استخدِم هذا الخيار إذا كنت تعرف المسار الدقيق للمجموعة وعبارة الفلترة التي تريدها للمستند.
firestore_get_rules firestore تعرض هذه الطريقة قواعد أمان Firestore النشطة للمشروع الحالي.
firestore_validate_rules firestore للتحقّق من مصدر "قواعد Firestore" المقدَّم بحثًا عن أخطاء في البنية والتحقّق من الصحة يجب تقديم إما رمز المصدر للتحقّق من صحته أو مسار إلى ملف مصدر.
auth_get_user auth يستردّ هذا الإجراء مستخدمًا استنادًا إلى عنوان بريد إلكتروني أو رقم هاتف أو معرّف UID.
auth_disable_user auth يتم إيقاف مستخدم أو تفعيله استنادًا إلى معرّف UID.
auth_list_users auth يستردّ هذا الأمر جميع المستخدمين في المشروع حتى الحدّ المحدّد.
auth_set_claim auth تضبط هذه الطريقة مطالبة مخصّصة في حساب مستخدم معيّن. تُستخدَم لإنشاء قيم موثوق بها مرتبطة بمستخدم، مثل تصنيفه كمشرف. تكون المطالبات محدودة الحجم ويجب أن تكون موجزة في الاسم والقيمة. حدِّد مَعلمة واحدة فقط من المَعلمتَين value أو json_value.
auth_set_sms_region_policy auth تضبط هذه السمة "سياسة المناطق للرسائل القصيرة" في Firebase Auth لحظر المناطق التي يمكنها تلقّي الرسائل النصية استنادًا إلى قائمة "السماح" أو "الحظر" لرموز البلدان. ستلغي هذه السياسة أي سياسات حالية عند ضبطها.
dataconnect_build dataconnect استخدِم هذا الخيار لتجميع مخطط و/أو عمليات و/أو موصّلات Firebase Data Connect والتحقّق من أخطاء الإنشاء.
dataconnect_generate_schema dataconnect تنشئ هذه الدالة مخطط Firebase Data Connect استنادًا إلى وصف المستخدم للتطبيق.
dataconnect_generate_operation dataconnect تنشئ هذه الأداة طلب بحث أو تعديلاً واحدًا في Firebase Data Connect استنادًا إلى المخطط المنشور حاليًا والطلب المقدَّم.
dataconnect_list_services dataconnect عرض قائمة بالخدمات الحالية المحلية والخلفية في Firebase Data Connect
dataconnect_execute dataconnect تنفيذ عملية GraphQL على خدمة Data Connect أو المحاكي الخاص بها
storage_get_rules التخزين تعرض هذه الطريقة قواعد أمان Storage النشطة للمشروع الحالي.
storage_validate_rules التخزين تتحقّق هذه الطريقة من مصدر "قواعد التخزين" المقدَّم بحثًا عن أخطاء في البنية والتحقّق من الصحة. يجب تقديم إما رمز المصدر للتحقّق من صحته أو مسار إلى ملف مصدر.
storage_get_object_download_url التخزين يتم استرداد عنوان URL للتنزيل الخاص بأحد العناصر في Firebase Storage.
messaging_send_message المراسلة ترسل هذه السمة رسالة إلى رمز تسجيل أو موضوع في "المراسلة عبر السحابة الإلكترونية من Firebase". يمكن تقديم قيمة واحدة فقط من registration_token أو topic في مكالمة معيّنة.
remoteconfig_get_template remoteconfig استرداد نموذج إعداد عن بُعد للمشروع
remoteconfig_publish_template remoteconfig ينشر نموذج إعدادات جديدة عن بُعد للمشروع
remoteconfig_rollback_template remoteconfig الرجوع إلى إصدار معيّن من نموذج "الإعداد عن بُعد" لمشروع
crashlytics_add_note crashlytics إضافة ملاحظة إلى مشكلة من Crashlytics
crashlytics_delete_note crashlytics حذف ملاحظة من مشكلة في Crashlytics
crashlytics_get_issue_details crashlytics تعرض هذه الطريقة تفاصيل حول مشكلة معيّنة في Crashlytics.
crashlytics_get_sample_crash_for_issue crashlytics تعرض هذه الطريقة عينة من الأعطال لإحدى المشاكل.
crashlytics_list_notes crashlytics تعرض هذه السمة قائمة بجميع الملاحظات المتعلقة بمشكلة معيّنة في Crashlytics.
crashlytics_list_top_devices crashlytics تعرض هذه السمة أهم الأجهزة من Crashlytics لأحد التطبيقات.
crashlytics_list_top_issues crashlytics أدرِج أهم الأعطال من Crashlytics التي تحدث في التطبيق.
crashlytics_list_top_operating_systems crashlytics أدرِج أهم أنظمة التشغيل من Crashlytics لأحد التطبيقات.
crashlytics_list_top_versions crashlytics أدرِج أهم الإصدارات من Crashlytics لأحد التطبيقات.
crashlytics_update_issue crashlytics تعديل حالة مشكلة في Crashlytics
apphosting_fetch_logs apphosting يجلب هذا الأمر أحدث السجلات لخادم خلفي محدّد في App Hosting. في حال تحديد buildLogs، يتم عرض سجلّات عملية الإنشاء لأحدث إصدار. يتم إدراج أحدث السجلات أولاً.
apphosting_list_backends apphosting تعرض هذه الطريقة قائمة بخوادم App Hosting الخلفية في المشروع الحالي. تعني القائمة الفارغة أنّه لا توجد أنظمة خلفية. ‫uri هو عنوان URL العلني للخادم الخلفي. ستحتوي الخلفية النشطة على صفيف managed_resources يتضمّن إدخال run_service. run_service.service هو اسم مورد خدمة Cloud Run التي تستضيف الخلفية في App Hosting. الجزء الأخير من هذا الاسم هو معرّف الخدمة. domains هي قائمة بالنطاقات المرتبطة بالخادم الخلفي. يجب أن يكون نوعها CUSTOM أو DEFAULT. يجب أن يتضمّن كل خادم خلفي نطاق DEFAULT. النطاق الفعلي الذي سيستخدمه المستخدم للاتصال بالخادم الخلفي هو المَعلمة الأخيرة من اسم مورد النطاق. إذا تم إعداد نطاق خاص بشكلٍ صحيح، ستنتهي حالاته بـ ACTIVE.
database_get_data قاعدة البيانات تعرض هذه الدالة بيانات RTDB من الموقع الجغرافي المحدّد
database_set_data قاعدة البيانات يكتب بيانات RTDB في الموقع الجغرافي المحدّد
database_get_rules قاعدة البيانات الحصول على قواعد قاعدة بيانات RTDB
database_validate_rules قاعدة البيانات التحقّق من صحة قواعد قاعدة بيانات RTDB