ডাটাবেসের জন্য MCP টুলবক্স: MCP ক্লায়েন্টদের জন্য BigQuery ডেটাসেট উপলব্ধ করা

1. ভূমিকা

এই কোডল্যাবে, আপনি আপনার BigQuery ডেটাসেটগুলি উপলব্ধ করার জন্য MCP টুলবক্স ফর ডেটাবেস ব্যবহার করবেন।

কোডল্যাবের মাধ্যমে, আপনি নিম্নরূপ ধাপে ধাপে পদ্ধতি ব্যবহার করবেন:

  1. পাবলিক BigQuery ডেটাসেট প্রোগ্রাম থেকে একটি নির্দিষ্ট BigQuery ডেটাসেট ("গুগল ক্লাউড রিলিজ নোটস") শনাক্ত করুন।
  2. ডেটাবেসের জন্য MCP টুলবক্স সেটআপ করুন, যা BigQuery ডেটাসেটের সাথে সংযোগ স্থাপন করে।
  3. এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে এমন একটি এজেন্ট তৈরি করুন যা MCP টুলবক্স ব্যবহার করে ব্যবহারকারীদের কাছ থেকে গুগল ক্লাউড রিলিজ নোট সম্পর্কে প্রশ্নের উত্তর দেবে।

তুমি কি করবে

  • অন্যান্য MCP ক্লায়েন্টদের (IDE, টুলস, ইত্যাদি) কাছে MCP ইন্টারফেস হিসেবে Google Cloud Release Notes, একটি পাবলিক BigQuery ডেটাসেট প্রকাশ করার জন্য MCP Toolbox for Databases সেটআপ করুন।

তুমি কি শিখবে

  • BigQuery পাবলিক ডেটাসেটগুলি অন্বেষণ করুন এবং একটি নির্দিষ্ট ডেটাসেট বেছে নিন।
  • আমরা MCP ক্লায়েন্টদের জন্য উপলব্ধ করতে চাই এমন BigQuery পাবলিক ডেটাসেটের জন্য ডেটাবেসের জন্য MCP টুলবক্স সেটআপ করুন।
  • ব্যবহারকারীর প্রশ্নের উত্তর দেওয়ার জন্য এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি এজেন্ট ডিজাইন এবং ডেভেলপ করুন।
  • স্থানীয় পরিবেশে ডাটাবেসের জন্য এজেন্ট এবং এমসিপি টুলবক্স পরীক্ষা করে দেখুন।

তোমার যা লাগবে

  • ক্রোম ওয়েব ব্রাউজার।
  • একটি স্থানীয় পাইথন ডেভেলপমেন্ট পরিবেশ।

2. শুরু করার আগে

একটি প্রকল্প তৈরি করুন

  1. গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং সক্ষম আছে কিনা তা নিশ্চিত করুন। কোনও প্রোজেক্টে বিলিং সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন তা শিখুন।
  1. আপনি ক্লাউড শেল ব্যবহার করবেন, এটি গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq সহ প্রিলোডেড আসে। গুগল ক্লাউড কনসোলের শীর্ষে অ্যাক্টিভেট ক্লাউড শেল ক্লিক করুন।

ক্লাউড শেল বোতামের ছবি সক্রিয় করুন

  1. ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা করতে পারবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণপ্রাপ্ত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে কিনা:
gcloud auth list
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. যদি আপনার প্রকল্পটি সেট না করা থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>

gcloud কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন দেখুন।

৩. গুগল রিলিজ নোটস ডেটাসেট এবং এমসিপি ক্লায়েন্ট

প্রথমে, আসুন আমরা গুগল ক্লাউড রিলিজ নোটগুলি দেখে নিই যা নিয়মিতভাবে অফিসিয়াল গুগল ক্লাউড রিলিজ নোটস ওয়েবপেজে আপডেট করা হয়, যার একটি স্ক্রিনশট নীচে দেখানো হয়েছে:

9340358960d172b2.png সম্পর্কে

আপনি হয়তো ফিড ইউআরএল সাবস্ক্রাইব করতে পারেন কিন্তু যদি আমরা আমাদের এজেন্ট চ্যাটে এই রিলিজ নোটগুলি সম্পর্কে জিজ্ঞাসা করতে পারি। হয়তো "গুগল ক্লাউড রিলিজ নোটগুলিতে আমাকে আপডেট করুন" এর মতো একটি সহজ প্রশ্ন।

৪. ডাটাবেসের জন্য MCP টুলবক্স

