שרת MCP של Firebase

אתם יכולים להשתמש בשרת Firebase MCP כדי לתת לכלי פיתוח מבוססי-AI את היכולת לעבוד עם פרויקטים של Firebase. שרת ה-MCP של Firebase פועל עם כל כלי שיכול לשמש כלקוח MCP, כולל Claude Desktop,‏ Cline,‏ Cursor,‏ Visual Studio Code Copilot,‏ Windsurf Editor ועוד.

עורך שהוגדר לשימוש בשרת Firebase MCP יכול להשתמש ביכולות ה-AI שלו כדי לעזור לכם:

  • יצירה וניהול של פרויקטים ב-Firebase
  • ניהול המשתמשים ב-Firebase Authentication
  • עבודה עם נתונים ב-Cloud Firestore וב-Firebase Data Connect
  • אחזור סכימות של Firebase Data Connect
  • הסבר על כללי האבטחה של Firestore ו-Cloud Storage for Firebase
  • שליחת הודעות באמצעות Firebase Cloud Messaging

חלק מהכלים משתמשים ב-Gemini ב-Firebase כדי לעזור לכם:

  • יצירת סכימה ופעולות של Firebase Data Connect
  • התייעצות עם Gemini לגבי מוצרי Firebase

אלה רק רשימות חלקיות. הרשימה המלאה של הכלים שזמינים לעורך מופיעה בקטע יכולות השרת.

כששרת ה-MCP של Firebase מבצע קריאות לכלים, הוא משתמש באותם פרטי משתמש שמאשרים את Firebase CLI בסביבה שבה הוא פועל. יכול להיות שזה משתמש שמחובר לחשבון או Application Default Credentials, בהתאם לסביבה.

לפני שמתחילים

מוודאים שיש לכם התקנה תקינה של Node.js ו-npm.

הגדרת מינוי לקוח ב-MCP

שרת ה-MCP של Firebase יכול לעבוד עם כל לקוח MCP שתומך ב-I/O רגיל (stdio) כאמצעי התעבורה. הנה הוראות ספציפיות לכמה כלים פופולריים:

הגדרה בסיסית

Firebase Studio

כדי להגדיר את Firebase Studio כך שישתמש בשרת Firebase MCP, עורכים או יוצרים את קובץ ההגדרה: .idx/mcp.json.

אם הקובץ עדיין לא קיים, יוצרים אותו על ידי לחיצה ימנית על ספריית האב ובחירה באפשרות New file (קובץ חדש). מוסיפים את התוכן הבא לקובץ:

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

‫Gemini CLI ו-Gemini Code Assist

כדי להגדיר את Gemini CLI או את Gemini Code Assist כך שישתמשו בשרת ה-MCP של Firebase, צריך לערוך או ליצור את קובצי ההגדרות:

  • בפרויקט שלכם: .gemini/settings.json
  • בספריית הבית: ~/.gemini/settings.json

אם הקובץ עדיין לא קיים, יוצרים אותו על ידי לחיצה ימנית על ספריית האב ובחירה באפשרות New file (קובץ חדש). מוסיפים את התוכן הבא לקובץ:

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

Claude Desktop

כדי להגדיר את Claude Desktop כך שישתמש בשרת Firebase MCP, עורכים את הקובץ claude_desktop_config.json. אפשר לפתוח או ליצור את הקובץ הזה בתפריט Claude > Settings. לוחצים על הכרטיסייה Developer (מפתח) ואז על Edit Config (עריכת ההגדרה).

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

Claude Code

