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

आपको क्या करना होगा
- ऐसा एजेंट डिज़ाइन करो, बनाओ, और डिप्लॉय करो जो किसी जगह के होटल के बारे में उपयोगकर्ता की क्वेरी का जवाब दे या नाम के हिसाब से होटल खोजे.
आपको क्या सीखने को मिलेगा
- Cloud SQL for PostgreSQL डेटाबेस को सैंपल डेटा के साथ प्रोविज़न और पॉप्युलेट करना.
- Cloud SQL for PostgreSQL डेटाबेस इंस्टेंस के लिए, डेटाबेस के लिए MCP टूलबॉक्स सेटअप करें.
- लोगों की क्वेरी के जवाब देने के लिए, एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके एजेंट को डिज़ाइन और डेवलप करें.
- स्थानीय एनवायरमेंट में, डेटाबेस के लिए एजेंट और एमसीपी टूलबॉक्स को आज़माएं.
- (ज़रूरी नहीं) Google Cloud में डेटाबेस के लिए, एजेंट और एमसीपी टूलबॉक्स डिप्लॉय करें.
आपको इन चीज़ों की ज़रूरत होगी
- Chrome वेब ब्राउज़र
- Gmail खाता
- बिलिंग की सुविधा वाला Cloud प्रोजेक्ट
यह कोडलैब, सभी लेवल के डेवलपर के लिए बनाया गया है. इसमें शुरुआती डेवलपर भी शामिल हैं. इसमें सैंपल ऐप्लिकेशन में Python का इस्तेमाल किया गया है. हालांकि, इसके लिए Python की जानकारी होना ज़रूरी नहीं है. साथ ही, इसमें दिए गए कॉन्सेप्ट को समझने के लिए, कोड को पढ़ने की बुनियादी क्षमता काफ़ी होगी.
2. शुरू करने से पहले
प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें .
- आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है. इसमें bq पहले से लोड होता है. Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें.

- Cloud Shell से कनेक्ट होने के बाद, यह देखने के लिए कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट किया गया है, इस कमांड का इस्तेमाल करें:
gcloud auth list
- यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं.
gcloud config list project
- अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
- नीचे दिए गए निर्देश का इस्तेमाल करके, ज़रूरी एपीआई चालू करें. इसमें कुछ मिनट लग सकते हैं. इसलिए, कृपया इंतज़ार करें.
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) पर क्लिक करें:

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

इससे आपको 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;
आपको होटल टेबल में कई रिकॉर्ड दिखेंगे, जैसा कि यहां दिखाया गया है:

हमने Cloud SQL इंस्टेंस को सेट अप करने की प्रोसेस पूरी कर ली है और सैंपल डेटा बना लिया है. अगले सेक्शन में, हम डेटाबेस के लिए MCP टूलबॉक्स सेट अप करेंगे.
5. डेटाबेस के लिए एमसीपी टूलबॉक्स सेट अप करना
MCP Toolbox for Databases, डेटाबेस के लिए एक ओपन सोर्स MCP सर्वर है. इसे एंटरप्राइज़-ग्रेड और प्रोडक्शन-क्वालिटी को ध्यान में रखकर डिज़ाइन किया गया है. यह आपको टूल को आसानी से, तेज़ी से, और ज़्यादा सुरक्षित तरीके से डेवलप करने की सुविधा देता है. इसके लिए, यह कनेक्शन पूलिंग, पुष्टि करने की प्रोसेस वगैरह जैसी मुश्किलों को मैनेज करता है.
टूलबॉक्स की मदद से, जनरेटिव एआई टूल बनाए जा सकते हैं. इनकी मदद से, आपके एजेंट आपके डेटाबेस में मौजूद डेटा को ऐक्सेस कर सकते हैं. टूलबॉक्स में ये सुविधाएं मिलती हैं:
- डेवलपमेंट को आसान बनाना: अपने एजेंट में टूल को 10 से कम लाइनों के कोड में इंटिग्रेट करें. साथ ही, एक से ज़्यादा एजेंट या फ़्रेमवर्क के बीच टूल का फिर से इस्तेमाल करें. इसके अलावा, टूल के नए वर्शन को आसानी से डिप्लॉय करें.
- बेहतर परफ़ॉर्मेंस: कनेक्शन पूलिंग, पुष्टि करने की प्रोसेस वगैरह जैसे सबसे सही तरीके.
- बेहतर सुरक्षा: आपके डेटा को ज़्यादा सुरक्षित तरीके से ऐक्सेस करने के लिए, इंटिग्रेटेड ऑथराइज़ेशन
- एंड-टू-एंड ऑब्ज़र्वेबिलिटी: OpenTelemetry के साथ काम करने की सुविधा के साथ, बॉक्स से बाहर की मेट्रिक और ट्रेसिंग.
टूलबॉक्स, आपके ऐप्लिकेशन के ऑर्केस्ट्रेशन फ़्रेमवर्क और आपके डेटाबेस के बीच मौजूद होता है. यह एक कंट्रोल प्लेन उपलब्ध कराता है, जिसका इस्तेमाल टूल में बदलाव करने, उन्हें डिस्ट्रिब्यूट करने या उन्हें शुरू करने के लिए किया जाता है. यह आपके टूल को मैनेज करने की प्रोसेस को आसान बनाता है. इसके लिए, यह टूल को सेव और अपडेट करने के लिए एक जगह उपलब्ध कराता है. इससे, एजेंट और ऐप्लिकेशन के बीच टूल शेयर किए जा सकते हैं. साथ ही, ऐप्लिकेशन को फिर से डिप्लॉय किए बिना उन टूल को अपडेट किया जा सकता है.