ডেটাবেসের জন্য MCP টুলবক্স হল ডাটাবেসের জন্য একটি ওপেন সোর্স MCP সার্ভার। এটি এন্টারপ্রাইজ-গ্রেড এবং উৎপাদন-মানের কথা মাথায় রেখে ডিজাইন করা হয়েছে। এটি আপনাকে সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক জটিলতা মোকাবেলা করে সহজে, দ্রুত এবং আরও নিরাপদে সরঞ্জামগুলি বিকাশ করতে সক্ষম করে।

টুলবক্স আপনাকে জেনারেশন এআই টুল তৈরি করতে সাহায্য করে যা আপনার এজেন্টদের আপনার ডাটাবেসের ডেটা অ্যাক্সেস করতে দেয়। টুলবক্স প্রদান করে:

  • সরলীকৃত উন্নয়ন: ১০টিরও কম লাইনের কোডে আপনার এজেন্টের সাথে টুলগুলিকে একীভূত করুন, একাধিক এজেন্ট বা ফ্রেমওয়ার্কের মধ্যে টুলগুলি পুনঃব্যবহার করুন এবং আরও সহজে টুলের নতুন সংস্করণ স্থাপন করুন।
  • উন্নত কর্মক্ষমতা: সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক কিছুর মতো সর্বোত্তম অনুশীলন।
  • উন্নত নিরাপত্তা: আপনার ডেটাতে আরও নিরাপদ অ্যাক্সেসের জন্য সমন্বিত প্রমাণীকরণ
  • এন্ড-টু-এন্ড পর্যবেক্ষণযোগ্যতা: ওপেনটেলিমেট্রির জন্য অন্তর্নির্মিত সমর্থন সহ আউট অফ দ্য বক্স মেট্রিক্স এবং ট্রেসিং।
  • টুলবক্স যেকোনো MCP-সক্ষম AI সহকারীর সাথে ডাটাবেস সংযোগ করা সহজ করে তোলে, এমনকি আপনার IDE-তে থাকা AI সহকারীর সাথেও।

টুলবক্স আপনার অ্যাপ্লিকেশনের অর্কেস্ট্রেশন ফ্রেমওয়ার্ক এবং আপনার ডাটাবেসের মধ্যে অবস্থিত, একটি নিয়ন্ত্রণ সমতল প্রদান করে যা সরঞ্জামগুলিকে সংশোধন, বিতরণ বা আহ্বান করতে ব্যবহৃত হয়। এটি আপনাকে সরঞ্জামগুলি সংরক্ষণ এবং আপডেট করার জন্য একটি কেন্দ্রীভূত অবস্থান প্রদান করে আপনার সরঞ্জামগুলির ব্যবস্থাপনাকে সহজ করে তোলে, যা আপনাকে এজেন্ট এবং অ্যাপ্লিকেশনগুলির মধ্যে সরঞ্জামগুলি ভাগ করে নেওয়ার এবং আপনার অ্যাপ্লিকেশনটি পুনরায় স্থাপন না করেই সেই সরঞ্জামগুলি আপডেট করার অনুমতি দেয়।

12c16960e74b57f9.png সম্পর্কে

সহজ কথায় সংক্ষেপে বলতে গেলে:

  1. MCP টুলবক্স একটি বাইনারি, কন্টেইনার ইমেজ হিসেবে পাওয়া যায় অথবা আপনি এটি উৎস থেকে তৈরি করতে পারেন।
  2. এটি একটি tools.yaml ফাইলের মাধ্যমে কনফিগার করা টুলের একটি সেট প্রদর্শন করে। টুলগুলিকে আপনার ডেটা সোর্সের সাথে সংযোগ করার কথা ভাবা যেতে পারে। আপনি এটি সমর্থন করে এমন বিভিন্ন ডেটা সোর্স দেখতে পাবেন: AlloyDB, BigQuery, ইত্যাদি।
  3. যেহেতু এই টুলবক্সটি এখন MCP সমর্থন করে, তাই আপনার কাছে স্বয়ংক্রিয়ভাবে একটি MCP সার্ভার এন্ডপয়েন্ট থাকবে যা এজেন্ট (IDE) দ্বারা ব্যবহার করা যেতে পারে অথবা আপনি এজেন্ট ডেভেলপমেন্ট কিট (ADK) এর মতো বিভিন্ন ফ্রেমওয়ার্ক ব্যবহার করে আপনার এজেন্ট অ্যাপ্লিকেশনগুলি তৈরি করার সময় সেগুলি ব্যবহার করতে পারেন।

এই ব্লগ পোস্টে আমাদের ফোকাস নীচের হাইলাইট করা ক্ষেত্রগুলির উপর থাকবে:

7527a2a4bff20adc.png সম্পর্কে

সংক্ষেপে, আমরা ডেটাবেসের জন্য MCP টুলবক্সে একটি কনফিগারেশন তৈরি করতে যাচ্ছি যা আমাদের BigQuery ডেটাসেটের সাথে কীভাবে সংযোগ করতে হয় তা জানে। এরপর আমরা এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি এজেন্ট তৈরি করব যা MCP টুলবক্স এন্ডপয়েন্টের সাথে একীভূত হবে এবং আমাদের ডেটাসেট সম্পর্কে জিজ্ঞাসা করার জন্য প্রাকৃতিক প্রশ্ন পাঠাতে সক্ষম হবে। এটিকে একটি এজেন্টিক অ্যাপ্লিকেশন হিসাবে ভাবুন যা আপনি তৈরি করছেন যা আপনার BigQuery ডেটাসেটের সাথে কীভাবে কথা বলতে হয় তা জানে এবং এটি কিছু প্রশ্ন চালায়।

৫. গুগল ক্লাউড রিলিজ নোটের জন্য বিগকুয়েরি ডেটাসেট

গুগল ক্লাউড পাবলিক ডেটাসেট প্রোগ্রাম হল এমন একটি প্রোগ্রাম যা আপনার অ্যাপ্লিকেশনের জন্য বিভিন্ন ধরণের ডেটাসেট উপলব্ধ করে। এরকম একটি ডেটাসেট হল গুগল ক্লাউড রিলিজ নোটস ডাটাবেস। এই ডেটাসেটটি আপনাকে অফিসিয়াল গুগল ক্লাউড রিলিজ নোটস ওয়েবপেজের মতো একই তথ্য সরবরাহ করে এবং এটি একটি সর্বজনীনভাবে জিজ্ঞাসাযোগ্য ডেটাসেট হিসাবে উপলব্ধ।

adb5593504dbb71d.png

পরীক্ষা হিসেবে, আমি নীচে দেখানো একটি সহজ কোয়েরি চালিয়ে ডেটাসেটটি যাচাই করি:

SELECT
       product_name,description,published_at
     FROM
       `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
     WHERE
       DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
     GROUP BY product_name,description,published_at
     ORDER BY published_at DESC

এটি আমাকে রিলিজ নোটস ডেটাসেট থেকে গত ৭ দিনে প্রকাশিত রেকর্ডগুলির একটি তালিকা দেয়।

আপনার পছন্দের অন্য যেকোনো ডেটাসেট এবং আপনার পছন্দের প্রশ্ন এবং প্যারামিটার দিয়ে এটি প্রতিস্থাপন করুন। এখন আমাদের যা করতে হবে তা হল এটিকে ডেটাবেসের জন্য MCP টুলবক্সে ডেটা সোর্স এবং টুল হিসেবে সেট আপ করা। আসুন দেখি কিভাবে এটি করতে হয়।

৬. ডাটাবেসের জন্য MCP টুলবক্স ইনস্টল করা

আপনার স্থানীয় মেশিনে একটি টার্মিনাল খুলুন এবং mcp-toolbox নামে একটি ফোল্ডার তৈরি করুন।

mkdir mcp-toolbox

নিচের কমান্ডের মাধ্যমে mcp-toolbox ফোল্ডারে যান:

cd mcp-toolbox

নিচে দেওয়া স্ক্রিপ্টের মাধ্যমে MCP Toolbox for Databases এর বাইনারি ভার্সনটি ইনস্টল করুন। নিচে দেওয়া কমান্ডটি লিনাক্সের জন্য, কিন্তু যদি আপনি Mac বা Windows ব্যবহার করেন, তাহলে নিশ্চিত করুন যে আপনি সঠিক বাইনারিটি ডাউনলোড করছেন। আপনার অপারেশন সিস্টেম এবং আর্কিটেকচারের রিলিজ পৃষ্ঠাটি দেখুন এবং সঠিক বাইনারিটি ডাউনলোড করুন।

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

আমাদের কাছে এখন ব্যবহারের জন্য টুলবক্সের বাইনারি সংস্করণ প্রস্তুত। পরবর্তী ধাপ হল আমাদের ডেটা সোর্স এবং অন্যান্য কনফিগারেশন দিয়ে টুলবক্সটি কনফিগার করা।

৭. ডাটাবেসের জন্য MCP টুলবক্স কনফিগার করা

এখন, আমাদের BigQuery ডেটাসেট এবং টুলসগুলিকে tools.yaml ফাইলে সংজ্ঞায়িত করতে হবে যা MCP টুলবক্সের জন্য ডেটাবেসের জন্য প্রয়োজনীয়। tools.yaml ফাইলটি হল টুলবক্স কনফিগার করার প্রাথমিক উপায়।

একই ফোল্ডারে অর্থাৎ mcp-toolbox নামে একটি tools.yaml তৈরি করুন, যার বিষয়বস্তু নীচে দেখানো হয়েছে।

আপনি ক্লাউড শেলে উপলব্ধ ন্যানো এডিটরটি ব্যবহার করতে পারেন। ন্যানো কমান্ডটি নিম্নরূপ: " nano tools.yaml "।

আপনার Google Cloud Project Id দিয়ে YOUR_PROJECT_ID মানটি প্রতিস্থাপন করতে ভুলবেন না।

sources:
 my-bq-source:
   kind: bigquery
   project: YOUR_PROJECT_ID

tools:
 search_release_notes_bq:
   kind: bigquery-sql
   source: my-bq-source
   statement: |
    SELECT
     product_name,description,published_at
    FROM
      `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
    WHERE
     DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
    GROUP BY product_name,description,published_at
    ORDER BY published_at DESC
   description: |
    Use this tool to get information on Google Cloud Release Notes.