כדי להגדיר את Claude Code כך שישתמש בשרת Firebase MCP, מריצים את הפקודה הבאה בתיקיית האפליקציה:

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 לשימוש בשרת Firebase MCP, עורכים את הקובץ cline_mcp_settings.json. כדי לפתוח או ליצור את הקובץ הזה, לוחצים על סמל שרתי ה-MCP בחלק העליון של חלונית ה-Cline ואז על הלחצן Configure MCP Servers (הגדרת שרתי ה-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 core הפקודה מכניסה את המשתמש ל-Firebase CLI ולשרת MCP.
firebase_logout core התנתקות מ-Firebase CLI
firebase_get_project core מאחזר מידע על פרויקט Firebase שפעיל כרגע.
firebase_list_apps core מאחזר את האפליקציות שרשומות בפרויקט Firebase הנוכחי.
firebase_get_admin_sdk_config core הפונקציה מחזירה את ההגדרה של Admin SDK עבור הפרויקט הנוכחי.
firebase_list_projects core מאחזר רשימה של פרויקטים ב-Firebase עד למספר הכולל שצוין.
firebase_get_sdk_config core מאחזר את פרטי ההגדרה של Firebase SDK עבור הפלטפורמה שצוינה. חובה לציין פלטפורמה או מזהה אפליקציה (app_id).
firebase_create_project core יצירת פרויקט חדש ב-Firebase.
firebase_create_app core יצירת אפליקציה חדשה בפרויקט Firebase לאתר, ל-iOS או ל-Android.
firebase_create_android_sha core הוספת hash של אישור SHA לאפליקציית Android קיימת.
firebase_consult_assistant core גישה לעוזר AI שמתמחה בכל ההיבטים של Firebase. בעזרת הכלי הזה אפשר לקבל מידע מפורט, שיטות מומלצות, שלבים לפתרון בעיות, דוגמאות קוד ועזרה לפי הקשר בנוגע לשירותים, לתכונות ולהגדרות של פרויקטים ב-Firebase. השאלות האלה כוללות שאלות לגבי Firestore, אימות, Cloud Functions, אירוח, אחסון, Analytics ועוד. הוא יכול גם לספק תובנות על סמך ההקשר הנוכחי של פרויקט Firebase.
firebase_get_environment core הפקודה מאחזרת מידע על סביבת Firebase הנוכחית, כולל המשתמש הנוכחי שאומת, ספריית הפרויקט, הפרויקט הפעיל ועוד.
firebase_update_environment core עדכונים של הגדרות הסביבה של Firebase, כמו ספריית הפרויקט, הפרויקט הפעיל, חשבון המשתמש הפעיל ועוד. משתמשים ב-firebase_get_environment כדי לראות את הסביבה שמוגדרת כרגע.
firebase_init core מפעיל תכונות נבחרות של 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 אימות מאחזר משתמש על סמך כתובת אימייל, מספר טלפון או UID.
auth_disable_user אימות השבתה או הפעלה של משתמש על סמך UID.
auth_list_users אימות מאחזר את כל המשתמשים בפרויקט עד למגבלה שצוינה.
auth_set_claim אימות הגדרה של תביעת בעלות מותאמת אישית בחשבון של משתמש ספציפי. השימוש הוא ליצירת ערכים מהימנים שמשויכים למשתמש, למשל סימון משתמש כאדמין. התביעות מוגבלות בגודלן, והשם והערך שלהן צריכים להיות תמציתיים. צריך לציין רק אחד מהפרמטרים value או json_value.
auth_set_sms_region_policy אימות מגדיר מדיניות אזורית ל-SMS ב-Firebase Auth כדי להגביל את האזורים שיכולים לקבל הודעות טקסט על סמך רשימת קודי מדינות של ALLOW (אישור) או DENY (דחייה). אם המדיניות הזו מוגדרת, היא מבטלת את כל המדיניות הקיימת.
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 הפונקציה מאחזרת את היומנים האחרונים של קצה עורפי (backend) ספציפי של App Hosting. אם מציינים את buildLogs, היומנים מתהליך הבנייה של הבנייה האחרונה מוחזרים. היומנים האחרונים מופיעים ראשונים.
apphosting_list_backends apphosting מאחזר רשימה של שרתים עורפיים של App Hosting בפרויקט הנוכחי. רשימה ריקה מציינת שאין שרתי קצה עורפיים. ‫uri היא כתובת ה-URL הציבורית של ה-Backend. בקצה העורפי הפעיל יהיה מערך managed_resources שיכיל רשומה run_service. ‫run_service.service הוא שם המשאב של שירות Cloud Run שמשרת את ה-backend של אירוח האפליקציות. הפלח האחרון בשם הזה הוא מזהה השירות. ‫domains היא רשימת הדומיינים שמשויכים לקצה העורפי. הסוג שלהם הוא CUSTOM או DEFAULT. לכל קצה עורפי צריך להיות דומיין DEFAULT. הדומיין בפועל שמשתמש יכול להשתמש בו כדי להתחבר לחלק האחורי הוא הפרמטר האחרון של שם משאב הדומיין. אם דומיין מותאם אישית מוגדר בצורה נכונה, הסיומת של הסטטוסים שלו תהיה ACTIVE.
database_get_data מסד נתונים הפונקציה מחזירה נתונים מ-RTDB מהמיקום שצוין
database_set_data מסד נתונים כתיבת נתוני RTDB למיקום שצוין
database_get_rules מסד נתונים אחזור הכללים של מסד נתונים ב-RTDB
database_validate_rules מסד נתונים מאמת את הכללים של מסד נתונים ב-RTDB