Firebase MCP सर्वर का इस्तेमाल करके, एआई की मदद से काम करने वाले डेवलपमेंट टूल को अपने Firebase प्रोजेक्ट के साथ काम करने की अनुमति दी जा सकती है. Firebase 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 एमसीपी सर्वर, किसी भी ऐसे एमसीपी क्लाइंट के साथ काम कर सकता है जो ट्रांसपोर्ट मीडियम के तौर पर स्टैंडर्ड 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 और Gemini Code Assist
Firebase MCP सर्वर का इस्तेमाल करने के लिए, Gemini CLI या Gemini Code Assist को कॉन्फ़िगर करने के लिए, कॉन्फ़िगरेशन फ़ाइलें बदलें या बनाएं:
- आपके प्रोजेक्ट में:
.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"]
}
}
}
Claude Code
Firebase MCP सर्वर का इस्तेमाल करने के लिए, Claude Code को कॉन्फ़िगर करने के लिए, अपने ऐप्लिकेशन फ़ोल्डर में जाकर यह कमांड चलाएं:
claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp
इंस्टॉल होने की पुष्टि करने के लिए, यह कमांड चलाएं:
claude mcp list
इसमें यह जानकारी दिखनी चाहिए:
firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected
क्लाइन
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"
]
}
एमसीपी सर्वर की सुविधाएं
यहां दी गई टेबल में, उन टूल की सूची दी गई है जिन्हें एमसीपी सर्वर उपलब्ध कराता है. इस जानकारी को देखने के लिए, इस कमांड का इस्तेमाल भी किया जा सकता है:
npx firebase-tools@latest experimental:mcp --generate-tool-list
टूल का नाम | फ़ीचर ग्रुप | ब्यौरा |
---|---|---|
firebase_login | कोर | यह कुकी, उपयोगकर्ता को Firebase CLI और MCP सर्वर में लॉग इन करती है. |
firebase_logout | कोर | CLI को Firebase से लॉग आउट करना |
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 की सेवाओं, सुविधाओं, और प्रोजेक्ट कॉन्फ़िगरेशन के बारे में ज़्यादा जानकारी, सबसे सही तरीके, समस्या हल करने के तरीके, कोड के उदाहरण, और संदर्भ के हिसाब से मदद पाएं. इसमें Firestore, Authentication, Cloud Functions, Hosting, Storage, Analytics वगैरह के बारे में सवाल शामिल हैं. यह मौजूदा Firebase प्रोजेक्ट के कॉन्टेक्स्ट के आधार पर भी अहम जानकारी दे सकता है. |
firebase_get_environment | कोर | यह मौजूदा Firebase एनवायरमेंट के बारे में जानकारी देता है. जैसे, पुष्टि किया गया मौजूदा उपयोगकर्ता, प्रोजेक्ट डायरेक्ट्री, चालू प्रोजेक्ट वगैरह. |
firebase_update_environment | कोर | यह Firebase एनवायरमेंट कॉन्फ़िगरेशन को अपडेट करता है. जैसे, प्रोजेक्ट डायरेक्ट्री, चालू प्रोजेक्ट, चालू उपयोगकर्ता खाता वगैरह. मौजूदा समय में कॉन्फ़िगर किए गए एनवायरमेंट को देखने के लिए, firebase_get_environment का इस्तेमाल करें. |
firebase_init | कोर | यह कुकी, चुने गए 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 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_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 | यह Data Connect सेवा या उसके एम्युलेटर के ख़िलाफ़ GraphQL ऑपरेशन को लागू करता है. |
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_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 | यह कमांड, 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 पर खत्म होंगे. |
database_get_data | डेटाबेस | यह फ़ंक्शन, बताई गई जगह से RTDB डेटा दिखाता है |
database_set_data | डेटाबेस | इस कुकी का इस्तेमाल, बताई गई जगह पर RTDB डेटा लिखने के लिए किया जाता है |
database_get_rules | डेटाबेस | आरटीडीबी डेटाबेस के नियम पाना |
database_validate_rules | डेटाबेस | यह RTDB डेटाबेस के नियमों की पुष्टि करता है |