toolsets:
 my_bq_toolset:
   - search_release_notes_bq

আসুন সংক্ষেপে ফাইলটি বুঝতে পারি:

  1. সোর্স হল আপনার বিভিন্ন ডেটা সোর্স যা একটি টুল ইন্টারঅ্যাক্ট করতে পারে। সোর্স হল এমন একটি ডেটা সোর্স যা একটি টুল ইন্টারঅ্যাক্ট করতে পারে। আপনি আপনার tools.yaml ফাইলের সোর্স বিভাগে Sources কে একটি মানচিত্র হিসেবে সংজ্ঞায়িত করতে পারেন। সাধারণত, একটি সোর্স কনফিগারেশনে ডাটাবেসের সাথে সংযোগ স্থাপন এবং ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় যেকোনো তথ্য থাকবে। আমাদের ক্ষেত্রে, আমরা একটি BigQuery সোর্স my-bq-source সংজ্ঞায়িত করেছি এবং আপনাকে আপনার Google Cloud Project Id প্রদান করতে হবে। আরও তথ্যের জন্য, Sources রেফারেন্সটি দেখুন।
  2. টুলস একজন এজেন্ট যে কাজগুলো করতে পারে তা সংজ্ঞায়িত করে - যেমন সোর্সে পড়া এবং লেখা। টুল এমন একটি কাজ উপস্থাপন করে যা আপনার এজেন্ট নিতে পারে, যেমন একটি SQL স্টেটমেন্ট চালানো। আপনি আপনার tools.yaml ফাইলের টুলস বিভাগে Tools কে একটি মানচিত্র হিসেবে সংজ্ঞায়িত করতে পারেন। সাধারণত, একটি টুলের কাজ করার জন্য একটি সোর্সের প্রয়োজন হয়। আমাদের ক্ষেত্রে, আমরা একটি একক টুল search_release_notes_bq সংজ্ঞায়িত করি। এটি BigQuery সোর্স my-bq-source উল্লেখ করে যা আমরা প্রথম ধাপে সংজ্ঞায়িত করেছি। এতে স্টেটমেন্ট এবং নির্দেশনাও রয়েছে যা AI এজেন্ট ক্লায়েন্টরা ব্যবহার করবে। আরও তথ্যের জন্য, Tools রেফারেন্স দেখুন।
  3. অবশেষে, আমাদের কাছে টুলসেট আছে, যা আপনাকে এমন টুলসের গ্রুপ নির্ধারণ করতে দেয় যা আপনি একসাথে লোড করতে চান। এজেন্ট বা অ্যাপ্লিকেশনের উপর ভিত্তি করে বিভিন্ন গ্রুপ নির্ধারণের জন্য এটি কার্যকর হতে পারে। আমাদের ক্ষেত্রে, আমাদের কাছে একটি টুলসেট সংজ্ঞা আছে যেখানে আমরা বর্তমানে কেবলমাত্র একটি বিদ্যমান টুল search_release_notes_bq সংজ্ঞায়িত করেছি যা আমরা সংজ্ঞায়িত করেছি। আপনার একাধিক টুলসেট থাকতে পারে, যার মধ্যে বিভিন্ন টুলের সংমিশ্রণ রয়েছে।

