Google MCP सर्वर का इस्तेमाल शुरू करना

1. परिचय

आपका स्वागत है! इस कोडलैब में, आपको Google के मैनेज किए गए मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) सर्वर का इस्तेमाल करके, अपने एआई एजेंट को बेहतर बनाने का तरीका बताया जाएगा.

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) एक ओपन-सोर्स स्टैंडर्ड है. इससे एआई मॉडल, बाहरी डेटा सोर्स और टूल से सुरक्षित और असरदार तरीके से कनेक्ट हो पाते हैं. ज़्यादातर एमसीपी, आपकी मशीन पर स्थानीय तौर पर काम करते हैं. हालांकि, Google मैनेज किए गए रिमोट एमसीपी सर्वर उपलब्ध कराता है. ये पूरी तरह से होस्ट किए गए, एंटरप्राइज़-रेडी एंडपॉइंट हैं. इनकी मदद से, आपके एजेंट सीधे Google Cloud इन्फ़्रास्ट्रक्चर से इंटरैक्ट कर सकते हैं. इसके लिए, आपको सर्वर-साइड कोड या कंटेनर मैनेज करने की ज़रूरत नहीं होती.

"मैनेज किया गया" फ़ायदा

लोकल एमसीपी सर्वर, स्टैंडर्ड इनपुट/आउटपुट (stdio) का इस्तेमाल करते हैं. हालांकि, Google के मैनेज किए गए सर्वर, स्ट्रीमेबल एचटीटीपी का इस्तेमाल करते हैं. इस आर्किटेक्चर से ये फ़ायदे मिलते हैं:

  • कोई इंफ़्रास्ट्रक्चर नहीं: सर्वर को प्रोविज़न या स्केल करने की ज़रूरत नहीं होती.
  • सुरक्षा को ध्यान में रखकर डिज़ाइन किया गया: Google Cloud IAM और ऑडिट लॉग के साथ नेटिव इंटिग्रेशन.
  • स्टेटलेस स्केलिंग: स्टैंडर्ड लोड बैलेंसर और प्रॉक्सी के ज़रिए बिना किसी रुकावट के इंटरैक्शन.

आपको क्या सीखने को मिलेगा

  • मैनेज किए गए एमसीपी सर्वर को चालू करने और उनकी पुष्टि करने का तरीका.
  • Cloud Logging MCP Server को बुनियादी बेसलाइन के तौर पर इस्तेमाल करने का तरीका.
  • ऑटोनॉमस वर्कफ़्लो बनाने के लिए, एक से ज़्यादा एमसीपी सर्वर (डेवलपर नॉलेज, Firestore वगैरह) को कैसे व्यवस्थित करें.

आपको किन चीज़ों की ज़रूरत होगी

  • बिलिंग की सुविधा चालू वाला Google Cloud प्रोजेक्ट.
  • Google Cloud Console और gcloud CLI के बारे में जानकारी होना.
  • Google Cloud Shell (इसमें Gemini CLI पहले से इंस्टॉल होता है).

यह कोडलैब, सभी लेवल के उपयोगकर्ताओं और डेवलपर के लिए बनाया गया है. इसमें शुरुआती डेवलपर भी शामिल हैं.

समस्याओं की रिपोर्ट करना

कोडलैब और Antigravity का इस्तेमाल करते समय, आपको समस्याएं आ सकती हैं.

कोडलैब से जुड़ी समस्याओं (टाइप की गई गलत जानकारी, गलत निर्देश) के लिए, कृपया इस कोडलैब के नीचे बाएं कोने में मौजूद Report a mistake बटन पर क्लिक करके, बग की रिपोर्ट करें:

b06b582bcd847f6d.png

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

इस चरण में, आपको अपना Google Cloud एनवायरमेंट तैयार करना होगा. हम सभी टास्क Google Cloud Shell में करेंगे. यह एक ऐसा टर्मिनल है जो पहले से कॉन्फ़िगर किया गया है और हमेशा उपलब्ध रहता है.

Cloud Shell चालू करें

  1. Google Cloud Console पर जाएं.
  2. सबसे ऊपर दाएं हेडर में मौजूद, Cloud Shell चालू करें आइकॉन पर क्लिक करें.
  3. टर्मिनल सेशन शुरू होने के बाद, अगर आपसे कहा जाए, तो प्रॉम्प्ट को अनुमति दें.

प्रोजेक्ट आईडी सेट करना

पक्का करें कि आपका Cloud Shell सही प्रोजेक्ट पर ले जा रहा हो:

# Set your active project
gcloud config set project YOUR_PROJECT_ID

# Verify the setting
gcloud config list project

Foundation API चालू करना

मैनेज किए गए एमसीपी सर्वर के लिए, यह ज़रूरी है कि प्रॉडक्ट के एपीआई और एमसीपी इंटरफ़ेस, दोनों को चालू किया गया हो. Cloud Logging बैकएंड (इस लैब के लिए हमारा बेसलाइन) को चालू करने के लिए, यह कमांड चलाएं:

