خادم Firebase MCP

يمكنك استخدام خادم Firebase MCP لمنح أدوات التطوير المستندة إلى الذكاء الاصطناعي (AI) القدرة على العمل مع مشاريعك على 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 و"مساحة التخزين السحابي لـ Firebase"
  • إرسال الرسائل باستخدام "المراسلة عبر السحابة الإلكترونية من Firebase"

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

قبل البدء

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

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

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

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

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

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

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

Claude Desktop

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

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

كرم

لضبط Cline لاستخدام خادم Firebase MCP، عدِّل ملف cline_mcp_settings.json. يمكنك فتح هذا الملف أو إنشاؤه من خلال النقر على رمز "خوادم MCP" في أعلى لوحة "العملاء"، ثم النقر على الزر ضبط خوادم 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

اسم الأداة مجموعة الميزات الوصف
firebase_get_project لُبّ (قلب الثمرة) يسترجع معلومات عن مشروع Firebase النشط حاليًا.
firebase_list_apps لُبّ (قلب الثمرة) يسترجع التطبيقات المسجّلة في مشروع Firebase الحالي.
firebase_get_admin_sdk_config لُبّ (قلب الثمرة) تحصل على إعدادات حزمة Admin SDK للمشروع الحالي.
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_get_environment لُبّ (قلب الثمرة) يسترجع معلومات عن بيئة Firebase الحالية، بما في ذلك المستخدم الحالي الذي تم مصادقة هويته ودليل المشروع والمشروع النشط وغير ذلك.
firebase_update_environment لُبّ (قلب الثمرة) تعديل إعدادات بيئة Firebase، مثل دليل المشروع والمشروع النشط وحساب المستخدم النشط وغير ذلك استخدِم firebase_get_environment للاطّلاع على البيئة التي تم ضبطها حاليًا.
firebase_init لُبّ (قلب الثمرة) يبدأ إعداد ميزات Firebase المحدّدة في مساحة العمل. جميع الميزات اختيارية، ما عليك سوى تقديم المنتجات التي تريد إعدادها. يمكنك إعداد ميزات جديدة في دليل مشروع حالي، ولكن قد تؤدي إعادة إعداد ميزة حالية إلى استبدال الإعدادات.
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 يسترجع مستخدمًا استنادًا إلى عنوان بريد إلكتروني أو رقم هاتف أو رقم تعريف مستخدم.
auth_disable_user auth يُوقِف هذا الإجراء مستخدمًا أو يفعّله استنادًا إلى معرّف مستخدم فريد.
auth_list_users auth يسترجع جميع المستخدمين في المشروع حتى الحدّ المحدّد.
auth_set_claim auth تُستخدَم لضبط مطالبة مخصّصة في حساب مستخدم معيّن. استخدِم هذا الإجراء لإنشاء قيم موثوق بها مرتبطة بمستخدم، مثل وضع علامة عليه كمشرف. تكون المطالبات محدودة الحجم ويجب أن تكون موجزة في الاسم والقيمة. حدِّد مَعلمة واحدة فقط من value أو json_value.
auth_set_sms_region_policy auth تُستخدَم لضبط سياسة منطقة الرسائل القصيرة في Firebase Auth لحظر المناطق التي يمكنها تلقّي الرسائل النصية استنادًا إلى قائمة ALLOW أو DENY الخاصة برموز البلدان. ستلغي هذه السياسة أي سياسات حالية عند ضبطها.
dataconnect_list_services 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 تنفيذ عملية تعديل في Data Connect تم نشرها على خدمة أو محاكي لها يمكنه قراءة البيانات وكتابتها.
dataconnect_execute_query dataconnect تنفيذ طلب بحث Data Connect المنشور في خدمة أو محاكيها لا يمكن كتابة أي بيانات.
storage_get_rules التخزين تستردّ قواعد أمان "مساحة التخزين" النشطة للمشروع الحالي.
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_list_top_issues crashlytics أدرِج أهم الأعطال التي تحدث في التطبيق من خلال Crashlytics.