তাই বর্তমানে, আমরা কেবলমাত্র একটি টুল সংজ্ঞায়িত করেছি যা ক্যোয়ারী অনুসারে গত ৭ দিনের রিলিজ নোট পায়। তবে আপনি প্যারামিটারের সাথে বিভিন্ন সমন্বয়ও করতে পারেন।

MCP Toolbox for Databases-এর BigQuery ডেটাসোর্স কনফিগারেশনে আরও কিছু কনফিগারেশন বিশদ ( Source , Tools ) দেখুন।

৮. ডাটাবেসের জন্য MCP টুলবক্স পরীক্ষা করা

আমরা mcp-toolbox ফোল্ডারে tools.yaml ফাইলটি ব্যবহার করে Toolbox ডাউনলোড এবং কনফিগার করেছি। প্রথমে এটি স্থানীয়ভাবে রান করা যাক।

নিম্নলিখিত কমান্ডটি কার্যকর করুন:

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

সফলভাবে কার্যকর করার পরে, আপনি নীচেরটির মতো নমুনা আউটপুট সহ একটি সার্ভার স্টার্টআপ দেখতে পাবেন:

2025-12-09T08:27:02.777619+05:30 INFO "Initialized 1 sources: my-bq-source" 
2025-12-09T08:27:02.777695+05:30 INFO "Initialized 0 authServices: " 
2025-12-09T08:27:02.777707+05:30 INFO "Initialized 1 tools: search_release_notes_bq" 
2025-12-09T08:27:02.777716+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default" 
2025-12-09T08:27:02.777719+05:30 INFO "Initialized 0 prompts: " 
2025-12-09T08:27:02.777723+05:30 INFO "Initialized 1 promptsets: default" 
2025-12-09T08:27:02.77773+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag to prevent DNS rebinding attacks" 
2025-12-09T08:27:02.777839+05:30 INFO "Server ready to serve!"

MCP টুলবক্স সার্ভারটি ডিফল্টভাবে 5000 পোর্টে চলে। যদি আপনি দেখেন যে 5000 পোর্ট ইতিমধ্যেই ব্যবহৃত হচ্ছে, তাহলে নীচের কমান্ড অনুসারে অন্য একটি পোর্ট (যেমন 7000 ) ব্যবহার করতে দ্বিধা করবেন না। পরবর্তী কমান্ডগুলিতে 5000 পোর্টের পরিবর্তে 7000 ব্যবহার করুন।

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

এটি পরীক্ষা করার জন্য ক্লাউড শেল ব্যবহার করা যাক।

নিচের চিত্রের মতো ক্লাউড শেলে ওয়েব প্রিভিউতে ক্লিক করুন:

b8a52769f092e5d0.png সম্পর্কে

Change port- এ ক্লিক করুন এবং নিচের চিত্রের মতো পোর্টটি 5000-এ সেট করুন এবং Change and Preview-এ ক্লিক করুন।

3ccac41b1f8996c5.png সম্পর্কে

এটি নিম্নলিখিত আউটপুট আনতে হবে:

e2a7d3ddaac0c3be.png

ব্রাউজার URL-এ, URL-এর শেষে নিম্নলিখিতটি যোগ করুন:

/api/toolset

এটি বর্তমানে কনফিগার করা সরঞ্জামগুলি সামনে আনবে। একটি নমুনা আউটপুট নীচে দেখানো হয়েছে:

{
  "serverVersion": "0.22.0+binary.linux.amd64.1a6dfe8d37d0f42fb3fd3f75c50988534dbc1b85",
  "tools": {
    "search_release_notes_bq": {
      "description": "Use this tool to get information on Google Cloud Release Notes.\n",
      "parameters": [],
      "authRequired": []
    }
  }
}

ডাটাবেস UI এর জন্য MCP টুলবক্সের মাধ্যমে টুলগুলি পরীক্ষা করুন

টুলবক্স একটি ভিজ্যুয়াল ইন্টারফেস ( টুলবক্স UI ) প্রদান করে যা একটি সাধারণ ওয়েব UI এর মধ্যে প্যারামিটার পরিবর্তন করে, হেডার পরিচালনা করে এবং কল সম্পাদন করে সরাসরি টুলের সাথে ইন্টারঅ্যাক্ট করে।

যদি আপনি এটি পরীক্ষা করে দেখতে চান, তাহলে আপনি --ui বিকল্পের সাহায্যে টুলবক্স সার্ভার চালু করার জন্য ব্যবহৃত পূর্ববর্তী কমান্ডটি চালাতে পারেন।

