שרת 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, בהתאם לסביבה.

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

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

  2. מריצים את הפקודה הבאה כדי לאמת את Firebase CLI:

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

    שרת ה-MCP של Firebase משתמש ב-CLI כדי לטפל באימות בפרויקטים שלכם ב-Firebase. צריך לעבור אימות ב-CLI לפני שמשתמשים בשרת MCP. אם תנסו להשתמש בשרת בלי להיכנס לחשבון, או אם תוקף טוקן האימות שלכם פג, השרת יציג הודעת שגיאה שתבקש מכם לבצע אימות מחדש.

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

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

הגדרה בסיסית

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

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

Firebase Studio

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

  • ‫Gemini בצ'אט של Firebase משתמש ב-.idx/mcp.json.
  • ממשק Gemini CLI משתמש ב-.gemini/settings.json.

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

{
  "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 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_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_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 מבצע מוטציה של Data Connect שנפרסה מול שירות או האמולטור שלו. אפשרות לקרוא ולכתוב נתונים.
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 פרסום תבנית חדשה של הגדרת תצורה מרחוק לפרויקט
remoteconfig_rollback_template remoteconfig חזרה לגרסה ספציפית של תבנית הגדרת תצורה מרחוק בפרויקט
crashlytics_list_top_issues 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.