डेटाबेस और एजेंट डेवलपमेंट किट (ADK) के लिए एमसीपी टूलबॉक्स का इस्तेमाल करके, ट्रैवल एजेंट बनाएं

1. परिचय

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

कोडलैब के ज़रिए, आपको यहां दिया गया तरीका अपनाना होगा:

  1. Cloud SQL for PostgreSQL डेटाबेस उपलब्ध कराएं, जिसमें होटल का डेटाबेस और सैंपल डेटा होगा.
  2. डेटाबेस के लिए MCP टूलबॉक्स सेट अप करें. इससे डेटा को ऐक्सेस किया जा सकता है.
  3. एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके, एक एजेंट डिज़ाइन और डेवलप करें. यह एजेंट, उपयोगकर्ता की क्वेरी के जवाब देने के लिए एमसीपी टूलबॉक्स का इस्तेमाल करेगा.
  4. Cloud Run सेवा के ज़रिए, एजेंट और एमसीपी टूलबॉक्स को स्थानीय तौर पर और Google Cloud पर टेस्ट करने के विकल्पों के बारे में जानें.

33b79273f207ebd7.png

आपको क्या करना होगा

  • ऐसा एजेंट डिज़ाइन करो, बनाओ, और डिप्लॉय करो जो किसी जगह के होटल के बारे में उपयोगकर्ता की क्वेरी का जवाब दे या नाम के हिसाब से होटल खोजे.

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

  • Cloud SQL for PostgreSQL डेटाबेस को सैंपल डेटा के साथ प्रोविज़न और पॉप्युलेट करना.
  • Cloud SQL for PostgreSQL डेटाबेस इंस्टेंस के लिए, डेटाबेस के लिए MCP टूलबॉक्स सेटअप करें.
  • लोगों की क्वेरी के जवाब देने के लिए, एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके एजेंट को डिज़ाइन और डेवलप करें.
  • स्थानीय एनवायरमेंट में, डेटाबेस के लिए एजेंट और एमसीपी टूलबॉक्स को आज़माएं.
  • (ज़रूरी नहीं) Google Cloud में डेटाबेस के लिए, एजेंट और एमसीपी टूलबॉक्स डिप्लॉय करें.

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

  • Chrome वेब ब्राउज़र
  • Gmail खाता
  • ऐसा Cloud प्रोजेक्ट जिसमें बिलिंग की सुविधा चालू हो

यह कोडलैब, सभी लेवल के डेवलपर के लिए बनाया गया है. इसमें शुरुआती डेवलपर भी शामिल हैं. इसमें सैंपल ऐप्लिकेशन में Python का इस्तेमाल किया गया है. हालांकि, इसके लिए Python की जानकारी होना ज़रूरी नहीं है. साथ ही, इसमें दिए गए कॉन्सेप्ट को समझने के लिए, कोड को पढ़ने की बुनियादी क्षमता काफ़ी होगी.

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

प्रोजेक्ट बनाना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें .
  1. आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है. इसमें bq पहले से लोड होता है. Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें.

Cloud Shell बटन की इमेज चालू करें

  1. Cloud Shell से कनेक्ट होने के बाद, यह देखने के लिए कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट किया गया है, इस कमांड का इस्तेमाल करें:
gcloud auth list
  1. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. नीचे दिए गए निर्देश का इस्तेमाल करके, ज़रूरी एपीआई चालू करें. इसमें कुछ मिनट लग सकते हैं. इसलिए, कृपया इंतज़ार करें.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       run.googleapis.com \
                       cloudbuild.googleapis.com \
                       cloudfunctions.googleapis.com \
                       aiplatform.googleapis.com \
                       sqladmin.googleapis.com \
                       compute.googleapis.com 

कमांड के सही तरीके से लागू होने पर, आपको यहां दिखाए गए मैसेज जैसा मैसेज दिखेगा:

Operation "operations/..." finished successfully.

gcloud कमांड के बजाय, कंसोल का इस्तेमाल करके भी ऐसा किया जा सकता है. इसके लिए, हर प्रॉडक्ट को खोजें या इस लिंक का इस्तेमाल करें.

अगर कोई एपीआई छूट जाता है, तो उसे लागू करने के दौरान कभी भी चालू किया जा सकता है.

gcloud कमांड और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

3. Cloud SQL इंस्टेंस बनाना

हम अपने होटलों का डेटा सेव करने के लिए, Google Cloud SQL for PostgreSQL इंस्टेंस का इस्तेमाल करेंगे. Cloud SQL for PostgreSQL, पूरी तरह से मैनेज की गई डेटाबेस सेवा है. इसकी मदद से, Google Cloud Platform पर PostgreSQL के मिलते-जुलते डेटाबेस को सेट अप, बनाए, मैनेज, और सही तरीके से चलाया जा सकता है.

इंस्टेंस बनाने के लिए, Cloud Shell में यह कमांड चलाएं:

gcloud sql instances create hoteldb-instance \
--database-version=POSTGRES_15 \
--tier db-g1-small \
--region=us-central1 \
--edition=ENTERPRISE \
--root-password=postgres

इस कमांड को पूरा होने में करीब 3 से 5 मिनट लगते हैं. कमांड के पूरा होने के बाद, आपको एक आउटपुट दिखेगा. इससे पता चलेगा कि कमांड पूरी हो गई है. साथ ही, आपको अपने Cloud SQL इंस्टेंस की जानकारी भी दिखेगी. जैसे, नाम, DATABASE_VERSION, LOCATION वगैरह.

4. होटल का डेटाबेस तैयार करना

अब हमारा काम, होटल एजेंट के लिए कुछ सैंपल डेटा बनाना होगा.

Cloud Console में Cloud SQL पेज पर जाएं.आपको hoteldb-instance तैयार और बनाया गया दिखेगा. नीचे दिए गए उदाहरण में दिखाए गए तरीके से, इंस्टेंस के नाम (hoteldb-instance) पर क्लिक करें:

28c93e70f03d6619.png

Cloud SQL के बाईं ओर मौजूद मेन्यू में जाकर, नीचे दिए गए तरीके से Cloud SQL Studio मेन्यू विकल्प पर जाएं:

4f074ce3d774f4a.png

इससे आपको Cloud SQL Studio में साइन इन करने के लिए कहा जाएगा. इसके बाद, हम आपको कुछ SQL कमांड देंगे. डेटाबेस विकल्प के लिए postgres चुनें. साथ ही, उपयोगकर्ता और पासवर्ड, दोनों के लिए इस्तेमाल की जाने वाली वैल्यू postgres है. AUTHENTICATE पर क्लिक करें.

आइए, सबसे पहले नीचे दिए गए स्कीमा के हिसाब से होटल टेबल बनाते हैं. Cloud SQL Studio के किसी एडिटर पैनल में, यह एसक्यूएल क्वेरी चलाएं:

CREATE TABLE hotels(
 id            INTEGER NOT NULL PRIMARY KEY,
 name          VARCHAR NOT NULL,
 location      VARCHAR NOT NULL,
 price_tier    VARCHAR NOT NULL,
 checkin_date  DATE    NOT NULL,
 checkout_date DATE    NOT NULL,
 booked        BIT     NOT NULL
);

अब होटल टेबल में सैंपल डेटा डालते हैं. नीचे दिए गए एसक्यूएल को लागू करें:

INSERT INTO hotels(id, name, location, price_tier, checkin_date, checkout_date, booked)
VALUES
 (1, 'Hilton Basel', 'Basel', 'Luxury', '2024-04-20', '2024-04-22', B'0'),
 (2, 'Marriott Zurich', 'Zurich', 'Upscale', '2024-04-14', '2024-04-21', B'0'),
 (3, 'Hyatt Regency Basel', 'Basel', 'Upper Upscale', '2024-04-02', '2024-04-20', B'0'),
 (4, 'Radisson Blu Lucerne', 'Lucerne', 'Midscale', '2024-04-05', '2024-04-24', B'0'),
 (5, 'Best Western Bern', 'Bern', 'Upper Midscale', '2024-04-01', '2024-04-23', B'0'),
 (6, 'InterContinental Geneva', 'Geneva', 'Luxury', '2024-04-23', '2024-04-28', B'0'),
 (7, 'Sheraton Zurich', 'Zurich', 'Upper Upscale', '2024-04-02', '2024-04-27', B'0'),
 (8, 'Holiday Inn Basel', 'Basel', 'Upper Midscale', '2024-04-09', '2024-04-24', B'0'),
 (9, 'Courtyard Zurich', 'Zurich', 'Upscale', '2024-04-03', '2024-04-13', B'0'),
 (10, 'Comfort Inn Bern', 'Bern', 'Midscale', '2024-04-04', '2024-04-16', B'0');

आइए, नीचे दिए गए तरीके से SELECT SQL चलाकर डेटा की पुष्टि करें:

SELECT * FROM hotels;

आपको होटल टेबल में कई रिकॉर्ड दिखेंगे, जैसा कि यहां दिखाया गया है:

6e8f7cbbffd4c284.png

हमने Cloud SQL इंस्टेंस को सेट अप करने की प्रोसेस पूरी कर ली है और सैंपल डेटा बना लिया है. अगले सेक्शन में, हम डेटाबेस के लिए MCP टूलबॉक्स सेट अप करेंगे.

5. डेटाबेस के लिए MCP टूलबॉक्स सेट अप करना

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

टूलबॉक्स की मदद से, जनरेटिव एआई टूल बनाए जा सकते हैं. इनकी मदद से, आपके एजेंट आपके डेटाबेस में मौजूद डेटा को ऐक्सेस कर सकते हैं. टूलबॉक्स में ये सुविधाएं मिलती हैं:

  • डेवलपमेंट को आसान बनाना: अपने एजेंट में टूल को 10 से कम लाइनों के कोड में इंटिग्रेट करें. साथ ही, एक से ज़्यादा एजेंट या फ़्रेमवर्क के बीच टूल का फिर से इस्तेमाल करें. इसके अलावा, टूल के नए वर्शन को आसानी से डिप्लॉय करें.
  • बेहतर परफ़ॉर्मेंस: कनेक्शन पूलिंग, पुष्टि करने की प्रोसेस वगैरह जैसे सबसे सही तरीके.
  • बेहतर सुरक्षा: आपके डेटा को ज़्यादा सुरक्षित तरीके से ऐक्सेस करने के लिए, इंटिग्रेटेड ऑथराइज़ेशन
  • एंड-टू-एंड ऑब्ज़र्वेबिलिटी: OpenTelemetry के साथ काम करने की सुविधा के साथ, बॉक्स से बाहर की मेट्रिक और ट्रेसिंग.

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

d5e2964bdddc14bd.png

आपको पता चल गया होगा कि MCP Toolbox for Databases के साथ काम करने वाले डेटाबेस में से एक Cloud SQL है. हमने इसे पिछले सेक्शन में उपलब्ध कराया है.

टूलबॉक्स इंस्टॉल करना

Cloud Shell टर्मिनल खोलें और mcp-toolbox नाम का फ़ोल्डर बनाएं.

mkdir mcp-toolbox

नीचे दिए गए कमांड का इस्तेमाल करके, mcp-toolbox फ़ोल्डर पर जाएं:

cd mcp-toolbox

नीचे दी गई स्क्रिप्ट का इस्तेमाल करके, डेटाबेस के लिए MCP टूलबॉक्स का बाइनरी वर्शन इंस्टॉल करें. यहां दिया गया निर्देश Linux के लिए है. हालांकि, अगर Mac या Windows का इस्तेमाल किया जा रहा है, तो पक्का करें कि सही बाइनरी डाउनलोड की जा रही हो. अपने ऑपरेटिंग सिस्टम और आर्किटेक्चर के लिए रिलीज़ पेज देखें और सही बाइनरी डाउनलोड करें.

export VERSION=0.18.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

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

Toolbox का वर्शन पता करने के लिए, यह कमांड डालें:

./toolbox -v

इससे, यहाँ दिए गए आउटपुट जैसा आउटपुट प्रिंट होना चाहिए:

toolbox version 0.18.0+binary.linux.amd64.3ca58b1

अगला चरण, हमारे डेटा सोर्स और अन्य कॉन्फ़िगरेशन के साथ टूलबॉक्स को कॉन्फ़िगर करना है.

tools.yaml फ़ाइल को कॉन्फ़िगर करना

Toolbox को कॉन्फ़िगर करने का मुख्य तरीका, tools.yaml फ़ाइल का इस्तेमाल करना है. उसी फ़ोल्डर यानी mcp-toolbox में tools.yaml नाम की एक फ़ाइल बनाएं. इसका कॉन्टेंट यहां दिया गया है.

Cloud Shell में उपलब्ध nano एडिटर का इस्तेमाल किया जा सकता है. nano कमांड यह है: "nano tools.yaml".

YOUR_PROJECT_ID वैल्यू को अपने Google Cloud प्रोजेक्ट आईडी से बदलना न भूलें.

sources:
  my-cloud-sql-source:
    kind: cloud-sql-postgres
    project: YOUR_PROJECT_ID
    region: us-central1
    instance: hoteldb-instance
    database: postgres
    user: postgres
    password: "postgres"

tools:
  search-hotels-by-name:
    kind: postgres-sql
    source: my-cloud-sql-source
    description: Search for hotels based on name.
    parameters:
      - name: name
        type: string
        description: The name of the hotel.
    statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
  search-hotels-by-location:
    kind: postgres-sql
    source: my-cloud-sql-source
    description: Search for hotels based on location.  Result is sorted by price from least to most expensive.
    parameters:
      - name: location
        type: string
        description: The location of the hotel.
    statement: |
      SELECT *
      FROM hotels
      WHERE location ILIKE '%' || $1 || '%'
      ORDER BY
        CASE price_tier
          WHEN 'Midscale' THEN 1
          WHEN 'Upper Midscale' THEN 2
          WHEN 'Upscale' THEN 3
          WHEN 'Upper Upscale' THEN 4
          WHEN 'Luxury' THEN 5
          ELSE 99 -- Handle any unexpected values, place them at the end
        END;

toolsets:
   my_first_toolset:
     - search-hotels-by-name
     - search-hotels-by-location

आइए, फ़ाइल के बारे में कम शब्दों में जानते हैं:

  1. Sources आपके अलग-अलग डेटा सोर्स को दिखाता है. टूल इनके साथ इंटरैक्ट कर सकता है. सोर्स, एक ऐसे डेटा सोर्स को दिखाता है जिससे कोई टूल इंटरैक्ट कर सकता है. अपनी tools.yaml फ़ाइल के sources सेक्शन में, Sources को मैप के तौर पर तय किया जा सकता है. आम तौर पर, सोर्स कॉन्फ़िगरेशन में डेटाबेस से कनेक्ट करने और उससे इंटरैक्ट करने के लिए ज़रूरी जानकारी होती है. इस उदाहरण में, हमने एक ऐसा सोर्स कॉन्फ़िगर किया है जो क्रेडेंशियल के साथ, हमारे Cloud SQL for PostgreSQL इंस्टेंस की ओर इशारा करता है. ज़्यादा जानकारी के लिए, सोर्स रेफ़रंस देखें.
  2. Tools से यह तय होता है कि कोई एजेंट कौनसी कार्रवाइयां कर सकता है. जैसे, किसी सोर्स से जानकारी पढ़ना और उसमें जानकारी लिखना. टूल, ऐसी कार्रवाई को दिखाता है जो आपका एजेंट कर सकता है. जैसे, SQL स्टेटमेंट चलाना. tools.yaml फ़ाइल के टूल सेक्शन में, Tools को मैप के तौर पर तय किया जा सकता है. आम तौर पर, किसी टूल को कार्रवाई करने के लिए सोर्स की ज़रूरत होती है. इस उदाहरण में, हम दो टूल तय कर रहे हैं: search-hotels-by-name और search-hotels-by-location. साथ ही, हम उस सोर्स के बारे में बता रहे हैं जिस पर यह काम कर रहा है. इसके अलावा, हम एसक्यूएल और पैरामीटर के बारे में भी बता रहे हैं. ज़्यादा जानकारी के लिए, टूल का रेफ़रंस देखें.
  3. आखिर में, हमारे पास Toolset है. इसकी मदद से, टूल के ऐसे ग्रुप तय किए जा सकते हैं जिन्हें एक साथ लोड किया जा सकता है. यह एजेंट या ऐप्लिकेशन के आधार पर अलग-अलग ग्रुप तय करने के लिए काम आ सकता है. हमारे मामले में, हमारे पास my_first_toolset नाम का एक टूलसेट है. इसमें वे दो टूल शामिल हैं जिन्हें हमने तय किया है.

नीचे दिए गए तरीके का इस्तेमाल करके, nano एडिटर में tools.yaml फ़ाइल सेव करें:

  • Ctrl + O ("लिखकर बताएं" कमांड) दबाएं.
  • यह आपसे "फ़ाइल का नाम लिखें" की पुष्टि करने के लिए कहेगा. बस Enter दबाएं.
  • अब बाहर निकलने के लिए, Ctrl + X दबाएं.

डेटाबेस सर्वर के लिए MCP टूलबॉक्स चलाएं

सर्वर शुरू करने के लिए, mcp-toolbox फ़ोल्डर से यह कमांड चलाएं:

./toolbox --tools-file "tools.yaml"

आपको ऐसा आउटपुट दिखना चाहिए जिसमें सर्वर, हमारे डेटा सोर्स से कनेक्ट हो गया हो और टूलसेट और टूल लोड हो गए हों. यहां आउटपुट का एक सैंपल दिया गया है:

2025-09-05T12:56:28.490964335Z INFO "Initialized 1 sources." 
2025-09-05T12:56:28.491127294Z INFO "Initialized 0 authServices." 
2025-09-05T12:56:28.491184521Z INFO "Initialized 2 tools." 
2025-09-05T12:56:28.491223782Z INFO "Initialized 2 toolsets." 
2025-09-05T12:56:28.497457533Z INFO "Server ready to serve!" 

