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

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

এই কোডল্যাব সম্পর্কে

subjectজুন ২০, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleRomin Irani-এর লেখা

1. ভূমিকা

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

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

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

আপনি কি শিখবেন

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

আপনি কি প্রয়োজন হবে

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

2. আপনি শুরু করার আগে

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

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

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

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

জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।

3. Google রিলিজ নোট ডেটাসেট এবং MCP ক্লায়েন্ট

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

37a7d9e124296c55.png

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

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

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

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

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

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

e316aed02b9861a6.png

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

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

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

882edaaddf940080.png

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

5. Google ক্লাউড রিলিজ নোটের জন্য BigQuery ডেটাসেট

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

2104010c05c87d0d.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

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

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

6. ডাটাবেসের জন্য MCP টুলবক্স ইনস্টল করা হচ্ছে

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

mkdir mcp-toolbox

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

cd mcp-toolbox

নিচের স্ক্রিপ্টের মাধ্যমে ডাটাবেসের জন্য MCP টুলবক্সের বাইনারি সংস্করণ ইনস্টল করুন। নীচে দেওয়া কমান্ডটি লিনাক্সের জন্য তবে আপনি যদি ম্যাক বা উইন্ডোজে থাকেন তবে নিশ্চিত করুন যে আপনি সঠিক বাইনারি ডাউনলোড করছেন। আপনার অপারেশন সিস্টেম এবং আর্কিটেকচারের জন্য রিলিজ পৃষ্ঠাটি দেখুন এবং সঠিক বাইনারি ডাউনলোড করুন।

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

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

7. ডাটাবেসের জন্য MCP টুলবক্স কনফিগার করা হচ্ছে

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

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

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

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

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

ডাটাবেসের জন্য MCP টুলবক্সে BigQuery ডেটাসোর্স কনফিগারেশনে আরও কিছু কনফিগারেশনের বিবরণ ( উৎস , টুল ) দেখুন।

8. ডাটাবেসের জন্য MCP টুলবক্স পরীক্ষা করা হচ্ছে

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

নিম্নলিখিত কমান্ডটি চালান:

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

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

2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources." 
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"

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

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

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

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

f990712162e8e924.png

চেঞ্জ পোর্টে ক্লিক করুন এবং নীচের চিত্রের মতো পোর্টটিকে 5000 এ সেট করুন এবং পরিবর্তন এবং পূর্বরূপ ক্লিক করুন।

d1b9de0c46ecef8a.png

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

2fdcdac326034d41.png

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

/api/toolset

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

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

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

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

adk create gcp-releasenotes-agent-app

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

  • রুট এজেন্ট জন্য একটি মডেল নির্বাচন করার জন্য মিথুন মডেল।
  • ব্যাকএন্ডের জন্য ভার্টেক্স এআই বেছে নিন।
  • আপনার ডিফল্ট Google প্রকল্প আইডি এবং অঞ্চল প্রদর্শিত হবে৷ ডিফল্ট নিজেই নির্বাচন করুন.
Choose a model for the root agent:
1. gemini-2.0-flash-001
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.0-flash-001',
   
name='root_agent',
   
description='A helpful assistant for user questions.',
   
instruction='Answer user questions to the best of your knowledge',
)

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

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

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

10. আমাদের এজেন্টকে টুলের সাথে সংযুক্ত করা হচ্ছে

আমরা এখন এই এজেন্টকে টুলের সাথে সংযুক্ত করতে যাচ্ছি। 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"

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

./toolbox --tools-file "tools.yaml"
2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources."
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"

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 ডেটাসেট থেকে ডেটা পুনরুদ্ধার করে এবং সেই অনুযায়ী প্রতিক্রিয়া ফর্ম্যাট করে৷

11. অভিনন্দন

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

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