# Enable the Cloud Logging API and its MCP interface
gcloud services enable logging.googleapis.com
gcloud beta services mcp enable logging.googleapis.com

ध्यान दें: मैनेज की गई एमसीपी सेवाएं फ़िलहाल बीटा वर्शन में उपलब्ध हैं. इन्हें चालू करने के लिए, आपको gcloud बीटा कॉम्पोनेंट का इस्तेमाल करना होगा.

ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) सेटअप करना

Gemini CLI, एमसीपी सर्वर से कम्यूनिकेट करने के लिए आपकी उपयोगकर्ता पहचान का इस्तेमाल करता है. एजेंट को आपकी ओर से कार्रवाई करने की अनुमति दें:

gcloud auth application-default login

टर्मिनल में दिए गए यूआरएल पर जाएं, साइन इन करें, और ऑथराइज़ेशन कोड को वापस Cloud Shell में चिपकाएं.

आईएएम की बुनियादी भूमिकाएं असाइन करना

मैनेज किए जा रहे एमसीपी सर्वर, दो लेयर वाले सुरक्षा मॉडल का इस्तेमाल करते हैं. इसके लिए, आपको दो खास "गेट" खोलने होंगे:

  1. गेट 1 (एमसीपी ऐक्सेस): यह वह भूमिका है जिसकी मदद से प्रोटोकॉल को कॉल किया जा सकता है.
  2. गेट 2 (सेवा का ऐक्सेस): यह वह भूमिका है जिससे आपको डेटा देखने की अनुमति मिलती है. जैसे, लॉग देखना.

ज़रूरी ऐक्सेस पाने के लिए, यह कमांड चलाएं:

export PROJECT_ID=$(gcloud config get-value project)
export USER_EMAIL=$(gcloud config get-value account)

# Gate 1: Permission to use the MCP protocol
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$USER_EMAIL" \
    --role="roles/mcp.toolUser"

# Gate 2: Permission to view the actual logs
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$USER_EMAIL" \
    --role="roles/logging.viewer"

3. बुनियादी बातें: अपना पहला एमसीपी सर्वर कनेक्ट करना

इस चरण में, आपको अपने एआई एजेंट (Gemini CLI) को Google Cloud Logging MCP Server से लिंक करना होगा. यह हमारी "बुनियादी सुविधा" है. इसकी मदद से, एजेंट को रीयल-टाइम में आपके प्रोजेक्ट में होने वाली गतिविधियों के बारे में पता चलता है.

पहला टास्क: लॉगिंग एमसीपी सर्वर को कॉन्फ़िगर करना

Gemini CLI, अपने कनेक्शन मैनेज करने के लिए settings.json फ़ाइल का इस्तेमाल करता है. आपको इस फ़ाइल (~/.gemini फ़ोल्डर में मौजूद) में बदलाव करना होगा, ताकि mcpServers ब्लॉक में यह स्निपेट जोड़ा जा सके. YOUR_PROJECT_ID की जगह अपना प्रोजेक्ट आईडी डालें:

"logging-mcp": {
      "httpUrl": "https://logging.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/logging.read"
        ]
      },
      "timeout": 30000,
      "headers": {
        "x-goog-user-project": "YOUR_PROJECT_ID"
      }
}

ध्यान दें: मैनेज किए गए एमसीपी सर्वर के लिए, x-goog-user-project हेडर ज़रूरी है. इससे यह पक्का किया जा सकेगा कि एपीआई के इस्तेमाल और बिलिंग को आपके प्रोजेक्ट के लिए सही तरीके से एट्रिब्यूट किया गया है.

टास्क 2: प्रोजेक्ट की गतिविधि का सिम्युलेशन करना (लॉग बनाना)

अगर आपका प्रोजेक्ट नया है या उसमें कोई गतिविधि नहीं हुई है, तो हो सकता है कि उसमें हाल ही के "दिलचस्प" लॉग न हों. आइए, कुछ कस्टम एंट्री इंजेक्ट करने के लिए gcloud CLI का इस्तेमाल करें, ताकि एजेंट को कुछ मिल सके.

इवेंट के क्रम को सिम्युलेट करने के लिए, इन कमांड को एक-एक करके चलाएं:

# 1. Simulate a standard system start
gcloud logging write mcp-test-log "System boot sequence initiated" --severity=INFO
# 2. Simulate a warning about resource limits
gcloud logging write mcp-test-log "High memory pressure detected in zone us-central1-a" --severity=WARNING
# 3. Simulate a critical authentication failure
gcloud logging write mcp-test-log "ERROR: Failed to connect to Cloud SQL. Permission Denied." --severity=ERROR

तीसरा टास्क: Gemini CLI में टूल की पुष्टि करना