MCP टूलबॉक्स सर्वर, डिफ़ॉल्ट रूप से पोर्ट 5000 पर चलता है. अगर आपको लगता है कि पोर्ट 5000 का इस्तेमाल पहले से ही किया जा रहा है, तो नीचे दिए गए कमांड के मुताबिक, किसी दूसरे पोर्ट (जैसे कि 7000) का इस्तेमाल करें. इसलिए, बाद के निर्देशों में 5000 पोर्ट के बजाय 7000 का इस्तेमाल करें.

./toolbox --tools-file "tools.yaml" --port 7000

आइए, Cloud Shell का इस्तेमाल करके इसे आज़माएं.

नीचे दिए गए तरीके से, Cloud Shell में वेब प्रीव्यू पर क्लिक करें:

b8a52769f092e5d0.png

पोर्ट बदलें पर क्लिक करें और पोर्ट को नीचे दिखाए गए तरीके से 5000 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें.

3ccac41b1f8996c5.png

इससे यह आउटपुट मिलेगा:

e2a7d3ddaac0c3be.png

ब्राउज़र के यूआरएल में, यूआरएल के आखिर में यह जोड़ें:

/api/toolset

इससे, कॉन्फ़िगर किए गए टूल दिखने चाहिए. यहां आउटपुट का एक सैंपल दिखाया गया है:

{
  "serverVersion": "0.15.0+binary.linux.amd64.c934d7adfd4d012dab3f1707dc0adbdc7cb328cb",
  "tools": {
    "search-hotels-by-location": {
      "description": "Search for hotels based on location.  Result is sorted by price from least to most expensive.",
      "parameters": [
        {
          "name": "location",
          "type": "string",
          "required": true,
          "description": "The location of the hotel.",
          "authSources": []
        }
      ],
      "authRequired": []
    },
    "search-hotels-by-name": {
      "description": "Search for hotels based on name.",
      "parameters": [
        {
          "name": "name",
          "type": "string",
          "required": true,
          "description": "The name of the hotel.",
          "authSources": []
        }
      ],
      "authRequired": []
    }
  }
}

डेटाबेस के यूज़र इंटरफ़ेस (यूआई) के लिए, एमसीपी टूलबॉक्स के ज़रिए टूल की जांच करना

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

अगर आपको इसकी जांच करनी है, तो टूलबॉक्स सर्वर को लॉन्च करने के लिए इस्तेमाल की गई पिछली कमांड को --ui विकल्प के साथ चलाएं.

इसके लिए, MCP Toolbox for Databases Server के पिछले इंस्टेंस को बंद करें. इसके बाद, यह निर्देश दें:

./toolbox --tools-file "tools.yaml" --ui

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

2025-09-08T02:44:11.561572538Z INFO "Initialized 1 sources." 
2025-09-08T02:44:11.561966395Z INFO "Initialized 0 authServices." 
2025-09-08T02:44:11.562060934Z INFO "Initialized 2 tools." 
2025-09-08T02:44:11.562105678Z INFO "Initialized 2 toolsets." 
2025-09-08T02:44:11.568209923Z INFO "Server ready to serve!" 
2025-09-08T02:44:11.568259411Z INFO "Toolbox UI is up and running at: http://localhost:5000/ui" 

यूज़र इंटरफ़ेस (यूआई) यूआरएल पर क्लिक करें और पक्का करें कि आपके पास

/ui

यूआरएल के आखिर में (अगर इसे Cloud Shell में चलाया जा रहा है, तो ब्राउज़र रीडायरेक्ट करने पर आखिर में /ui नहीं दिखेगा). इससे आपको नीचे दिखाया गया यूज़र इंटरफ़ेस (यूआई) दिखेगा:

463ae8f13fea0755.png

कॉन्फ़िगर किए गए टूल देखने के लिए, बाईं ओर मौजूद टूल विकल्प पर क्लिक करें. हमारे मामले में, ये दो होने चाहिए, यानी कि search-hotels-by-name और search-hotels-by-location. जैसा कि यहां दिखाया गया है:

309b9147d516806f.png

किसी एक टूल (search-hotels-by-location) पर क्लिक करें. इसके बाद, आपको एक पेज दिखेगा. इस पेज पर, ज़रूरी पैरामीटर की वैल्यू डालकर टूल को आज़माएं. इसके बाद, नतीजे देखने के लिए टूल चलाएं पर क्लिक करें. यहां सैंपल रन दिखाया गया है:

7901f2e1c8ce2f9b.png

डेटाबेस के लिए MCP टूलकिट में, टूल की पुष्टि करने और उन्हें आज़माने का Pythonic तरीका भी बताया गया है. इसके बारे में यहां बताया गया है.

अगर हम पहले वाले डायग्राम (नीचे दिखाया गया है) पर फिर से गौर करें, तो हमने अब डेटाबेस और एमसीपी सर्वर को सेट अप कर लिया है. अब हमारे पास दो विकल्प हैं:

f84e113cef4b956c.png

  1. एआई की मदद से काम करने वाले टर्मिनल / IDE में MCP सर्वर को कॉन्फ़िगर करने का तरीका जानने के लिए, छठे चरण पर जाएं. इसमें बताया जाएगा कि हम अपने MCP टूलबॉक्स सर्वर को Gemini CLI में कैसे इंटिग्रेट करते हैं.
  2. अगर आपको Python का इस्तेमाल करके, एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करने का तरीका जानना है, तो सातवें और आठवें चरण पर जाएं. इससे आपको ऐसे एजेंट लिखने में मदद मिलेगी जो डेटासेट से जुड़े सवालों के जवाब देने के लिए, एमसीपी सर्वर टूलबॉक्स का इस्तेमाल कर सकते हैं.

6. Gemini CLI में MCP टूलबॉक्स को इंटिग्रेट करना

Gemini CLI, ओपन-सोर्स एआई एजेंट है. यह Gemini की सुविधाओं को सीधे आपके टर्मिनल में लाता है. इसका इस्तेमाल कोडिंग और नॉन-कोडिंग, दोनों तरह के टास्क के लिए किया जा सकता है. यह कई टूल के साथ इंटिग्रेट किया गया है. साथ ही, इसमें एमसीपी सर्वर के लिए सहायता भी मिलती है.

