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