אתם יכולים להשתמש בשרת 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.
מריצים את הפקודה הבאה כדי לאמת את 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 . |