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

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 को अनुमति देते हैं जहां यह चल रहा है. यह लॉग-इन किया हुआ उपयोगकर्ता या एनवायरमेंट के हिसाब से ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल हो सकता है.

शुरू करने से पहले

  1. पक्का करें कि आपके पास Node.js और npm का वर्किंग इंस्टॉलेशन हो.

  2. नीचे दिए गए कमांड को चलाकर, 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 पर खत्म होंगे.