এটি করার জন্য, আপনার চলমান ডেটাবেস সার্ভারের জন্য MCP টুলবক্সের পূর্ববর্তী ইনস্ট্যান্সটি বন্ধ করুন এবং নিম্নলিখিত কমান্ডটি দিন:

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

আদর্শভাবে, আপনার এমন একটি আউটপুট দেখা উচিত যেখানে সার্ভারটি আমাদের ডেটা সোর্সের সাথে সংযোগ স্থাপন করতে সক্ষম হয়েছে এবং টুলসেট এবং টুলস লোড করেছে। নীচে একটি নমুনা আউটপুট দেওয়া হল এবং আপনি লক্ষ্য করবেন যে এটিতে উল্লেখ করা হবে যে টুলবক্স UI চালু এবং চলমান।

2025-12-09T08:28:07.479989+05:30 INFO "Initialized 1 sources: my-bq-source" 
2025-12-09T08:28:07.480065+05:30 INFO "Initialized 0 authServices: " 
2025-12-09T08:28:07.480079+05:30 INFO "Initialized 1 tools: search_release_notes_bq" 
2025-12-09T08:28:07.480087+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default" 
2025-12-09T08:28:07.48009+05:30 INFO "Initialized 0 prompts: " 
2025-12-09T08:28:07.480094+05:30 INFO "Initialized 1 promptsets: default" 
2025-12-09T08:28:07.4801+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag to prevent DNS rebinding attacks" 
2025-12-09T08:28:07.480214+05:30 INFO "Server ready to serve!" 
2025-12-09T08:28:07.480218+05:30 INFO "Toolbox UI is up and running at: http://127.0.0.1:5000/ui" 

UI url-এ ক্লিক করুন এবং নিশ্চিত করুন যে URL-এর শেষে /ui আছে। এটি নীচের চিত্রের মতো একটি UI প্রদর্শন করবে:

অনুসরণ

কনফিগার করা টুলগুলি দেখতে বাম দিকের Tools অপশনে ক্লিক করুন এবং আমাদের ক্ষেত্রে, এটি কেবল একটি অর্থাৎ search_release_notes_bq হওয়া উচিত, যেমনটি নীচে দেখানো হয়েছে:

a315a6613e9e38ea.png সম্পর্কে

শুধু টুলগুলিতে ক্লিক করুন ( search_release_notes_bq ) এবং এটি আপনার জন্য টুলটি পরীক্ষা করার জন্য একটি পৃষ্ঠা নিয়ে আসবে। যেহেতু কোনও প্যারামিটার প্রদান করার প্রয়োজন নেই, তাই ফলাফল দেখতে আপনি কেবল রান টুলে ক্লিক করতে পারেন। একটি নমুনা রান নীচে দেখানো হয়েছে:

726543eea642bb5a.png

ডেটাবেসের জন্য MCP টুলকিট আপনাকে সরঞ্জামগুলি যাচাই এবং পরীক্ষা করার জন্য একটি পাইথোনিক উপায়ও বর্ণনা করে, যা এখানে নথিভুক্ত করা হয়েছে। আমরা এটি এড়িয়ে যাব এবং পরবর্তী বিভাগে সরাসরি এজেন্ট ডেভেলপমেন্ট কিট (ADK) তে যাব যা এই সরঞ্জামগুলি ব্যবহার করবে।

৯. এজেন্ট ডেভেলপমেন্ট কিট (ADK) দিয়ে আমাদের এজেন্ট লেখা

এজেন্ট ডেভেলপমেন্ট কিট (ADK) ইনস্টল করুন

ক্লাউড শেলে একটি নতুন টার্মিনাল ট্যাব খুলুন এবং নিচের মতো my-agents নামে একটি ফোল্ডার তৈরি করুন। my-agents ফোল্ডারেও নেভিগেট করুন।

mkdir my-agents
cd my-agents

এবার, venv ব্যবহার করে একটি ভার্চুয়াল পাইথন পরিবেশ তৈরি করা যাক:

python -m venv .venv

ভার্চুয়াল পরিবেশটি নিম্নরূপ সক্রিয় করুন:

source .venv/bin/activate

নিম্নরূপ ল্যাংচেইন নির্ভরতা সহ ADK এবং MCP টুলবক্স ফর ডাটাবেস প্যাকেজ ইনস্টল করুন:

pip install google-adk toolbox-core

আপনি এখন নিম্নরূপে adk ইউটিলিটি চালু করতে সক্ষম হবেন।

adk

এটি আপনাকে কমান্ডের একটি তালিকা দেখাবে।

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

  Agent Development Kit CLI tools.

