Firebase MCP सर्वर का इस्तेमाल करके, एआई (AI) के साथ काम करने वाले डेवलपमेंट टूल को अपने Firebase प्रोजेक्ट के साथ काम करने की अनुमति दी जा सकती है. Firebase एमसीपी सर्वर, एमसीपी क्लाइंट के तौर पर काम करने वाले किसी भी टूल के साथ काम करता है. जैसे, Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor वगैरह.
Firebase MCP सर्वर का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया एडिटर, एआई की सुविधाओं का इस्तेमाल करके इन कामों में आपकी मदद कर सकता है:
- Firebase प्रोजेक्ट बनाना और उन्हें मैनेज करना
- Firebase Authentication के उपयोगकर्ताओं को मैनेज करना
- Cloud Firestore और Firebase Data Connect में डेटा का इस्तेमाल करना
- Firebase Data Connect स्कीमा वापस लाना
- Firestore और Firebase के लिए Cloud Storage के सुरक्षा नियमों को समझना
- Firebase Cloud Messaging की मदद से मैसेज भेजना
कुछ टूल, आपकी मदद करने के लिए Firebase में Gemini का इस्तेमाल करते हैं:
- Firebase Data Connect स्कीमा और ऑपरेशन जनरेट करना
- Firebase के प्रॉडक्ट के बारे में Gemini से सलाह लेना
ये सिर्फ़ कुछ टूल की सूचियां हैं. अपने एडिटर के लिए उपलब्ध टूल की पूरी सूची देखने के लिए, सर्वर की सुविधाएं सेक्शन देखें.
जब Firebase MCP सर्वर, टूल कॉल करता है, तो वह उन उपयोगकर्ता क्रेडेंशियल का इस्तेमाल करता है जिनसे उसी एनवायरमेंट में Firebase CLI को अनुमति मिलती है जहां वह चल रहा है. यह लॉग इन किया गया उपयोगकर्ता या ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल हो सकता है. यह इस बात पर निर्भर करता है कि आपने किस तरह का एनवायरमेंट सेट अप किया है.
शुरू करने से पहले
पक्का करें कि आपके कंप्यूटर पर Node.js और npm सही तरीके से इंस्टॉल हो.
नीचे दिया गया कमांड चलाकर, Firebase CLI की पुष्टि करें:
npx -y firebase-tools@latest login --reauth
Firebase MCP सर्वर, आपके Firebase प्रोजेक्ट की पुष्टि करने के लिए, CLI का इस्तेमाल करता है. MCP सर्वर का इस्तेमाल करने से पहले, आपको सीएलआई से पुष्टि करनी होगी. अगर साइन इन किए बिना सर्वर का इस्तेमाल किया जाता है या पुष्टि करने वाले टोकन की समयसीमा खत्म हो जाती है, तो सर्वर गड़बड़ी का मैसेज प्रिंट करेगा. इसमें, आपको फिर से पुष्टि करने के लिए कहा जाएगा.
एमसीपी क्लाइंट सेट अप करना
Firebase एमसीपी सर्वर, ऐसे किसी भी एमसीपी क्लाइंट के साथ काम कर सकता है जो ट्रांसपोर्ट मीडियम के तौर पर स्टैंडर्ड I/O (stdio) के साथ काम करता है. यहां कुछ लोकप्रिय टूल के लिए खास निर्देश दिए गए हैं:
बुनियादी कॉन्फ़िगरेशन
Claude Desktop
Firebase MCP सर्वर का इस्तेमाल करने के लिए, Claude Desktop को कॉन्फ़िगर करने के लिए,
claude_desktop_config.json
फ़ाइल में बदलाव करें. इस फ़ाइल को खोलने या बनाने के लिए, Claude > सेटिंग मेन्यू में जाएं. डेवलपर टैब चुनें. इसके बाद, कॉन्फ़िगरेशन में बदलाव करें पर क्लिक करें.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
क्लाइन
Firebase MCP सर्वर का इस्तेमाल करने के लिए Cline को कॉन्फ़िगर करने के लिए, cline_mcp_settings.json
फ़ाइल में बदलाव करें. इस फ़ाइल को खोलने या बनाने के लिए, क्लाइन पैनल में सबसे ऊपर मौजूद एमसीपी सर्वर आइकॉन पर क्लिक करें. इसके बाद, एमसीपी सर्वर कॉन्फ़िगर करें बटन पर क्लिक करें.
{
"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 MCP सर्वर का इस्तेमाल करने के लिए, Firebase Studio को कॉन्फ़िगर करने के लिए, कॉन्फ़िगरेशन फ़ाइल में बदलाव करें या नई फ़ाइल बनाएं:
- Firebase Chat में Gemini,
.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
Windsurf Editor को कॉन्फ़िगर करने के लिए, फ़ाइल में बदलाव करें
~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
वैकल्पिक कॉन्फ़िगरेशन
ऊपर दिखाए गए हर क्लाइंट के बुनियादी कॉन्फ़िगरेशन के अलावा, दो वैकल्पिक पैरामीटर भी तय किए जा सकते हैं:
--dir ABSOLUTE_DIR_PATH
:firebase.json
वाली डायरेक्ट्री का ऐब्सलूट पाथ, ताकि एमसीपी सर्वर के लिए प्रोजेक्ट का कॉन्टेक्स्ट सेट किया जा सके. अगर कोई डायरेक्ट्री नहीं दी जाती है, तोget_project_directory
औरset_project_directory
टूल उपलब्ध हो जाएंगे. साथ ही, डिफ़ॉल्ट डायरेक्ट्री वह काम करने वाली डायरेक्ट्री होगी जहां एमसीपी सर्वर शुरू किया गया था.--only FEATURE_1,FEATURE_2
: चालू करने के लिए, सुविधाओं के ग्रुप की सूची, जिसमें कॉमा लगा हो. इसका इस्तेमाल करके, सिर्फ़ उन सुविधाओं के लिए टूल दिखाए जा सकते हैं जिनका इस्तेमाल किया जा रहा है. ध्यान दें कि मुख्य टूल हमेशा उपलब्ध होते हैं
उदाहरण के लिए:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
एमसीपी सर्वर की सुविधाएं
टूल का नाम | फ़ीचर ग्रुप | ब्यौरा |
---|---|---|
firebase_get_project | कोर | फ़िलहाल चालू Firebase प्रोजेक्ट के बारे में जानकारी दिखाता है. |
firebase_list_apps | कोर | मौजूदा Firebase प्रोजेक्ट में रजिस्टर किए गए ऐप्लिकेशन को वापस लाता है. |
firebase_get_admin_sdk_config | कोर | मौजूदा प्रोजेक्ट के लिए, Admin SDK कॉन्फ़िगरेशन पाता है. |
firebase_list_projects | कोर | तय की गई कुल संख्या तक Firebase प्रोजेक्ट की सूची दिखाता है. |
firebase_get_sdk_config | कोर | यह किसी प्लैटफ़ॉर्म के लिए, Firebase SDK टूल के कॉन्फ़िगरेशन की जानकारी दिखाता है. आपको प्लैटफ़ॉर्म या app_id में से किसी एक की वैल्यू देनी होगी. |
firebase_create_project | कोर | नया Firebase प्रोजेक्ट बनाता है. |
firebase_create_app | कोर | यह वेब, iOS या Android के लिए, आपके Firebase प्रोजेक्ट में एक नया ऐप्लिकेशन बनाता है. |
firebase_create_android_sha | कोर | किसी मौजूदा Android ऐप्लिकेशन में SHA सर्टिफ़िकेट हैश जोड़ता है. |
firebase_consult_assistant | कोर | Firebase से जुड़े सवालों के जवाब देने के लिए खास तौर पर बनाई गई एआई असिस्टेंट को सवाल भेजें. |
firebase_get_environment | कोर | मौजूदा Firebase एनवायरमेंट के बारे में जानकारी दिखाता है. इसमें, पुष्टि किए गए मौजूदा उपयोगकर्ता, प्रोजेक्ट डायरेक्ट्री, चालू प्रोजेक्ट वगैरह की जानकारी शामिल है. |
firebase_update_environment | कोर | Firebase एनवायरमेंट कॉन्फ़िगरेशन को अपडेट करता है. जैसे, प्रोजेक्ट डायरेक्ट्री, चालू प्रोजेक्ट, चालू उपयोगकर्ता खाता वगैरह. फ़िलहाल कॉन्फ़िगर किया गया एनवायरमेंट देखने के लिए, firebase_get_environment का इस्तेमाल करें. |
firebase_init | कोर | फ़ाइल फ़ोल्डर में चुनी गई Firebase सुविधाओं (Firestore, Data Connect, रीयलटाइम डेटाबेस) को शुरू करता है. सभी सुविधाएं ज़रूरी नहीं हैं. सिर्फ़ वे प्रॉडक्ट दें जिन्हें सेट अप करना है. किसी मौजूदा प्रोजेक्ट डायरेक्ट्री में नई सुविधाएं शुरू की जा सकती हैं. हालांकि, किसी मौजूदा सुविधा को फिर से शुरू करने से कॉन्फ़िगरेशन ओवरराइट हो सकता है. शुरू की गई सुविधाओं को डिप्लॉय करने के लिए, firebase_init टूल के बाद firebase deploy कमांड चलाएं. |
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 | ईमेल पते, फ़ोन नंबर या यूआईडी के आधार पर उपयोगकर्ता को वापस लाता है. |
auth_disable_user | auth | यह यूआईडी के आधार पर, किसी उपयोगकर्ता को बंद या चालू करता है. |
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 | Data Connect सेवा या उसके एमुलेटर के लिए, मनमुताबिक GraphQL को लागू करता है. |
dataconnect_execute_graphql_read | dataconnect | Data Connect सेवा या उसके एमुलेटर के लिए, कोई भी GraphQL क्वेरी चलाता है. डेटा नहीं लिखा जा सकता. |
dataconnect_execute_mutation | dataconnect | किसी सेवा या उसके एमुलेटर के लिए, डिप्लॉय किया गया Data Connect म्यूटेशन लागू करता है. डेटा पढ़ने और उसमें बदलाव करने की अनुमति है. |
dataconnect_execute_query | dataconnect | किसी सेवा या उसके एमुलेटर के लिए, डिप्लॉय की गई Data Connect क्वेरी को लागू करता है. कोई डेटा नहीं लिखा जा सकता. |
storage_get_rules | मेमोरी | मौजूदा प्रोजेक्ट के लिए, Storage की सुरक्षा से जुड़े चालू नियमों को वापस लाता है. |
storage_validate_rules | मेमोरी | सिंटैक्स और पुष्टि से जुड़ी गड़बड़ियों के लिए, दिए गए स्टोरेज नियमों के सोर्स की जांच करता है. पुष्टि करने के लिए, सोर्स कोड या सोर्स फ़ाइल का पाथ दें. |
storage_get_object_download_url | मेमोरी | Firebase Storage में मौजूद किसी ऑब्जेक्ट का डाउनलोड यूआरएल दिखाता है. |
messaging_send_message | मैसेज सेवा | Firebase Cloud Messaging रजिस्ट्रेशन टोकन या विषय पर मैसेज भेजता है. किसी कॉल में registration_token या topic में से सिर्फ़ एक का इस्तेमाल किया जा सकता है. |
remoteconfig_get_template | remoteconfig | प्रोजेक्ट के लिए रिमोट कॉन्फ़िगरेशन टेंप्लेट को वापस लाता है |
remoteconfig_publish_template | remoteconfig | प्रोजेक्ट के लिए नया रिमोट कॉन्फ़िगरेशन टेंप्लेट पब्लिश करता है |
remoteconfig_rollback_template | remoteconfig | किसी प्रोजेक्ट के लिए, Remote Config टेंप्लेट के किसी खास वर्शन पर रोलबैक करना |
crashlytics_list_top_issues | crashlytics | ऐप्लिकेशन में क्रैश होने से जुड़ी क्रैशलिटिक्स की सबसे ज़्यादा क्रैश की सूची. |
apphosting_fetch_logs | apphosting | किसी ऐप्लिकेशन होस्टिंग बैकएंड के लिए, सबसे नए लॉग फ़ेच करता है. अगर buildLogs की वैल्यू दी जाती है, तो नए बिल्ड के लिए बिल्ड प्रोसेस के लॉग दिखाए जाते हैं. सबसे हाल के लॉग सबसे पहले दिखते हैं. |
apphosting_list_backends | apphosting | मौजूदा प्रोजेक्ट में, ऐप्लिकेशन होस्टिंग के बैकएंड की सूची दिखाता है. खाली सूची का मतलब है कि कोई बैकएंड नहीं है. uri , बैकएंड का सार्वजनिक यूआरएल है. काम करने वाले बैकएंड में एक managed_resources कलेक्शन होगा, जिसमें run_service एंट्री होगी. run_service.service , ऐप्लिकेशन होस्टिंग बैकएंड की सेवा देने वाली Cloud Run सेवा का संसाधन नाम है. उस नाम का आखिरी सेगमेंट, सेवा आईडी होता है. domains , बैकएंड से जुड़े डोमेन की सूची है. इनका टाइप CUSTOM या DEFAULT होता है. हर बैकएंड में DEFAULT डोमेन होना चाहिए. डोमेन रिसॉर्स नेम का आखिरी पैरामीटर, वह असल डोमेन होता है जिसका इस्तेमाल उपयोगकर्ता बैकएंड से कनेक्ट करने के लिए करता है. अगर कस्टम डोमेन सही तरीके से सेट अप किया गया है, तो उसकी स्थिति ACTIVE पर खत्म होगी. |