हमारे पास काम करने वाला MCP सर्वर है. इसलिए, इस सेक्शन में हमारा मकसद Gemini CLI में Databases Server के लिए MCP टूलबॉक्स को कॉन्फ़िगर करना है. इसके बाद, Gemini CLI का इस्तेमाल करके अपने डेटा से बातचीत करना है.

हमारा पहला चरण यह पुष्टि करना होगा कि आपके पास Cloud Shell के किसी एक टर्मिनल में टूलबॉक्स चालू है या नहीं. मान लें कि इसे डिफ़ॉल्ट पोर्ट 5000 पर चलाया जा रहा है. ऐसे में, MCP Server इंटरफ़ेस इस एंडपॉइंट पर उपलब्ध होगा: http://localhost:5000/mcp.

नया टर्मिनल खोलें और my-gemini-cli-project नाम का फ़ोल्डर बनाएं. इसके लिए, यह तरीका अपनाएं. my-gemini-cli-project फ़ोल्डर पर भी जाएं.

mkdir my-gemini-cli-project
cd my-gemini-cli-project

Gemini CLI में कॉन्फ़िगर किए गए एमसीपी सर्वर की सूची में एमसीपी सर्वर जोड़ने के लिए, यह कमांड दें.

gemini mcp add --scope="project" --transport="http" "MCPToolbox" "http://localhost:5000/mcp"

Gemini सीएलआई में कॉन्फ़िगर किए गए एमसीपी सर्वर की मौजूदा सूची देखने के लिए, यह कमांड इस्तेमाल करें:

gemini mcp list

आपको MCPToolbox दिखना चाहिए, जिसे हमने कॉन्फ़िगर किया है. इसके बगल में हरे रंग का सही का निशान होना चाहिए. इससे पता चलता है कि Gemini CLI, MCP सर्वर से कनेक्ट हो गया है.

Configured MCP servers:

✓ MCPToolbox: http://localhost:5000/mcp (http) - Connected

उसी टर्मिनल से, पक्का करें कि आप my-gemini-cli-project फ़ोल्डर में हों. gemini कमांड का इस्तेमाल करके, Gemini CLI लॉन्च करें.

इससे Gemini CLI इंटरफ़ेस खुल जाएगा. अब आपको दिखेगा कि इसमें एक MCP सर्वर कॉन्फ़िगर किया गया है. एमसीपी सर्वर और टूल की सूची देखने के लिए, /mcp list कमांड का इस्तेमाल करें. उदाहरण के लिए, यहां एक सैंपल आउटपुट दिया गया है:

fbb76c759736fce7.png

अब इनमें से कोई भी प्रॉम्प्ट दिया जा सकता है:

  1. Which hotels are there in Basel?
  2. Tell me more about the Hyatt Regency?

आपको पता चलेगा कि ऊपर दी गई क्वेरी के लिए, Gemini CLI, MCPToolbox से सही टूल चुनता है. यह टूल को चलाने के लिए, आपसे अनुमति मांगेगा. इसे ज़रूरी अनुमति दें. इसके बाद, आपको दिखेगा कि नतीजे डेटाबेस से दिखाए जा रहे हैं.

7. Agent Development Kit (ADK) की मदद से एजेंट बनाना

एजेंट डेवलपमेंट किट (एडीके) इंस्टॉल करना

Cloud Shell में नया टर्मिनल टैब खोलें और नीचे दिए गए तरीके से my-agents नाम का फ़ोल्डर बनाएं. my-agents फ़ोल्डर पर भी जाएं.

mkdir my-agents
cd my-agents

अब हम venv का इस्तेमाल करके, वर्चुअल Python एनवायरमेंट बनाते हैं. इसके लिए, यह तरीका अपनाएं:

python -m venv .venv

वर्चुअल एनवायरमेंट को इस तरह चालू करें:

source .venv/bin/activate

ADK और MCP Toolbox for Databases पैकेज के साथ-साथ, langchain डिपेंडेंसी को इस तरह इंस्टॉल करें:

pip install google-adk toolbox-core

अब adk यूटिलिटी को इस तरह से चालू किया जा सकेगा.

adk

इससे आपको निर्देशों की एक सूची दिखेगी.

$ adk
Usage: adk [OPTIONS] COMMAND [ARGS]...

  Agent Development Kit CLI tools.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  api_server  Starts a FastAPI server for agents.
  create      Creates a new app in the current folder with prepopulated agent template.
  deploy      Deploys agent to hosted environments.
  eval        Evaluates an agent given the eval sets.
  run         Runs an interactive CLI for a certain agent.
  web         Starts a FastAPI server with Web UI for agents.

पहली एजेंट ऐप्लिकेशन बनाना

अब हम adk का इस्तेमाल करके, Hotel Agent Application के लिए एक स्केफ़ोल्डिंग बनाएंगे. इसके लिए, हम adk create कमांड का इस्तेमाल करेंगे. ऐप्लिकेशन का नाम **(hotel-agent-app)**होगा. यह नाम नीचे दिया गया है.

adk create hotel-agent-app

यह तरीका अपनाएं और यह चुनें:

  • रूट एजेंट के लिए मॉडल चुनने के लिए Gemini मॉडल.
  • बैकएंड के लिए Vertex AI को चुनें.
  • आपको अपना डिफ़ॉल्ट Google प्रोजेक्ट आईडी और क्षेत्र दिखेगा. डिफ़ॉल्ट सेटिंग को ही चुनें.
Choose a model for the root agent:
1. gemini-2.5-flash
2. Other models (fill later)

Choose model (1, 2): 1
1. Google AI
2. Vertex AI
Choose a backend (1, 2): 2

You need an existing Google Cloud account and project, check out this link for details:
https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai

Enter Google Cloud project ID [YOUR_PROJECT_ID]: 
Enter Google Cloud region [us-central1]: 

Agent created in <YOUR_HOME_FOLDER>/my-agents/hotel-agent-app:
- .env
- __init__.py
- agent.py