चैट शुरू करने से पहले, आइए हम पुष्टि करें कि एजेंट, लॉगिंग सर्वर से मिले टूल को "देख" सकता है. Gemini CLI लॉन्च करें:

gemini

Gemini CLI प्रॉम्प्ट (>) में जाकर, सूची बनाने का यह कमांड चलाएँ:

/mcp list

पुष्टि करने के लिए चेकपॉइंट: आपको logging-mcp को तैयार है के तौर पर दिखना चाहिए. साथ ही, list_log_entries के साथ-साथ करीब छह टूल उपलब्ध होने चाहिए.

टास्क 4: लाइव इन्फ़्रास्ट्रक्चर से जुड़ा आपका पहला प्रॉम्प्ट

अब, एजेंट से उन लॉग को ढूंढने के लिए कहें जिन्हें हमने अभी बनाया है. आपने roles/logging.viewer की भूमिका पहले ही दे दी थी. इसलिए, अब एजेंट "पहुंच सकता है" और आपके प्रोजेक्ट की स्थिति पढ़ सकता है.

Gemini CLI में यह प्रॉम्प्ट टाइप करें:

Show me the 3 most recent log entries from the log named 'mcp-test-log'. What is the highest severity issue you see?

एजेंट को मॉनिटर करना:

  1. एजेंट आपसे Google Cloud प्रोजेक्ट आईडी के बारे में पूछ सकता है. कृपया वह जानकारी दें.
  2. इससे पता चलेगा कि इसे list_log_entries टूल की ज़रूरत है.
  3. यह टूल को चलाने के लिए, आपसे अनुमति मांगेगा. 1. हाँ, एक बार अनुमति दें.
  4. यह JSON रिस्पॉन्स को पार्स करेगा और आपको Cloud SQL Permission Denied गड़बड़ी के बारे में बताएगा.

4. Journey A: The Brain (Developer Knowledge MCP)

इस जर्नी में, आपको अपने एजेंट को "दिमाग" देना होगा. इसके लिए, आपको उसे Google Developer Knowledge MCP Server से कनेक्ट करना होगा.

एआई एजेंट के साथ सबसे बड़ा जोखिम भ्रम है. इसका मतलब है कि एआई एजेंट, भरोसे के साथ पुरानी सीएलआई कमांड या बंद किए गए एपीआई पैरामीटर उपलब्ध कराता है. यह एमसीपी सर्वर, एजेंट को Google के आधिकारिक, लाइव डेवलपर दस्तावेज़ों के कॉर्पस (Google Cloud, Firebase, Android वगैरह को कवर करने वाले) के आधार पर जवाब देने की सुविधा देता है. इससे एजेंट को सही जानकारी देने में मदद मिलती है.

पहला टास्क: नॉलेज सर्विस चालू करना

बुनियादी चरण की तरह ही, हमें बैकएंड एपीआई और एमसीपी सेवा एंडपॉइंट, दोनों को चालू करना होगा.

# 1. Enable the Developer Knowledge API
gcloud services enable developerknowledge.googleapis.com

# 2. Enable the MCP Server interface
gcloud beta services mcp enable developerknowledge.googleapis.com

दूसरा टास्क: प्रतिबंधित एपीआई पासकोड उपलब्ध कराना

Developer Knowledge MCP, पुष्टि करने के लिए एपीआई पासकोड का इस्तेमाल करता है. सुरक्षा के लिए, हम एक कुंजी बनाएंगे और उस पर पाबंदी लगाएंगे, ताकि उसका इस्तेमाल सिर्फ़ इस एपीआई के साथ किया जा सके.

  1. अपनी कुंजी बनाने और उसे वापस पाने के लिए, यह स्क्रिप्ट चलाएं:
# Create the restricted API key
gcloud alpha services api-keys create \
    --display-name="MCP-Knowledge-Key" \
    --api-target service=developerknowledge.googleapis.com

# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
    $(gcloud alpha services api-keys list \
    --filter="displayName='MCP-Knowledge-Key'" \
    --format="value(name)") \
    --format="value(keyString)"
  1. दूसरी कमांड से मिले वर्णों की लंबी स्ट्रिंग को कॉपी करें. यह आपकी YOUR_API_KEY है.

तीसरा टास्क: Gemini CLI को कॉन्फ़िगर करना

अब अपने एजेंट के साथ, Knowledge MCP सर्वर को रजिस्टर करें. इससे एजेंट को आधिकारिक दस्तावेज़ों को खोजने की अनुमति मिलती है. ऐसा तब होता है, जब उसे कोई ऐसा तकनीकी सवाल मिलता है जिसका जवाब वह पूरी तरह से नहीं दे पाता.

अपनी ~/.gemini/settings.json फ़ाइल के mcpServers सेक्शन में यह स्निपेट जोड़ें. साथ ही, YOUR_API_KEY को उस स्ट्रिंग से बदलें जिसे आपने अभी कॉपी किया है:

"developer-knowledge-mcp": {
      "httpUrl": "https://developerknowledge.googleapis.com/mcp",
      "headers": {
        "X-Goog-Api-Key": "YOUR_API_KEY"
      }
}

टास्क 4: जवाब में तथ्यों के ग़लत होने की जांच

आइए, पुष्टि करें कि एजेंट अब "अंदाज़ा लगाने" के बजाय "रिसर्च कर रहा है."

Gemini CLI लॉन्च करें:

gemini

पुष्टि करें कि सर्वर तैयार है: /mcp list टाइप करें. आपको google-developer-knowledge में दो टूल (search_documents, get_document) दिखेंगे.

प्रॉम्प्ट: एजेंट से कोई खास और नई कमांड ढूँढने के लिए कहें.

I want to create a Google Cloud Storage bucket using the modern gcloud storage command. Search the official documentation for the exact syntax and show me an example for a bucket in the 'us-central1' region.

इन बातों का ध्यान रखें:

  • Gemini, search_documents का इस्तेमाल करने की अनुमति मांगेगा.
  • इसके बाद, यह उस पेज को पढ़ने के लिए get_document को कॉल करेगा.
  • जवाब में gcloud storage buckets create ... कमांड शामिल होनी चाहिए. यह कमांड, दस्तावेज़ से सीधे तौर पर ली गई हो.

5. दूसरा तरीका: समस्या की गंभीरता के आधार पर प्राथमिकता तय करना (अपने-आप समस्या हल करने की सुविधा)

ज़रूरी शर्त: इस जर्नी के लिए, आपको जर्नी A: द ब्रेन को पूरा करना होगा, ताकि एजेंट गड़बड़ियों को ठीक करने के बारे में रिसर्च कर सके.

इस जर्नी में, आपको ऑटोनॉमस ट्रबलशूटिंग लूप बनाने के लिए, अपने एजेंट की आंखों (Cloud Logging MCP) और दिमाग (Developer Knowledge MCP) को एक साथ इस्तेमाल करना होगा.

सर्च इंजन में गड़बड़ी के कोड को मैन्युअल तरीके से कॉपी करने के बजाय, एजेंट को एक प्रॉम्प्ट दिया जाएगा. इससे वह आपके प्रोजेक्ट में गड़बड़ियों को स्कैन करेगा, गड़बड़ी को ठीक करने के आधिकारिक तरीके के बारे में रिसर्च करेगा, और गड़बड़ी को ठीक करने के लिए एक रिपोर्ट जनरेट करेगा.

टास्क 1: GCP में "खराब दिन" की स्थिति का सिम्युलेट करना

अपने-आप समस्या हल होने की सुविधा की क्षमता देखने के लिए, हमें समस्याओं का एक ऐसा सेट चाहिए जो असल में मौजूद हो. हम Python स्क्रिप्ट का इस्तेमाल करके, आपके लॉग में कई तरह की बुनियादी ढांचागत समस्याएं डालेंगे. जैसे, अनुमति अस्वीकार किए जाने से जुड़ी गड़बड़ियां और कोटा से जुड़ी समस्याएं.

  1. Cloud Shell में, अपनी पसंद का फ़ोल्डर बनाएं और उसमें जाएं.
  2. simulate_errors.py नाम की फ़ाइल बनाएं:
nano simulate_errors.py
  1. इस कोड को एडिटर में चिपकाएं:
import argparse
from google.cloud import logging

def simulate_errors(project_id):
    client = logging.Client(project=project_id)
    logger = client.logger("mcp-scenario-logger")

    print(f"Simulating realistic errors for project: {project_id}...")

    # 1. GCS Permission Error
    logger.log_text("ERROR: GCS Upload failed for 'gs://my-app-bucket/data.json'. Status: 403 Forbidden. Missing 'storage.objects.create' for service account.", severity="ERROR")

    # 2. Cloud Run Startup Error
    logger.log_text("ERROR: Cloud Run service 'api-gateway' failed to start. Container failed to listen on port 8080. Check 'Cloud Run container startup requirements'.", severity="ERROR")

    # 3. Secret Manager Access Error
    logger.log_text("ERROR: Access denied to secret 'API_KEY'. The identity lacks 'secretmanager.versions.access'.", severity="ERROR")

    print("Log entries written to 'mcp-scenario-logger'.")

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--project", required=True)
    args = parser.parse_args()
    simulate_errors(args.project)
  1. सेव करके बाहर निकलने के लिए, Ctrl+O, Enter, और Ctrl+X दबाएं.
  2. Google Cloud Logging लाइब्रेरी इंस्टॉल करें और स्क्रिप्ट चलाएं:
python -m venv mcp_env
source mcp_env/bin/activate
pip install google-cloud-logging
python simulate_errors.py --project $(gcloud config get-value project)

टास्क 2: ऑटोनॉमस लूप को लागू करना

