Firebase एमसीपी सर्वर

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 डेटाबेस के नियमों की पुष्टि करता है