उस फ़ोल्डर को देखें जिसमें एजेंट के लिए डिफ़ॉल्ट टेंप्लेट और ज़रूरी फ़ाइलें बनाई गई हैं.

सबसे पहले, .env फ़ाइल है. जिसका कॉन्टेंट यहां दिया गया है:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION

इन वैल्यू से पता चलता है कि हम Gemini का इस्तेमाल Vertex AI के ज़रिए करेंगे. साथ ही, Google Cloud प्रोजेक्ट आईडी और जगह की जानकारी के लिए, इनसे जुड़ी वैल्यू का इस्तेमाल करेंगे.

इसके बाद, हमारे पास __init__.py फ़ाइल है. यह फ़ोल्डर को मॉड्यूल के तौर पर मार्क करती है. इसमें एक ऐसा स्टेटमेंट होता है जो agent.py फ़ाइल से एजेंट को इंपोर्ट करता है.

from . import agent

आखिर में, आइए agent.py फ़ाइल के बारे में जानते हैं. कॉन्टेंट यहां दिया गया है:

from google.adk.agents import Agent

root_agent = Agent(
    model='gemini-2.5-flash',
    name='root_agent',
    description='A helpful assistant for user questions.',
    instruction='Answer user questions to the best of your knowledge',
)

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

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

आइए, agent.py के कोड में इस तरह बदलाव करें:

from google.adk.agents import Agent

root_agent = Agent(
    model='gemini-2.5-flash',
    name='hotel_agent',
    description='A helpful assistant that answers questions about a specific city.',
    instruction='Answer user questions about a specific city to the best of your knowledge. Do not answer questions outside of this.',
)

एजेंट ऐप्लिकेशन को स्थानीय तौर पर टेस्ट करना

मौजूदा टर्मिनल विंडो से, यह कमांड दें. पक्का करें कि आप (my-agents) पैरंट फ़ोल्डर में हों. इस फ़ोल्डर में hotel-agent-app फ़ोल्डर मौजूद होना चाहिए.

adk web

यहां एक सैंपल दिखाया गया है:

INFO:     Started server process [1478]
INFO:     Waiting for application startup.

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://127.0.0.1:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

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

bd9b0b622dcc4580.png

ध्यान दें कि सबसे ऊपर बाईं ओर, hotel-agent-app की पहचान कर ली गई है. अब एजेंट से बातचीत शुरू की जा सकती है. शहरों के बारे में जानकारी पाने के लिए, कुछ प्रॉम्प्ट दें. यहां बातचीत का एक उदाहरण दिया गया है:

97ffa6de7e2d9656.png

Cloud Shell टर्मिनल में चल रही प्रोसेस को बंद किया जा सकता है (Ctrl-C).

एजेंट को आज़माने का एक और तरीका है. इसके लिए, my-agents फ़ोल्डर में जाकर, यहां दी गई adk run कमांड का इस्तेमाल करें.

adk run hotel-agent-app

कमांड आज़माएं. इसके बाद, कमांड लाइन (टर्मिनल) के ज़रिए एजेंट से बातचीत की जा सकती है. बातचीत बंद करने के लिए, exit टाइप करें.

8. हमारे एजेंट को टूल से कनेक्ट करना

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

इस उदाहरण में, हम अपने एजेंट को उन टूल के साथ काम करने के लिए तैयार करेंगे जिन्हें हमने डेटाबेस के लिए, MCP टूलबॉक्स में कॉन्फ़िगर किया है.

agent.py फ़ाइल में, यहां दिया गया कोड जोड़ें. ध्यान दें कि हम कोड में डिफ़ॉल्ट पोर्ट 5000 का इस्तेमाल कर रहे हैं. हालांकि, अगर किसी दूसरे पोर्ट नंबर का इस्तेमाल किया जा रहा है, तो कृपया उसका इस्तेमाल करें.

from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient

toolbox = ToolboxSyncClient("http://127.0.0.1:5000")

# Load single tool
# tools = toolbox.load_tool('search-hotels-by-location')

# Load all the tools
tools = toolbox.load_toolset('my_first_toolset')

root_agent = Agent(
    name="hotel_agent",
    model="gemini-2.5-flash",
    description=(
        "Agent to answer questions about hotels in a city or hotels by name."
    ),
    instruction=(
        "You are a helpful agent who can answer user questions about the hotels in a specific city or hotels by name. Use the tools to answer the question"
    ),
    tools=tools,
)

अब हम उस एजेंट की जांच कर सकते हैं जो हमारे PostgreSQL डेटाबेस से असली डेटा फ़ेच करेगा. इस डेटाबेस को MCP Toolbox for Databases के साथ कॉन्फ़िगर किया गया है.

इसके लिए, यह तरीका अपनाएं:

Cloud Shell के एक टर्मिनल में, डेटाबेस के लिए MCP टूलबॉक्स लॉन्च करें. ऐसा हो सकता है कि यह पहले से ही आपके सिस्टम पर पोर्ट 5000 पर चल रहा हो, क्योंकि हमने पहले इसकी जांच की थी. अगर ऐसा नहीं है, तो सर्वर शुरू करने के लिए, mcp-toolbox फ़ोल्डर से यह कमांड चलाएं:

./toolbox --tools_file "tools.yaml"

आपको ऐसा आउटपुट दिखना चाहिए जिसमें सर्वर, हमारे डेटा सोर्स से कनेक्ट हो गया हो और टूलसेट और टूल लोड हो गए हों. यहां आउटपुट का एक सैंपल दिया गया है:

2025-09-05T12:56:28.490964335Z INFO "Initialized 1 sources." 
2025-09-05T12:56:28.491127294Z INFO "Initialized 0 authServices." 
2025-09-05T12:56:28.491184521Z INFO "Initialized 2 tools." 
2025-09-05T12:56:28.491223782Z INFO "Initialized 2 toolsets." 
2025-09-05T12:56:28.497457533Z INFO "Server ready to serve!" 