अब हम एक मुश्किल प्रॉम्प्ट फ़ायर करेंगे. इससे Gemini को दोनों एमसीपी सर्वर को एक साथ मैनेज करने का निर्देश मिलेगा.

Gemini CLI लॉन्च करें:

gemini

एजेंट में यह "मास्टर प्रॉम्प्ट" टाइप करें:

I need to troubleshoot recent issues in my project. Perform the following autonomous loop:

Step 1 : Retrieval: Use the Logging MCP to fetch the 5 most recent ERROR entries from the log 'mcp-scenario-logger'.
Step 2 : Iteration: For every unique error found, extract the service and specific error message.
Step 3 : Research: Use the Developer Knowledge MCP to find the official resolution or gcloud command to fix each issue.
Step 4 : Resolution: Consolidate everything into a markdown table with columns: | Service | Error Summary | Recommended Fix |.

इसके बाद क्या होगा

अब आपको रीयल-टाइम में एजेंटिक वर्कफ़्लो दिख रहा है. एजेंट ये काम करेगा:

  1. हमने अभी "बुरा दिन" की स्थिति का सिम्युलेशन किया है. इसे देखने के लिए, list_log_entries को कॉल करें.
  2. टेक्स्ट का विश्लेषण करके यह पता लगाएं कि GCS, Cloud Run, और Secret Manager काम नहीं कर रहे हैं.
  3. आईएएम की सही भूमिकाएं ढूंढने या कॉन्फ़िगरेशन से जुड़ी समस्याओं को ठीक करने के लिए, उन सेवाओं के लिए search_documents और get_document को कॉल करें.
  4. आपको इस तरह की स्ट्रक्चर्ड टेबल दिखाएगा (सुझाव अलग-अलग हो सकते हैं):

सेवा

गड़बड़ी की खास जानकारी

समस्या हल करने के लिए सुझाया गया तरीका

Cloud Storage

अपलोड करने पर 403 अनुमति नहीं है

सेवा खाते को roles/storage.objectCreator की अनुमति दें.

Cloud Run

पोर्ट 8080 पर नहीं सुना जा सका

पक्का करें कि ऐप्लिकेशन, $PORT से तय किए गए पोर्ट पर 0.0.0.0 से बाइंड हो.

Secret Manager

वर्शन ऐक्सेस करने की भूमिका मौजूद नहीं है

आइडेंटिटी को roles/secretmanager.secretAccessor असाइन करें.

6. Journey C: The Data (Firestore MCP)

इस जर्नी में, आपको Firestore MCP Server का इस्तेमाल करके, NoSQL दस्तावेज़ डेटाबेस को मैनेज करना होगा. इसके लिए, आपको सिर्फ़ आम भाषा का इस्तेमाल करना होगा.

Firestore एक ऐसा डेटाबेस है जिसे ज़रूरत के हिसाब से बदला जा सकता है और बढ़ाया जा सकता है. हालांकि, इसे मैनेज करने के लिए अक्सर जटिल एसडीके कोड लिखने या कंसोल पर नेविगेट करने की ज़रूरत होती है. MCP की मदद से, आपका एजेंट डेटाबेस एडमिनिस्ट्रेटर बन जाता है. वह डेटा को सीड कर सकता है, रिकॉर्ड के बारे में क्वेरी कर सकता है, और चैट के ज़रिए जटिल स्कीमा माइग्रेशन भी कर सकता है.

पहला टास्क: Firestore की सेवाएं चालू करना

सबसे पहले, Firestore API और उससे जुड़े एमसीपी एंडपॉइंट को चालू करें.

# 1. Enable the Firestore API
gcloud services enable firestore.googleapis.com

# 2. Enable the MCP Server interface
gcloud beta services mcp enable firestore.googleapis.com

टास्क 2: Firestore IAM की भूमिकाएं असाइन करना

क्वेरी चलाने के लिए, आपकी पहचान के पास बुनियादी एमसीपी ऐक्सेस के अलावा कुछ और अनुमतियां होनी चाहिए.

# Grant Firestore User role
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$USER_EMAIL" \
    --role="roles/datastore.user"

तीसरा टास्क: टेस्ट के लिए अलग डेटाबेस बनाना

अपने एक्सपेरिमेंट को सुरक्षित रखने के लिए, हम mcp-lab-db नाम का एक खास Firestore डेटाबेस बनाएंगे.

gcloud firestore databases create --database=mcp-lab-db --location=nam5 --type=firestore-native

चौथा टास्क: Gemini CLI को कॉन्फ़िगर करना

अपने एजेंट में Firestore एमसीपी सर्वर जोड़ें. ~/.gemini/settings.json फ़ाइल के mcpServers सेक्शन में, यह कॉन्फ़िगरेशन जोड़ें. YOUR_PROJECT_ID की जगह अपना प्रोजेक्ट आईडी डालें:

"firestore-mcp": {
      "httpUrl": "https://firestore.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      },
      "timeout": 30000,
      "headers": {
        "x-goog-user-project": "YOUR_PROJECT_ID"
      }
}