आपको पता चल गया होगा कि 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.19.1
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
अब हमारे पास टूलबॉक्स का बाइनरी वर्शन है, जिसका इस्तेमाल किया जा सकता है. आइए, पुष्टि करें कि हमने टूलबॉक्स बाइनरी को सही तरीके से सेट अप किया है और यह सही वर्शन दिखा रहा है.
Toolbox का वर्शन पता करने के लिए, यह कमांड डालें:
./toolbox -v
इससे, यहाँ दिए गए आउटपुट जैसा आउटपुट प्रिंट होना चाहिए:
toolbox version 0.19.1+binary.linux.amd64.cd8d68d
अगला चरण, हमारे डेटा सोर्स और अन्य कॉन्फ़िगरेशन के साथ टूलबॉक्स को कॉन्फ़िगर करना है.
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
आइए, फ़ाइल के बारे में कम शब्दों में जानते हैं:
Sourcesआपके अलग-अलग डेटा सोर्स को दिखाता है. टूल इनके साथ इंटरैक्ट कर सकता है. सोर्स, एक ऐसे डेटा सोर्स को दिखाता है जिससे कोई टूल इंटरैक्ट कर सकता है. अपनी tools.yaml फ़ाइल के sources सेक्शन में,Sourcesको मैप के तौर पर तय किया जा सकता है. आम तौर पर, सोर्स कॉन्फ़िगरेशन में डेटाबेस से कनेक्ट करने और उससे इंटरैक्ट करने के लिए ज़रूरी जानकारी होती है. इस उदाहरण में, हमने एक ऐसा सोर्स कॉन्फ़िगर किया है जो क्रेडेंशियल के साथ, हमारे Cloud SQL for PostgreSQL इंस्टेंस की ओर इशारा करता है. ज़्यादा जानकारी के लिए, सोर्स रेफ़रंस देखें.Toolsसे यह तय होता है कि एजेंट कौन-कौनसी कार्रवाइयाँ कर सकता है. जैसे, किसी सोर्स से जानकारी पढ़ना और उसमें जानकारी लिखना. टूल, ऐसी कार्रवाई को दिखाता है जो आपका एजेंट कर सकता है. जैसे, SQL स्टेटमेंट चलाना. tools.yaml फ़ाइल के टूल सेक्शन में,Toolsको मैप के तौर पर तय किया जा सकता है. आम तौर पर, किसी टूल को कार्रवाई करने के लिए सोर्स की ज़रूरत होती है. इस उदाहरण में, हम दो टूल तय कर रहे हैं:search-hotels-by-nameऔरsearch-hotels-by-location. साथ ही, हम उस सोर्स के बारे में बता रहे हैं जिस पर यह काम कर रहा है. इसके अलावा, हम एसक्यूएल और पैरामीटर के बारे में भी बता रहे हैं. ज़्यादा जानकारी के लिए, टूल का रेफ़रंस देखें.- आखिर में, हमारे पास
Toolsetहै. इसकी मदद से, टूल के ऐसे ग्रुप तय किए जा सकते हैं जिन्हें एक साथ लोड किया जा सकता है. इसकी मदद से, एजेंट या ऐप्लिकेशन के आधार पर अलग-अलग ग्रुप तय किए जा सकते हैं. हमारे मामले में, हमारे पासmy_first_toolsetनाम का एक टूलसेट है. इसमें वे दो टूल शामिल हैं जिन्हें हमने तय किया है.
नीचे दिए गए तरीके का इस्तेमाल करके, nano एडिटर में tools.yaml फ़ाइल सेव करें:
Ctrl + O("लिखकर बताएं" कमांड) दबाएं.- यह आपसे "फ़ाइल का नाम लिखें" की पुष्टि करने के लिए कहेगा. बस
Enterदबाएं. - अब बाहर निकलने के लिए,
Ctrl + Xदबाएं.
MCP Toolbox for Databases Server को चलाएं
सर्वर शुरू करने के लिए, mcp-toolbox फ़ोल्डर से यह कमांड चलाएं:
./toolbox --tools-file "tools.yaml"
आपको ऐसा आउटपुट दिखना चाहिए जिसमें सर्वर, हमारे डेटा सोर्स से कनेक्ट हो गया हो और टूलसेट और टूल लोड हो गए हों. यहां आउटपुट का एक सैंपल दिया गया है:
2025-11-10T04:29:59.496054006Z INFO "Initialized 1 sources: my-cloud-sql-source"
2025-11-10T04:29:59.496186019Z INFO "Initialized 0 authServices: "
2025-11-10T04:29:59.496271516Z INFO "Initialized 2 tools: search-hotels-by-name, search-hotels-by-location"
2025-11-10T04:29:59.496327893Z INFO "Initialized 2 toolsets: my_first_toolset, default"
2025-11-10T04:29:59.501726483Z INFO "Server ready to serve!"
एमसीपी टूलबॉक्स सर्वर, डिफ़ॉल्ट रूप से पोर्ट 5000 पर चलता है. अगर आपको लगता है कि पोर्ट 5000 का इस्तेमाल पहले से ही किया जा रहा है, तो नीचे दिए गए कमांड के मुताबिक, किसी दूसरे पोर्ट (जैसे कि 7000) का इस्तेमाल करें. इसलिए, बाद के निर्देशों में 5000 पोर्ट के बजाय 7000 का इस्तेमाल करें.
./toolbox --tools-file "tools.yaml" --port 7000
आइए, Cloud Shell का इस्तेमाल करके इसे आज़माएं.
नीचे दिए गए तरीके से, Cloud Shell में वेब प्रीव्यू पर क्लिक करें:

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

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

