Firebase MCP सर्वर का इस्तेमाल करके, एआई की मदद से काम करने वाले डेवलपमेंट टूल को अपने Firebase प्रोजेक्ट के साथ काम करने की अनुमति दी जा सकती है. Firebase MCP सर्वर, ऐसे किसी भी टूल के साथ काम करता है जो MCP क्लाइंट के तौर पर काम कर सकता है. जैसे, Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor वगैरह.
Firebase MCP सर्वर का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया एडिटर, एआई की सुविधाओं का इस्तेमाल कर सकता है. इससे आपको इन कामों में मदद मिलेगी:
- Firebase प्रोजेक्ट बनाना और उन्हें मैनेज करना
- Firebase Authentication के उपयोगकर्ताओं को मैनेज करना
- Cloud Firestore और Firebase Data Connect में डेटा का इस्तेमाल करना
- Firebase Data Connect स्कीमा वापस पाना
- Firestore और Cloud Storage for Firebase के लिए सुरक्षा नियमों को समझना
- Firebase क्लाउड से मैसेज भेजने की सुविधा
कुछ टूल, आपकी मदद करने के लिए Gemini in Firebase का इस्तेमाल करते हैं:
- Firebase Data Connect स्कीमा और कार्रवाइयां जनरेट करना
- Firebase प्रॉडक्ट के बारे में Gemini से सलाह लेना
ये सिर्फ़ कुछ उदाहरण हैं. Editor के लिए उपलब्ध टूल की पूरी सूची देखने के लिए, सर्वर की सुविधाएं सेक्शन देखें.
जब Firebase MCP सर्वर टूल कॉल करता है, तो वह उपयोगकर्ता के उन्हीं क्रेडेंशियल का इस्तेमाल करता है जो उस एनवायरमेंट में Firebase CLI को अनुमति देते हैं जहां यह चल रहा है. यह लॉग-इन किया हुआ उपयोगकर्ता या एनवायरमेंट के हिसाब से ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल हो सकता है.
शुरू करने से पहले
पक्का करें कि आपके पास Node.js और npm का वर्किंग इंस्टॉलेशन हो.
नीचे दिए गए कमांड को चलाकर, Firebase CLI की पुष्टि करें:
npx -y firebase-tools@latest login --reauth
Firebase MCP सर्वर, CLI का इस्तेमाल करके आपके Firebase प्रोजेक्ट की पुष्टि करता है. MCP सर्वर का इस्तेमाल करने से पहले, आपको सीएलआई की मदद से पुष्टि करनी होगी. अगर सर्वर का इस्तेमाल बिना साइन इन किए किया जाता है या आपके पुष्टि करने वाले टोकन की समयसीमा खत्म हो गई है, तो सर्वर गड़बड़ी का मैसेज दिखाएगा. इसमें आपको फिर से पुष्टि करने के लिए कहा जाएगा.
अपना एमसीपी क्लाइंट सेट अप करना
Firebase MCP सर्वर, ऐसे किसी भी MCP क्लाइंट के साथ काम कर सकता है जो ट्रांसपोर्ट मीडियम के तौर पर स्टैंडर्ड I/O (stdio) के साथ काम करता है. यहां कुछ लोकप्रिय टूल के लिए खास निर्देश दिए गए हैं:
बुनियादी कॉन्फ़िगरेशन
Firebase Studio
Firebase Studio को Firebase MCP सर्वर का इस्तेमाल करने के लिए कॉन्फ़िगर करने के लिए, कॉन्फ़िगरेशन फ़ाइल में बदलाव करें या उसे बनाएं: .idx/mcp.json
.
अगर फ़ाइल मौजूद नहीं है, तो पैरंट डायरेक्ट्री पर राइट क्लिक करके और नई फ़ाइल चुनकर इसे बनाएं. फ़ाइल में यह कॉन्टेंट जोड़ें:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Gemini CLI
Firebase MCP सर्वर का इस्तेमाल करने के लिए, Gemini CLI को कॉन्फ़िगर करने के लिए, कॉन्फ़िगरेशन फ़ाइलें बदलें या बनाएं:
- आपके प्रोजेक्ट में:
.gemini/settings.json
- अपनी होम डायरेक्ट्री में:
~/.gemini/settings.json
अगर फ़ाइल मौजूद नहीं है, तो पैरंट डायरेक्ट्री पर राइट क्लिक करके और नई फ़ाइल चुनकर इसे बनाएं. फ़ाइल में यह कॉन्टेंट जोड़ें:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
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
फ़ाइल में बदलाव करें. इस फ़ाइल को खोलने या बनाने के लिए, Cline पैन के सबसे ऊपर मौजूद MCP सर्वर आइकॉन पर क्लिक करें. इसके बाद, MCP सर्वर कॉन्फ़िगर करें बटन पर क्लिक करें.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
कर्सर
Firebase MCP सर्वर का इस्तेमाल करने के लिए Cursor को कॉन्फ़िगर करने के लिए, .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
वाली डायरेक्ट्री का ऐब्सलूट पाथ. इसका इस्तेमाल, एमसीपी सर्वर के लिए प्रोजेक्ट कॉन्टेक्स्ट सेट करने के लिए किया जाता है. यह जानकारी उपलब्ध न होने पर,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, और Realtime Database. सभी सुविधाएं इस्तेमाल करना ज़रूरी नहीं है. सिर्फ़ उन प्रॉडक्ट की जानकारी दें जिन्हें आपको सेट अप करना है. किसी मौजूदा प्रोजेक्ट डायरेक्ट्री में नई सुविधाएं शुरू की जा सकती हैं. हालांकि, किसी मौजूदा सुविधा को फिर से शुरू करने पर, कॉन्फ़िगरेशन बदल सकता है. शुरू की गई सुविधाओं को डिप्लॉय करने के लिए, 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 Rules के दिए गए सोर्स की जांच करता है. पुष्टि करने के लिए, सोर्स कोड या सोर्स फ़ाइल का पाथ दें. |
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 के लिए, एसएमएस क्षेत्र की नीति सेट करता है. इससे उन क्षेत्रों को प्रतिबंधित किया जा सकता है जिन्हें देश के कोड की 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 Schema के बारे में जानकारी पाएं. इसमें Cloud SQL डेटा सोर्स और डेटा मॉडल के बारे में बताने वाला GraphQL Schema शामिल है. |
dataconnect_get_connectors | dataconnect | प्रोजेक्ट में Firebase Data Connect कनेक्टर पाएं. इनमें पहले से तय की गई GraphQL क्वेरी शामिल होती हैं, जिन्हें क्लाइंट एसडीके ऐक्सेस कर सकते हैं. |
dataconnect_execute_graphql | dataconnect | यह Data Connect सेवा या उसके एम्युलेटर के ख़िलाफ़, किसी भी GraphQL को एक्ज़ीक्यूट करता है. |
dataconnect_execute_graphql_read | dataconnect | यह Data Connect सेवा या उसके एम्युलेटर के ख़िलाफ़, कोई भी GraphQL क्वेरी चलाता है. डेटा नहीं लिखा जा सकता. |
dataconnect_execute_mutation | dataconnect | यह कुकी, किसी सेवा या उसके एम्युलेटर के ख़िलाफ़ डिप्लॉय किए गए डेटा कनेक्ट म्यूटेशन को लागू करती है. डेटा को पढ़ और लिख सकता है. |
dataconnect_execute_query | dataconnect | यह कुकी, किसी सेवा या उसके एम्युलेटर के ख़िलाफ़, डिप्लॉय की गई Data Connect क्वेरी को एक्ज़ीक्यूट करती है. कोई डेटा नहीं लिखा जा सकता. |
storage_get_rules | मेमोरी | यह मौजूदा प्रोजेक्ट के लिए, स्टोरेज की सुरक्षा से जुड़े चालू नियमों को वापस लाता है. |
storage_validate_rules | मेमोरी | यह फ़ंक्शन, सिंटैक्स और पुष्टि से जुड़ी गड़बड़ियों के लिए, Storage 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 | ऐप्लिकेशन में Crashlytics की वजह से होने वाले सबसे ज़्यादा क्रैश की सूची बनाओ. |
apphosting_fetch_logs | apphosting | यह कमांड, App Hosting के किसी बैकएंड के लिए सबसे नए लॉग फ़ेच करती है. अगर buildLogs तय किया गया है, तो सबसे नए बिल्ड के लिए, बिल्ड प्रोसेस के लॉग दिखाए जाते हैं. सबसे हाल के लॉग सबसे ऊपर दिखते हैं. |
apphosting_list_backends | apphosting | यह कुकी, मौजूदा प्रोजेक्ट में App Hosting बैकएंड की सूची को फिर से हासिल करती है. खाली सूची का मतलब है कि कोई बैकएंड नहीं है. uri , बैकएंड का सार्वजनिक यूआरएल है. काम कर रहे बैकएंड में एक managed_resources अरे होगा, जिसमें एक run_service एंट्री होगी. यह run_service.service , App Hosting के बैकएंड को सेवा देने वाली Cloud Run सेवा का संसाधन नाम है. उस नाम का आखिरी सेगमेंट, सेवा का आईडी होता है. domains , बैकएंड से जुड़े डोमेन की सूची होती है. इनकी वैल्यू CUSTOM या DEFAULT होती है. हर बैकएंड में DEFAULT डोमेन होना चाहिए. वह असली डोमेन जिसका इस्तेमाल करके उपयोगकर्ता बैकएंड से कनेक्ट करेगा, डोमेन संसाधन के नाम का आखिरी पैरामीटर होता है. अगर कस्टम डोमेन को सही तरीके से सेट अप किया गया है, तो उसके स्टेटस ACTIVE पर खत्म होंगे. |