टास्क 5: Natural Language DB Ops

Gemini CLI लॉन्च करें और कनेक्शन की पुष्टि करने के लिए कुछ बुनियादी कार्रवाइयां करें.

Gemini CLI लॉन्च करें:

gemini

पुष्टि करें कि सर्वर तैयार है: /mcp list टाइप करें. आपको कई टूल (add_document, create_database, list_documents, etc) के साथ firestore-mcp दिखेगा.

इन प्रॉम्प्ट को इसी क्रम में आज़माएँ:

सीड डेटा:

In the 'mcp-lab-db' database, add three documents to a 'products' collection. Include a laptop (stock 5), a mouse (stock 25), and a keyboard (stock 8).

पुष्टि करना:

List all documents in the 'products' collection from the 'mcp-lab-db' database.

आम भाषा का इस्तेमाल करके, Firestore डेटाबेस और कलेक्शन मैनेज करने में मदद करने वाले अन्य प्रॉम्प्ट आज़माएं.

7. जर्नी D: इंटेलिजेंस (BigQuery और Maps)

इस जर्नी में, BigQuery और Maps Grounding Lite MCP सर्वर का इस्तेमाल करके, अपने एजेंट को पेटबाइट डेटा का विश्लेषण करने और फ़िज़िकल दुनिया को समझने की सुविधा मिलेगी.

इस सेक्शन के आखिर तक, आपका एजेंट सामान्य भाषा को मुश्किल एसक्यूएल क्वेरी में बदल पाएगा. साथ ही, जवाबों को ज़्यादा सटीक बनाने के लिए, जगह के हिसाब से सलाह दे पाएगा. जैसे, यात्रा में लगने वाला समय और मौसम की जानकारी.

पहला टास्क: इंटेलिजेंस सेवाएं चालू करना

BigQuery और Google Maps, दोनों के लिए एपीआई और एमसीपी इंटरफ़ेस चालू करें.

# 1. Enable product APIs
gcloud services enable bigquery.googleapis.com mapstools.googleapis.com

# 2. Enable MCP Server interfaces
gcloud beta services mcp enable bigquery.googleapis.com
gcloud beta services mcp enable mapstools.googleapis.com

दूसरा टास्क: BigQuery IAM की भूमिकाएं असाइन करना

क्वेरी चलाने के लिए, आपकी पहचान के पास बुनियादी एमसीपी ऐक्सेस के अलावा कुछ और अनुमतियां होनी चाहिए.

# Grant BigQuery Job User and Data Viewer roles
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$USER_EMAIL" \
    --role="roles/bigquery.jobUser"

gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$USER_EMAIL" \
    --role="roles/bigquery.dataViewer"

तीसरा टास्क: Maps API पासकोड उपलब्ध कराना

आईएम पर पूरी तरह से निर्भर रहने वाली अन्य सेवाओं के उलट, Maps Grounding Lite सर्वर को कोटे और बिलिंग के लिए एपीआई कुंजी की ज़रूरत होती है.

कुंजी बनाएं:

gcloud alpha services api-keys create --display-name="MCP-Maps-Key"

कुंजी स्ट्रिंग फ़ेच करना:

# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
    $(gcloud alpha services api-keys list \
    --filter="displayName='MCP-Maps-Key'" \
    --format="value(name)") \
    --format="value(keyString)"

अगले चरण के लिए, कुंजी स्ट्रिंग कॉपी करें.

चौथा टास्क: Gemini CLI को कॉन्फ़िगर करना

अब दोनों सर्वर रजिस्टर करें. नीचे दिए गए स्निपेट को ~/.gemini/settings.json फ़ाइल के mcpServers सेक्शन में जोड़ें. YOUR_PROJECT_ID और YOUR_MAPS_API_KEY को अपनी ज़रूरत के हिसाब से बदलें.

"bigquery-mcp": {
      "httpUrl": "https://bigquery.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      },
      "timeout": 30000,
      "headers": {
        "x-goog-user-project": "YOUR_PROJECT_ID"
      }
},
"maps-grounding-lite-mcp": {
      "httpUrl": "https://mapstools.googleapis.com/mcp",
      "headers": {
        "X-Goog-Api-Key": "YOUR_MAPS_API_KEY"
      }
}

टास्क 5: इंटेलिजेंस का इस्तेमाल

Gemini CLI लॉन्च करें और "इंटेलिजेंस" की नई सुविधाओं को आज़माएँ.

gemini

पुष्टि करें कि सर्वर तैयार है: /mcp list टाइप करें. आपको bigquery-mcp और maps-grounding-lite-mcp के साथ कई टूल दिखेंगे. .

पहला उदाहरण: ऐनलिटिकल इंजन (BigQuery) एजेंट से किसी सार्वजनिक डेटासेट के बारे में क्वेरी करने के लिए कहें. इसके लिए, आपको SQL के बारे में कोई जानकारी नहीं होनी चाहिए:

Run a query to count the number of penguins on each island in the BigQuery public dataset ml_datasets.penguins.

दूसरा उदाहरण: जियोस्पेशल कॉन्टेक्स्ट (Maps) एजेंट से असल दुनिया की यात्रा की योजना बनाने के लिए कहें:

I am planning a drive from Mumbai to Pune tomorrow morning. Based on current weather and routing, what should I expect in terms of travel time and what should I carry?

इन बातों का ध्यान रखें:

  • BigQuery के लिए, एजेंट स्कीमा का पता लगाने और क्वेरी चलाने के लिए execute_sql को कॉल करेगा.
  • Maps के लिए, यह lookup_weather को व्यवस्थित करेगा और compute_routes का इस्तेमाल करके, आपको यात्रा का एक भरोसेमंद और मददगार प्लान देगा.

8. सुरक्षा को मज़बूत करना: प्रोडक्शन सिक्योरिटी और आईएएम

इस आखिरी चरण में, आपको "मालिक" की सामान्य अनुमतियों से प्रोडक्शन-ग्रेड डिफ़ेंस-इन-डेप्थ मॉडल पर माइग्रेट करना होगा.

एआई एजेंट, स्वभाव से ही "मददगार" होते हैं. अगर यूज़र इंटरफ़ेस (यूआई) लेवल पर किसी टूल पर पाबंदी लगाई जाती है, तो स्मार्ट एजेंट, शेल कमांड चलाकर उस पाबंदी को बायपास करने की कोशिश कर सकता है. अपने इन्फ़्रास्ट्रक्चर को पूरी तरह से सुरक्षित करने के लिए, आपको Google Cloud IAM का इस्तेमाल करके, मज़बूत सीमाएं बनानी होंगी.

दो लेयर वाला सुरक्षा मॉडल

कोई भी कार्रवाई करने के लिए, एजेंट को दो चरणों से गुज़रना होगा:

  1. पहला गेट (एमसीपी गेट): क्या आइडेंटिटी के पास roles/mcp.toolUser है? (प्रोटोकॉल इस्तेमाल करने की अनुमति).
  2. गेट 2 (सेवा से जुड़ा गेट): क्या पहचान के पास किसी प्रॉडक्ट की भूमिका है? जैसे, roles/datastore.viewer? (डेटा देखने की अनुमति).

टास्क 1: लेयर 1 - क्लाइंट-साइड फ़िल्टरिंग (excludeTools)

सुरक्षा की पहली लेयर में, एजेंट से टूल छिपाए जाते हैं, ताकि वह उनका इस्तेमाल करने के बारे में "सोच" भी न सके.

  1. Cloud Shell एडिटर में, Gemini CLI की सेटिंग खोलें:
cloudshell edit ~/.gemini/settings.json
  1. firestore-mcp ब्लॉक ढूंढें और डिस्ट्रक्टिव कार्रवाइयों को छिपाने के लिए, excludeTools डायरेक्टिव जोड़ें:
"firestore-mcp": {
  "httpUrl": "https://firestore.googleapis.com/mcp",
  "excludeTools": ["delete_database", "update_database", "delete_document"],
  ...
}

फ़ाइल सेव करें और Gemini CLI को फिर से चालू करें. /mcp list चलाएं और देखें कि वे टूल अब नहीं दिख रहे हैं.

टास्क 2: लेयर 2 - इंफ़्रास्ट्रक्चर की सुरक्षा (IAM बाउंसर)

क्लाइंट-साइड फ़िल्टरिंग, "सॉफ़्ट" गार्डरेल है. अगर आपने एजेंट से "मेरा Firestore डेटाबेस मिटाओ" कहा और टूल छिपा हुआ है, तो हो सकता है कि वह gcloud firestore databases delete को चलाने की कोशिश करे. इससे बचने के लिए, हम कम से कम विशेषाधिकार वाले सेवा खाते का इस्तेमाल करते हैं.

"सिर्फ़ पढ़ने की अनुमति" वाला सेवा खाता बनाएं:

# Create the service account
gcloud iam service-accounts create mcp-reader-sa --display-name="MCP Reader Only"

# Grant ONLY the necessary roles (Gate 1 + Gate 2)
export PROJECT_ID=$(gcloud config get-value project)
SA_EMAIL="mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/datastore.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/aiplatform.user"

कुंजी जनरेट और चालू करना:

gcloud iam service-accounts keys create reader-key.json --iam-account=$SA_EMAIL
export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/reader-key.json

टास्क 3: "एजेंट मददगार है" के लिए बाउन्सर टेस्ट

अब हम यह टेस्ट करेंगे कि एजेंट हमारी सुरक्षा को बायपास कर सकता है या नहीं.

