خادم Firebase MCP

يمكنك استخدام خادم MCP في Firebase لمنح أدوات التطوير المستندة إلى الذكاء الاصطناعي إمكانية العمل مع مشاريعك على Firebase. يعمل خادم Firebase MCP مع أي أداة يمكنها العمل كعميل 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 في البيئة التي يتم تشغيلها فيها. يمكن أن يكون ذلك مستخدمًا مسجّلاً الدخول أو بيانات الاعتماد التلقائية للتطبيق ، وذلك حسب البيئة.

قبل البدء

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

  2. يمكنك مصادقة واجهة سطر الأوامر (CLI) في Firebase من خلال تنفيذ الأمر التالي:

    npx -y firebase-tools@latest login --reauth

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

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

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

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

Claude Desktop

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

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

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"]
   }
}

Firebase Studio

لضبط Firebase Studio لاستخدام خادم Firebase MCP، عدِّل ملفات الإعداد أو أنشئها باتّباع الخطوات التالية:

  • تستخدم ميزة "الدردشة مع Gemini في Firebase" .idx/mcp.json.
  • تستخدم أداة Gemini CLI .gemini/settings.json.

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

{
  "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

اسم الأداة مجموعة الميزات الوصف
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_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_list_services dataconnect تعرض هذه السمة قائمة بخدمات Firebase Data Connect المتاحة في المشروع الحالي.
dataconnect_generate_schema dataconnect تُنشئ هذه الدالة مخطط Firebase Data Connect استنادًا إلى وصف المستخدم للتطبيق.
dataconnect_generate_operation dataconnect تنشئ هذه الأداة طلب بحث أو تعديلاً واحدًا في Firebase Data Connect استنادًا إلى المخطّط المنشور حاليًا والطلب المقدَّم.
dataconnect_get_schema dataconnect يمكنك استرداد معلومات حول مخطط Firebase Data Connect في المشروع، بما في ذلك مصادر بيانات Cloud SQL ومخطط GraphQL الذي يصف نموذج البيانات.
dataconnect_get_connectors dataconnect احصل على موصّلات Firebase Data Connect في المشروع، والتي تتضمّن طلبات بحث GraphQL المحدّدة مسبقًا والتي يمكن الوصول إليها من خلال حِزم تطوير البرامج (SDK) الخاصة بالعملاء.
dataconnect_execute_graphql dataconnect تنفيذ طلب GraphQL عشوائي مقابل خدمة Data Connect أو المحاكي الخاص بها
dataconnect_execute_graphql_read dataconnect ينفِّذ طلب بحث GraphQL عشوائيًا مقابل خدمة Data Connect أو المحاكي الخاص بها. يتعذّر كتابة البيانات.
dataconnect_execute_mutation dataconnect تنفيذ عملية تغيير في "أداة ربط البيانات" تم نشرها على إحدى الخدمات أو محاكيها يمكن قراءة البيانات وكتابتها.
dataconnect_execute_query dataconnect ينفّذ استعلام 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 ينشر نموذجًا جديدًا لإعدادات Remote Config للمشروع
remoteconfig_rollback_template remoteconfig العودة إلى إصدار معيّن من نموذج "الإعداد عن بُعد" لأحد المشاريع
crashlytics_list_top_issues 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.