ब्राउज़र के यूआरएल में, यूआरएल के आखिर में यह जोड़ें:
/api/toolset
इससे, कॉन्फ़िगर किए गए टूल दिखने चाहिए. यहां आउटपुट का एक सैंपल दिखाया गया है:
{
"serverVersion": "0.19.1+binary.linux.amd64.cd8d68d",
"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-11-10T04:31:29.708873806Z INFO "Initialized 1 sources: my-cloud-sql-source"
2025-11-10T04:31:29.70899819Z INFO "Initialized 0 authServices: "
2025-11-10T04:31:29.709061906Z INFO "Initialized 2 tools: search-hotels-by-location, search-hotels-by-name"
2025-11-10T04:31:29.709113427Z INFO "Initialized 2 toolsets: my_first_toolset, default"
2025-11-10T04:31:29.714282487Z INFO "Server ready to serve!"
2025-11-10T04:31:29.714316373Z INFO "Toolbox UI is up and running at: http://127.0.0.1:5000/ui"
यूज़र इंटरफ़ेस (यूआई) यूआरएल पर क्लिक करें और पक्का करें कि आपके पास
/ui
यूआरएल के आखिर में (अगर इसे Cloud Shell में चलाया जा रहा है, तो ब्राउज़र रीडायरेक्ट करने पर आखिर में /ui नहीं दिखेगा). इससे आपको नीचे दिखाया गया यूज़र इंटरफ़ेस (यूआई) दिखेगा:

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

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

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

- एआई की मदद से काम करने वाले टर्मिनल / IDE में MCP सर्वर को कॉन्फ़िगर करने का तरीका जानने के लिए, छठे चरण पर जाएं. इसमें बताया जाएगा कि हम अपने MCP टूलबॉक्स सर्वर को
Gemini CLIमें कैसे इंटिग्रेट करते हैं. Agent Development Kit (ADK) using Pythonका इस्तेमाल करने का तरीका जानने के लिए, अपने एजेंट लिखने के लिए, एमसीपी सर्वर टूलबॉक्स का इस्तेमाल करने के लिए, और डेटासेट से जुड़े सवालों के जवाब पाने के लिए, सातवें और आठवें चरण पर जाएं.
6. Gemini CLI में MCP टूलबॉक्स को इंटिग्रेट करना
Gemini CLI, ओपन-सोर्स एआई एजेंट है. यह Gemini की सुविधाओं को सीधे आपके टर्मिनल में लाता है. इसका इस्तेमाल कोडिंग और नॉन-कोडिंग, दोनों तरह के टास्क के लिए किया जा सकता है. यह कई टूल के साथ इंटिग्रेट किया गया है. साथ ही, इसमें एमसीपी सर्वर के लिए सहायता भी उपलब्ध है.
हमारे पास काम करने वाला MCP सर्वर है. इसलिए, इस सेक्शन में हमारा मकसद Gemini CLI में Databases Server के लिए MCP टूलबॉक्स को कॉन्फ़िगर करना है. इसके बाद, Gemini CLI का इस्तेमाल करके अपने डेटा से बातचीत करना है.
हमारा पहला चरण यह पुष्टि करना होगा कि आपके पास Cloud Shell के किसी एक टर्मिनल में टूलबॉक्स चालू है या नहीं. मान लें कि इसे डिफ़ॉल्ट पोर्ट 5000 पर चलाया जा रहा है. ऐसे में, एमसीपी सर्वर इंटरफ़ेस इस एंडपॉइंट पर उपलब्ध होगा: 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 कमांड का इस्तेमाल करें. उदाहरण के लिए, यहां एक सैंपल आउटपुट दिया गया है:

अब इनमें से कोई भी प्रॉम्प्ट दिया जा सकता है:
Which hotels are there in Basel?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.
conformance Conformance testing tools for ADK.
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.
eval_set Manage 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
उस फ़ोल्डर को देखें जिसमें एजेंट के लिए डिफ़ॉल्ट टेंप्लेट और ज़रूरी फ़ाइलें बनाई गई हैं. <YOUR_HOME_FOLDER>/my-agents/hotel-agent-app डायरेक्ट्री में मौजूद टर्मिनल में, ls -al कमांड का इस्तेमाल करके फ़ाइलें देखी जा सकती हैं.
सबसे पहले, .env फ़ाइल है. यह फ़ाइल पहले ही बनाई जा चुकी है. यहां आपको फ़ाइल का कॉन्टेंट दिखेगा:
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION
इन वैल्यू से पता चलता है कि हम Google Cloud प्रोजेक्ट आईडी और जगह की वैल्यू के साथ-साथ, Vertex AI के ज़रिए Gemini का इस्तेमाल करेंगे.
इसके बाद, हमारे पास __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)
आखिरी लिंक पर क्लिक करें. इससे एजेंट की जांच करने के लिए, वेब कंसोल खुल जाएगा. आपको ब्राउज़र में यह लॉन्च होता हुआ दिखेगा, जैसा कि यहां दिखाया गया है:

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