Options:
  --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 ব্যবহার করে গুগল ক্লাউড রিলিজ নোটস এজেন্ট অ্যাপ্লিকেশনের জন্য একটি স্ক্যাফোল্ডিং তৈরি করব adk create কমান্ডের মাধ্যমে ** (gcp-releasenotes-agent-app) ** নামে একটি অ্যাপ নাম দিয়ে।

adk create gcp-releasenotes-agent-app

ধাপগুলি অনুসরণ করুন এবং নিম্নলিখিতগুলি নির্বাচন করুন:

  • রুট এজেন্টের জন্য একটি মডেল নির্বাচন করার জন্য জেমিনি মডেল।
  • ব্যাকএন্ডের জন্য Vertex AI বেছে নিন।
  • আপনার ডিফল্ট গুগল প্রজেক্ট আইডি এবং অঞ্চল প্রদর্শিত হবে। ডিফল্টটি নিজেই নির্বাচন করুন।
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_GOOGLE_PROJECT_ID]: 
Enter Google Cloud region [us-central1]: 

Agent created in ../my-agents/gcp-releasenotes-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

মানগুলি নির্দেশ করে যে আমরা Google ক্লাউড প্রজেক্ট আইডি এবং অবস্থানের জন্য সংশ্লিষ্ট মানগুলির সাথে 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 ডকুমেন্টেশন পৃষ্ঠা থেকে, এজেন্ট হল একটি স্বয়ংসম্পূর্ণ এক্সিকিউশন ইউনিট যা নির্দিষ্ট লক্ষ্য অর্জনের জন্য স্বায়ত্তশাসিতভাবে কাজ করার জন্য ডিজাইন করা হয়েছে। এজেন্টরা কাজ সম্পাদন করতে পারে, ব্যবহারকারীদের সাথে যোগাযোগ করতে পারে, বহিরাগত সরঞ্জাম ব্যবহার করতে পারে এবং অন্যান্য এজেন্টদের সাথে সমন্বয় করতে পারে।

বিশেষ করে, একটি LLMAgent, যাকে সাধারণত Agent নামে ডাকা হয়, তারা লার্জ ল্যাঙ্গুয়েজ মডেল (LLMs) কে তাদের মূল ইঞ্জিন হিসেবে ব্যবহার করে প্রাকৃতিক ভাষা বোঝার, যুক্তি, পরিকল্পনা, প্রতিক্রিয়া তৈরি করার এবং কীভাবে এগিয়ে যেতে হবে বা কোন সরঞ্জামগুলি ব্যবহার করতে হবে তা গতিশীলভাবে সিদ্ধান্ত নেওয়ার জন্য, যা নমনীয়, ভাষা-কেন্দ্রিক কাজের জন্য তাদের আদর্শ করে তোলে। LLM এজেন্ট সম্পর্কে আরও জানুন এখানে

এটি এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি মৌলিক এজেন্ট তৈরি করার জন্য আমাদের স্ক্যাফোল্ডিং সম্পূর্ণ করে। আমরা এখন আমাদের এজেন্টকে MCP টুলবক্সের সাথে সংযুক্ত করতে যাচ্ছি, যাতে এটি ব্যবহারকারীর প্রশ্নের উত্তর দেওয়ার জন্য সেই টুলটি ব্যবহার করতে পারে (এই ক্ষেত্রে, এটি হবে Google ক্লাউড রিলিজ নোট)।

১০. আমাদের এজেন্টকে টুলের সাথে সংযুক্ত করা

আমরা এখন এই এজেন্টটিকে টুলসের সাথে সংযুক্ত করতে যাচ্ছি। ADK-এর প্রেক্ষাপটে, একটি টুল একটি AI এজেন্টকে প্রদত্ত একটি নির্দিষ্ট ক্ষমতার প্রতিনিধিত্ব করে, যা এটিকে তার মূল টেক্সট তৈরি এবং যুক্তি ক্ষমতার বাইরেও ক্রিয়া সম্পাদন করতে এবং বিশ্বের সাথে যোগাযোগ করতে সক্ষম করে।

আমাদের ক্ষেত্রে, আমরা এখন আমাদের এজেন্টকে ডেটাবেসের জন্য MCP টুলবক্সে কনফিগার করা টুল দিয়ে সজ্জিত করব।

নিম্নলিখিত কোডটি ব্যবহার করে agent.py ফাইলটি পরিবর্তন করুন। লক্ষ্য করুন যে আমরা কোডটিতে ডিফল্ট পোর্ট 5000 ব্যবহার করছি, কিন্তু যদি আপনি একটি বিকল্প পোর্ট নম্বর ব্যবহার করেন, তাহলে দয়া করে এটি ব্যবহার করুন।

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

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

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