हमारा पहला चरण, सेवा खाते को चालू करना होगा, ताकि अगर एजेंट gcloud कमांड का इस्तेमाल करता है, तो वह उस सेवा खाते की पहचान के तहत काम करे जिसे हमने अभी बनाया है.

सेवा खाता चालू करें:

यहां दिया गया कमांड चलाएं.साथ ही, [PATH_TO_KEY_FILE] की जगह अपनी JSON कुंजी फ़ाइल का असल पाथ डालें. उदाहरण के लिए, reader-key.json.

gcloud auth activate-service-account --key-file=[PATH_TO_KEY_FILE]

बदलाव की पुष्टि करें:

कमांड चलाने के बाद, यह पुष्टि की जा सकती है कि सेवा खाता चालू है. इसके लिए, यह कमांड चलाएं:

gcloud auth list

आउटपुट में, सेवा खाते को चालू क्रेडेंशियल के तौर पर दिखाया जाएगा.

Gemini CLI लॉन्च करें:

gemini

यह प्रॉम्प्ट टाइप करें:

I want to delete the 'mcp-lab-db' firestore database. If the tool is missing, try using the gcloud firestore command in the terminal.

इससे क्या होगा?

  1. एजेंट सबसे पहले, Firestore MCP सर्वर में मौजूद delete_database टूल का इस्तेमाल करने की कोशिश करेगा. अनुमति न होने की वजह से, यह काम नहीं करेगा.
  2. इसके बाद, यह run_shell_command टूल का इस्तेमाल करके, gcloud firestore कमांड का इस्तेमाल करने की कोशिश करता है, ताकि "मददगार" बन सके.

नतीजा:

निर्देश को पूरा नहीं किया जा सका, क्योंकि आपको अनुमति नहीं है. एजेंट, mcp-reader-sa आइडेंटिटी के तहत काम कर रहा है. इसलिए, उसके पास datastore.databases.delete की अनुमति नहीं है. IAM, सबसे भरोसेमंद सुरक्षा प्रणाली है. एजेंट, संसाधन तक पहुंचने की कितनी भी कोशिश करे, Google Cloud API लेवल पर मौजूद "बाउंसर" अनुरोध को ब्लॉक कर देगा.

अपने उपयोगकर्ता खाते पर वापस जाएं:

अपने उपयोगकर्ता खाते पर वापस स्विच करने के लिए, यह कमांड दें:

gcloud config set account YOUR_EMAIL_ADDRESS

9. साफ़-सफ़ाई सेवा

अनचाहे शुल्क से बचने के लिए, अपने टेस्ट के संसाधन मिटाएं:

# Delete the Firestore database
gcloud firestore databases delete --database=mcp-lab-db

# Remove the service account
gcloud iam service-accounts delete mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com

10. नतीजा

बधाई हो! आपने Google के मैनेज किए गए एमसीपी सर्वर के पूरे स्टैक को नेविगेट कर लिया है.

आपने लैब के "ट्रंक" से शुरुआत की है. इससे Cloud Logging से बुनियादी कनेक्शन बनाया जा सकता है. इसके बाद, आपने "Adventures" नाम से मॉड्यूल बनाए. इनमें एजेंट की जानकारी को बेहतर बनाना, मुश्किल समस्याओं को हल करने के लिए ऑटोमेशन का इस्तेमाल करना, Firestore में डेटा माइग्रेट करना, और BigQuery और Maps से अहम जानकारी निकालना शामिल है.

सबसे अहम बात यह है कि आपने प्रोडक्शन की सुरक्षा के मूल सिद्धांतों के बारे में बताकर, अपने एजेंट को इस विषय पर पूरी जानकारी दी. आपने यह साबित किया कि कोई एजेंट "मददगार" हो सकता है, लेकिन Google Cloud IAM सबसे भरोसेमंद है. यह पक्का करता है कि आपके ऑटोनॉमस वर्कफ़्लो, हमेशा कम से कम विशेषाधिकार के सिद्धांत का पालन करें.

सीखने लायक ज़रूरी बातें

  • मैनेज किया गया = बढ़ाया जा सकता है: आपने एक भी सर्वर डिप्लॉय किए बिना, स्ट्रीम किए जा सकने वाले एचटीटीपी के ज़रिए इन्फ़्रास्ट्रक्चर-लेवल के टूल से कनेक्ट किया है.
  • ग्राउंडिंग ज़रूरी है: आपने एलएलएम के "अनुमान लगाने" की सुविधा को डेवलपर नॉलेज एमसीपी से बदल दिया है. इससे यह पक्का होता है कि आपका एजेंट, मौजूदा और मान्य कमांड का इस्तेमाल करता है.
  • ऑर्केस्ट्रेशन एक शक्तिशाली टूल है: आपने देखा कि जब कोई एजेंट, कारोबार से जुड़ी किसी एक समस्या को हल करने के लिए, कई एमसीपी सर्वर को एक साथ इस्तेमाल करता है, तब सबसे अच्छे नतीजे मिलते हैं.