Cloud Shell टर्मिनल में चल रही प्रोसेस को बंद किया जा सकता है (Ctrl-C).
एजेंट को आज़माने का एक और तरीका है. इसके लिए, my-agents फ़ोल्डर में जाकर, यहां दी गई adk run कमांड का इस्तेमाल करें.
adk run hotel-agent-app
कमांड आज़माएं. इसके बाद, कमांड लाइन (टर्मिनल) के ज़रिए एजेंट से बातचीत की जा सकती है. बातचीत बंद करने के लिए, exit टाइप करें.
8. हमारे एजेंट को टूल से कनेक्ट करना
अब हमें एजेंट लिखने और उसे स्थानीय तौर पर टेस्ट करने का तरीका पता है. हम इस एजेंट को टूल से कनेक्ट करने जा रहे हैं. एडीके के संदर्भ में, टूल का मतलब एआई एजेंट को दी गई किसी खास सुविधा से है. इससे एआई एजेंट को कार्रवाई करने और दुनिया के साथ इंटरैक्ट करने में मदद मिलती है. इसके अलावा, यह टेक्स्ट जनरेट करने और तर्क देने की क्षमताओं से भी आगे बढ़कर काम करता है.
इस उदाहरण में, हम अपने एजेंट को उन टूल के साथ काम करने के लिए तैयार करेंगे जिन्हें हमने डेटाबेस के लिए, 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-11-10T04:29:59.496054006Z INFO "Initialized 1 sources: my-cloud-sql-source"
2025-11-10T04:29:59.496186019Z INFO "Initialized 0 authServices: "
2025-11-10T04:29:59.496271516Z INFO "Initialized 2 tools: search-hotels-by-name, search-hotels-by-location"
2025-11-10T04:29:59.496327893Z INFO "Initialized 2 toolsets: my_first_toolset, default"
2025-11-10T04:29:59.501726483Z INFO "Server ready to serve!"
MCP सर्वर के चालू होने के बाद, दूसरे टर्मिनल में एजेंट को लॉन्च करें. इसके लिए, नीचे दी गई adk run (my-agents फ़ोल्डर से) कमांड का इस्तेमाल करें. अगर आपको पसंद है, तो adk web कमांड का भी इस्तेमाल किया जा सकता है.
$ adk run hotel-agent-app/
...
Running agent hotel_agent, type exit to exit.
[user]: what can you do for me ?
[hotel_agent]: I can help you find hotels by location or by name.
[user]: I would like to search for hotels?
[hotel_agent]: Great! Do you want to search by location or by hotel name?
[user]: I'd like to search in Basel
[hotel_agent]: Here are some hotels in Basel:
* Holiday Inn Basel (Upper Midscale)
* Hyatt Regency Basel (Upper Upscale)
* Hilton Basel (Luxury)
[user]:
ध्यान दें कि एजेंट अब उन दो टूल का इस्तेमाल कर रहा है जिन्हें हमने डेटाबेस के लिए 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 पर Hotel Agent ऐप्लिकेशन डिप्लॉय करना
पहला चरण यह पक्का करना है कि आपने ऊपर दिए गए निर्देशों के मुताबिक, 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
सफल डिप्लॉयमेंट के बाद, आपको सेवा के यूआरएल की वैल्यू दी जाएगी. इसके बाद, ब्राउज़र में जाकर इस वैल्यू को ऐक्सेस किया जा सकता है. इससे आपको वही वेब ऐप्लिकेशन दिखेगा जिससे आपने होटल एजेंट से चैट की थी. यह वही वेब ऐप्लिकेशन है जिसे हमने स्थानीय सेटअप में देखा था.

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 टूलबॉक्स का इस्तेमाल करता है.