जब MCP सर्वर चालू हो जाए, तब दूसरे टर्मिनल में एजेंट को लॉन्च करें. इसके लिए, नीचे दी गई adk run (my-agents फ़ोल्डर से) कमांड का इस्तेमाल करें. अगर आपको पसंद है, तो adk web कमांड का भी इस्तेमाल किया जा सकता है.

$ adk run hotel-agent-app/

Log setup complete: /tmp/agents_log/agent.20250423_170001.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Running agent hotel_agent, type exit to exit.

user: what can you do for me?
[hotel_agent]: I can help you find hotels in a specific city or search for hotels by name.

user: I would like to search for hotels
[hotel_agent]: Great, do you have a specific city or hotel name in mind?

user: Yes a specific city
[hotel_agent]: Great, which city are you interested in?

user: Basel
[hotel_agent]: OK. I found three hotels in Basel: Hilton Basel, Hyatt Regency Basel, and Holiday Inn Basel.

ध्यान दें कि एजेंट अब उन दो टूल का इस्तेमाल कर रहा है जिन्हें हमने डेटाबेस के लिए MCP टूलबॉक्स (search-hotels-by-name और search-hotels-by-location) में कॉन्फ़िगर किया है. साथ ही, हमें सही विकल्प दे रहा है. इसके बाद, यह PostgreSQL इंस्टेंस डेटाबेस से डेटा को आसानी से वापस पा सकता है और जवाब को उसके हिसाब से फ़ॉर्मैट कर सकता है.

इस तरह, हमने होटल एजेंट को स्थानीय तौर पर डेवलप और टेस्ट किया. इसे एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके बनाया गया था. साथ ही, इसे उन टूल की मदद से बनाया गया था जिन्हें हमने डेटाबेस के लिए एमसीपी टूलबॉक्स में कॉन्फ़िगर किया था.

9. (ज़रूरी नहीं) डेटाबेस और एजेंट के लिए, MCP टूलबॉक्स को Cloud Run पर डिप्लॉय करना

पिछले सेक्शन में, हमने MCP Toolbox सर्वर को लॉन्च करने के लिए Cloud Shell टर्मिनल का इस्तेमाल किया था. साथ ही, एजेंट की मदद से टूल की जांच की थी. यह Cloud Shell एनवायरमेंट में लोकल तौर पर चल रहा था.

आपके पास MCP Toolbox सर्वर और एजेंट, दोनों को Google Cloud की उन सेवाओं पर डिप्लॉय करने का विकल्प होता है जो हमारे लिए इन ऐप्लिकेशन को होस्ट कर सकती हैं.

Cloud Run पर MCP टूलबॉक्स सर्वर को होस्ट करना

सबसे पहले, हम MCP टूलबॉक्स सर्वर को Cloud Run पर होस्ट कर सकते हैं. इसके बाद, हमें एक सार्वजनिक एंडपॉइंट मिलेगा. इसे किसी अन्य ऐप्लिकेशन और/या एजेंट ऐप्लिकेशन के साथ इंटिग्रेट किया जा सकता है. इसे Cloud Run पर होस्ट करने के निर्देश यहां दिए गए हैं. अब हम मुख्य चरणों के बारे में जानेंगे.

नया Cloud Shell टर्मिनल लॉन्च करें या किसी मौजूदा Cloud Shell टर्मिनल का इस्तेमाल करें. उस mcp-toolbox फ़ोल्डर पर जाएं जिसमें toolbox बाइनरी और tools.yaml मौजूद हैं.

यहां दिए गए कमांड चलाएं. हर कमांड के बारे में जानकारी दी गई है:

PROJECT_ID वैरिएबल को अपने Google Cloud प्रोजेक्ट आईडी पर सेट करें.

export PROJECT_ID="YOUR_GOOGLE_CLOUD_PROJECT_ID" 

इसके बाद, पुष्टि करें कि प्रोजेक्ट में Google Cloud की ये सेवाएं चालू हों.

gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com

आइए, एक अलग सेवा खाता बनाते हैं. यह खाता, Toolbox सेवा के लिए पहचान के तौर पर काम करेगा. इस सेवा को Google Cloud Run पर डिप्लॉय किया जाएगा. हम यह भी पक्का कर रहे हैं कि इस सेवा खाते के पास सही भूमिकाएं हों. जैसे, Secret Manager को ऐक्सेस करने और Cloud SQL से कम्यूनिकेट करने की क्षमता.

gcloud iam service-accounts create toolbox-identity

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/cloudsql.client

हम tools.yaml फ़ाइल को सीक्रेट के तौर पर अपलोड करेंगे. साथ ही, हमें Cloud Run में टूलबॉक्स इंस्टॉल करना होगा. इसलिए, हम टूलबॉक्स के लिए नई कंटेनर इमेज का इस्तेमाल करेंगे और उसे IMAGE वैरिएबल में सेट करेंगे.

gcloud secrets create tools --data-file=tools.yaml

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest

Cloud Run पर डिप्लॉय करने के लिए, यहां दिए गए कमांड का इस्तेमाल किया जाता है. यह कमांड का आखिरी चरण है:

gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools_file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

इससे, कॉन्फ़िगर किए गए tools.yaml के साथ Toolbox Server को Cloud Run पर डिप्लॉय करने की प्रोसेस शुरू हो जाएगी. डेटा सोर्स को सही तरीके से डिप्लॉय करने के बाद, आपको इस तरह का मैसेज दिखेगा:

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                     
  OK Creating Revision...                                                                                                                                                                                             
  OK Routing traffic...                                                                                                                                                                                               
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                 
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

अब ब्राउज़र में, ऊपर दी गई Service URL पर जाएं. इसमें "नमस्ते, दुनिया के लोगों" वाला मैसेज दिखना चाहिए, जो हमने पहले देखा था. इसके अलावा, उपलब्ध टूल देखने के लिए, इस यूआरएल पर भी जाएं:

SERVICE URL/api/toolset

Google Cloud Console में जाकर भी Cloud Run पर जाया जा सकता है. यहां आपको Cloud Run की सेवाओं की सूची में Toolbox सेवा दिखेगी.

