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