root_agent = Agent(
    name="gcp_releasenotes_agent",
    model="gemini-2.0-flash",
    description=(
        "Agent to answer questions about Google Cloud Release notes."
    ),
    instruction=(
        "You are a helpful agent who can answer user questions about the Google Cloud Release notes. Use the tools to answer the question"
    ),
    tools=tools,
)

আমরা এখন সেই এজেন্টটি পরীক্ষা করতে পারি যা আমাদের BigQuery ডেটাসেট থেকে আসল ডেটা আনবে যা ডেটাবেসের জন্য MCP টুলবক্স দিয়ে কনফিগার করা হয়েছে।

এটি করার জন্য, এই ক্রমটি অনুসরণ করুন:

ক্লাউড শেলের একটি টার্মিনালে, ডেটাবেসের জন্য MCP টুলবক্স চালু করুন। আমরা আগে যেমন পরীক্ষা করেছি, আপনার কাছে এটি স্থানীয়ভাবে পোর্ট 5000-এ চলমান থাকতে পারে। যদি না থাকে, তাহলে সার্ভারটি শুরু করতে নিম্নলিখিত কমান্ডটি ( mcp-toolbox ফোল্ডার থেকে) চালান:

./toolbox --tools_file "tools.yaml"

আদর্শভাবে, আপনার এমন একটি আউটপুট দেখা উচিত যে সার্ভারটি আমাদের ডেটা সোর্সের সাথে সংযোগ স্থাপন করতে সক্ষম হয়েছে এবং টুলসেট এবং টুলগুলি লোড করেছে।

MCP সার্ভারটি সফলভাবে শুরু হয়ে গেলে, অন্য একটি টার্মিনালে, নীচে দেখানো adk run ( my-agents ফোল্ডার থেকে) কমান্ডের মাধ্যমে এজেন্টটি চালু করুন। আপনি চাইলে adk web কমান্ডও ব্যবহার করতে পারেন।

$ adk run gcp-releasenotes-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 gcp_releasenotes_agent, type exit to exit.

[user]: get me the google cloud release notes


[gcp_releasenotes_agent]: Here are the Google Cloud Release Notes.

Google SecOps SOAR: Release 6.3.49 is being rolled out to the first phase of regions. This release contains internal and customer bug fixes. Published: 2025-06-14

Compute Engine: Dynamic NICs let you add or remove network interfaces to or from an instance without having to restart or recreate the instance. You can also use Dynamic NICs when you need more network interfaces. The maximum number of vNICs for most machine types in Google Cloud is 10; however, you can configure up to 16 total interfaces by using Dynamic NICs. Published: 2025-06-13

Compute Engine: General purpose C4D machine types, powered by the fifth generation AMD EPYC processors (Turin) and Google Titanium, are generally available. Published: 2025-06-13

Google Agentspace: Google Agentspace Enterprise: App-level feature management. As an Agentspace administrator, you can choose to turn the following features on or off for your end users in the web app: Agents gallery, Prompt gallery, No-code agent, NotebookLM Enterprise. Published: 2025-06-13

Cloud Load Balancing: Cloud Load Balancing supports load balancing to multi-NIC instances that use Dynamic NICs. This capability is in Preview. Published: 2025-06-13

Virtual Private Cloud: Dynamic Network Interfaces (NICs) are available in Preview. Dynamic NICs let you update an instance to add or remove network interfaces without having to restart or recreate the instance. Published: 2025-06-13

Security Command Center: The following Event Threat Detection detectors for Vertex AI have been released to Preview:
- `Persistence: New Geography for AI Service`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Admin Activity`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Data Access`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Admin Activity`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Data Access`
- `Privilege Escalation: Anomalous Impersonation of Service Account for AI Admin Activity`
- `Persistence: New AI API Method`
......
......

লক্ষ্য করুন যে এজেন্টটি ডেটাবেসের জন্য MCP টুলবক্স ( search_release_notes_bq ) এ কনফিগার করা টুলটি ব্যবহার করছে এবং BigQuery ডেটাসেট থেকে ডেটা পুনরুদ্ধার করছে এবং সেই অনুযায়ী প্রতিক্রিয়া ফর্ম্যাট করছে।

১১. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে ডেটাবেসের জন্য MCP টুলবক্স কনফিগার করেছেন এবং MCP ক্লায়েন্টদের মধ্যে অ্যাক্সেসের জন্য একটি BigQuery ডেটাসেট কনফিগার করেছেন।

রেফারেন্স ডক্স