ध्यान दें: अगर आपको होटल एजेंट को स्थानीय तौर पर चलाना है और नई Cloud Run सेवा से कनेक्ट करना है, तो आपको my-agents/hotel-agent-app/agent.py फ़ाइल में सिर्फ़ एक बदलाव करना होगा.

इसके बजाय:

toolbox = ToolboxSyncClient("http://127.0.0.1:5000")

इसे Cloud Run सेवा के Service URL में बदलें. यह यूआरएल यहां दिया गया है:

toolbox = ToolboxSyncClient("CLOUD_RUN_SERVICE_URL")

जैसा कि हमने पहले देखा था, adk run या adk web का इस्तेमाल करके, एजेंट ऐप्लिकेशन को आज़माएं.

Cloud Run पर होटल एजेंट ऐप्लिकेशन डिप्लॉय करना

पहला चरण यह पक्का करना है कि आपने ऊपर दिए गए निर्देशों के मुताबिक, my-agents/hotel-agent-app/agent.py में बदलाव किया हो. इससे, Cloud Run पर चल रहे Toolbox सेवा के यूआरएल का इस्तेमाल किया जा सकेगा, न कि लोकल होस्ट का.

नए Cloud Shell टर्मिनल या मौजूदा टर्मिनल सेशन में, पक्का करें कि आप उसी Python वर्चुअल एनवायरमेंट में हों जिसे हमने पहले सेट अप किया था.

सबसे पहले, my-agents/hotel-agent-app फ़ोल्डर में requirements.txt फ़ाइल बनाते हैं. इसके लिए, नीचे दिया गया तरीका अपनाएं:

google-adk
toolbox-core

my-agents फ़ोल्डर पर जाएं. अब हम यहां दिए गए एनवायरमेंट वैरिएबल सेट करेंगे:

export GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_CLOUD_PROJECT_ID
export GOOGLE_CLOUD_LOCATION=us-central1
export AGENT_PATH="hotel-agent-app/"
export SERVICE_NAME="hotels-service"
export APP_NAME="hotels-app"
export GOOGLE_GENAI_USE_VERTEXAI=True

आखिर में, नीचे दिए गए तरीके से adk deploy cloud_run कमांड का इस्तेमाल करके, एजेंट ऐप्लिकेशन को Cloud Run पर डिप्लॉय करें. अगर आपसे सेवा के लिए बिना पुष्टि किए गए अनुरोधों को अनुमति देने के लिए कहा जाता है, तो कृपया अभी के लिए "y" वैल्यू दें.

adk deploy cloud_run \
--project=$GOOGLE_CLOUD_PROJECT \
--region=$GOOGLE_CLOUD_LOCATION \
--service_name=$SERVICE_NAME  \
--app_name=$APP_NAME \
--with_ui \
$AGENT_PATH

इससे, Hotel Agent Application को Cloud Run पर डिप्लॉय करने की प्रोसेस शुरू हो जाएगी. यह सोर्स को अपलोड करेगा, उन्हें Docker कंटेनर में पैकेज करेगा, और फिर उसे Artifact Registry में पुश करेगा. इसके बाद, Cloud Run पर सेवा को डिप्लॉय करेगा. इसमें कुछ मिनट लग सकते हैं. इसलिए, कृपया इंतज़ार करें.

आपको यहां दिया गया मैसेज दिखेगा:

Start generating Cloud Run source files in /tmp/cloud_run_deploy_src/20250905_132636
Copying agent source code...
Copying agent source code completed.
Creating Dockerfile...
Creating Dockerfile complete: /tmp/cloud_run_deploy_src/20250905_132636/Dockerfile
Deploying to Cloud Run...
Building using Dockerfile and deploying container to Cloud Run service [hotels-service] in project [YOUR_PROJECT_ID] region [us-central1]
-  Building and deploying... Uploading sources.                                                                                                                          
  -  Uploading sources...                                                                                                                                                
  .  Building Container...                                                                                                                                               
OK Building and deploying... Done.                                                                                                                                       
  OK Uploading sources...                                                                                                                                                
  OK Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds;region=us-central1/d1f7e76b-0587-4bb6-b9c0-bb4360c07aa0?project=415
  458962931].                                                                                                                                                            f
  OK Creating Revision...                                                                                                                                                
  OK Routing traffic...                                                                                                                                                  
Done.                                                                                                                                                                    
Service [hotels-service] revision [hotels-service-00003-hrl] has been deployed and is serving 100 percent of traffic.
Service URL: <YOUR_CLOUDRUN_APP_URL>
INFO: Display format: "none"
Cleaning up the temp folder: /tmp/cloud_run_deploy_src/20250905_132636

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

575191f524dd097d.png

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

अपने Google Cloud खाते से शुल्क लिए जाने से बचने के लिए, इस वर्कशॉप के दौरान बनाई गई संसाधनों को मिटाना ज़रूरी है. हम Cloud SQL इंस्टेंस को मिटा देंगे. अगर आपने Toolbox और Hotels ऐप्लिकेशन को Cloud Run पर डिप्लॉय किया है, तो हम उन सेवाओं को भी मिटा देंगे.

पक्का करें कि आपके प्रोजेक्ट और इलाके के हिसाब से, ये एनवायरमेंट वैरिएबल सही तरीके से सेट किए गए हों:

export PROJECT_ID="YOUR_PROJECT_ID"
export REGION="YOUR_REGION"

नीचे दी गई दो कमांड, उन Cloud Run सेवाओं को मिटा देती हैं जिन्हें हमने डिप्लॉय किया है:

gcloud run services delete toolbox --platform=managed --region=${REGION} --project=${PROJECT_ID} --quiet

gcloud run services delete hotels-service --platform=managed --region=${REGION} --project=${PROJECT_ID} --quiet

नीचे दी गई कमांड, Cloud SQL इंस्टेंस को मिटा देती है:

gcloud sql instances delete hoteldb-instance

11. बधाई हो

बधाई हो, आपने Agent Development Kit (ADK) का इस्तेमाल करके एक एजेंट बना लिया है. यह एजेंट, डेटाबेस के लिए MCP टूलबॉक्स का इस्तेमाल करता है.

रेफ़रंस दस्तावेज़