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

১. ভূমিকা

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

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

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

আপনি যা করবেন

  • অন্যান্য এমসিপি ক্লায়েন্টদের (আইডিই, টুলস, ইত্যাদি) কাছে এমসিপি ইন্টারফেস হিসেবে গুগল ক্লাউড রিলিজ নোটস ও একটি পাবলিক বিগকোয়েরি ডেটাসেট উন্মুক্ত করতে এমসিপি টুলবক্স ফর ডেটাবেস সেটআপ করুন।

আপনি যা শিখবেন

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

আপনার যা যা লাগবে

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

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

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

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
  3. আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ এবং এটি bq-এর সাথে আগে থেকেই লোড করা থাকে। গুগল ক্লাউড কনসোলের শীর্ষে থাকা ‘Activate Cloud Shell’-এ ক্লিক করুন।

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

  1. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে যাচাই করে নিন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে:
gcloud auth list
  1. gcloud কমান্ডটি আপনার প্রজেক্ট সম্পর্কে অবগত আছে কিনা, তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. আপনার প্রজেক্টটি সেট করা না থাকলে, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
  1. নিচে দেখানো কমান্ডের মাধ্যমে প্রয়োজনীয় API-গুলো সক্রিয় করুন। এতে কয়েক মিনিট সময় লাগতে পারে, তাই অনুগ্রহ করে ধৈর্য ধরুন।
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 কমান্ডের বিকল্প হলো কনসোলের মাধ্যমে প্রতিটি পণ্য অনুসন্ধান করা অথবা এই লিঙ্কটি ব্যবহার করা।

যদি কোনো API বাদ পড়ে যায়, তবে আপনি বাস্তবায়ন চলাকালীন সময়েই তা সক্রিয় করে নিতে পারেন।

gcloud কমান্ড ও তার ব্যবহারবিধি জানতে ডকুমেন্টেশন দেখুন।

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

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

b0776edf14594ef4.png

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

৪. ডেটাবেসের জন্য এমসিপি টুলবক্স

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

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

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

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

c23b0d5042e239fb.png

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

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

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

f1df59a67e5c668e.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-toolbox নামে একটি ফোল্ডার তৈরি করুন।

mkdir mcp-toolbox

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

cd mcp-toolbox

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

export VERSION=1.13.1
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

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

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

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

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

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

YOUR_PROJECT_ID এর জায়গায় আপনার গুগল ক্লাউড প্রজেক্ট আইডি বসাতে মনে রাখবেন।

kind: source
name: my-bq-source
type: bigquery
project: YOUR_PROJECT_ID
---
kind: tool
name: search_release_notes_bq
type: bigquery-sql
source: my-bq-source
description: Use this tool to get information on Google Cloud Release Notes.
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;
---
kind: toolset
name: my_bq_toolset
tools:
  - search_release_notes_bq

আসুন ফাইলটি সংক্ষেপে বুঝে নেওয়া যাক:

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

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

MCP টুলবক্স ফর ডেটাবেসেস-এ BigQuery ডেটাসোর্স কনফিগারেশনের আরও কিছু বিস্তারিত তথ্য দেখে নিন।

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

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

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

./toolbox --config "tools.yaml"

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

2026-09-26T12:58:14.590825+05:30 INFO "Starting MCP Toolbox for Databases version 1.13.1+binary.darwin.arm64.e14cda6" 
2026-09-26T12:58:14.59319+05:30 INFO "Initialized 1 sources: my-bq-source" 
2026-09-26T12:58:14.593198+05:30 INFO "Initialized 0 authServices: " 
2026-09-26T12:58:14.593201+05:30 INFO "Initialized 0 embeddingModels: " 
2026-09-26T12:58:14.59323+05:30 INFO "Initialized 1 tools: search_release_notes_bq" 
2026-09-26T12:58:14.593235+05:30 INFO "Initialized 0 prompts: " 
2026-09-26T12:58:14.593236+05:30 INFO "Initialized 0 resources: " 
2026-09-26T12:58:14.593238+05:30 INFO "Initialized 0 resource templates: " 
2026-09-26T12:58:14.593244+05:30 INFO "Initialized 2 groups: my_bq_toolset, default" 
2026-09-26T12:58:14.593259+05:30 WARN "wildcard (*) allows any website to access the primitives. This creates a security risk regardless of whether you are in a production or local development environment. Recommended to use --allowed-origins with specific local addresses." 
2026-09-26T12:58:14.593266+05:30 WARN "wildcard (*) hosts allow any domain to access this resource, making it vulnerable to DNS rebinding attacks regardless of whether you are in a production or local development environment. For improved security, use the --allowed-hosts flag to specify trusted domains." 
2026-09-26T12:58:14.593365+05:30 INFO "Server ready to serve!"  

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

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

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

নিচে দেখানো অনুযায়ী ক্লাউড শেল-এ ওয়েব প্রিভিউ-তে ক্লিক করুন:

b8a52769f092e5d0.png

নিচে দেখানো অনুযায়ী Change port- এ ক্লিক করে পোর্টটি 5000 সেট করুন এবং Change and Preview-তে ক্লিক করুন।

3ccac41b1f8996c5.png

এর ফলে নিম্নলিখিত আউটপুট পাওয়া যাবে:

e2a7d3ddaac0c3be.png

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

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

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

এটি করার জন্য, আপনার চালু থাকা MCP Toolbox for Databases Server-এর পূর্ববর্তী ইনস্ট্যান্সটি শাটডাউন করুন এবং নিম্নলিখিত কমান্ডটি দিন:

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

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

Flag --tools-file has been deprecated, please use --config instead
2026-09-26T12:59:21.662102+05:30 INFO "Starting MCP Toolbox for Databases version 1.13.1+binary.darwin.arm64.e14cda6" 
2026-09-26T12:59:21.663076+05:30 INFO "Initialized 1 sources: my-bq-source" 
2026-09-26T12:59:21.663084+05:30 INFO "Initialized 0 authServices: " 
2026-09-26T12:59:21.663087+05:30 INFO "Initialized 0 embeddingModels: " 
2026-09-26T12:59:21.663101+05:30 INFO "Initialized 1 tools: search_release_notes_bq" 
2026-09-26T12:59:21.663104+05:30 INFO "Initialized 0 prompts: " 
2026-09-26T12:59:21.663107+05:30 INFO "Initialized 0 resources: " 
2026-09-26T12:59:21.663109+05:30 INFO "Initialized 0 resource templates: " 
2026-09-26T12:59:21.663116+05:30 INFO "Initialized 2 groups: default, my_bq_toolset" 
2026-09-26T12:59:21.663124+05:30 WARN "wildcard (*) allows any website to access the primitives. This creates a security risk regardless of whether you are in a production or local development environment. Recommended to use --allowed-origins with specific local addresses." 
2026-09-26T12:59:21.663132+05:30 WARN "wildcard (*) hosts allow any domain to access this resource, making it vulnerable to DNS rebinding attacks regardless of whether you are in a production or local development environment. For improved security, use the --allowed-hosts flag to specify trusted domains." 
2026-09-26T12:59:21.663242+05:30 INFO "Server ready to serve!" 
2026-09-26T12:59:21.663249+05:30 INFO "Toolbox UI is up and running at: http://127.0.0.1:5000/ui" 

UI ইউআরএল-টিতে ক্লিক করুন এবং নিশ্চিত করুন যে ইউআরএল-টির শেষে /ui রয়েছে। এতে নিচে দেখানো ছবির মতো একটি UI প্রদর্শিত হবে:

cfad8321357e4322.png

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

a315a6613e9e38ea.png

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

6632c2e2045b7330.png

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

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

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

mkdir my-agents
cd my-agents

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

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...
  deploy       Deploys agent to hosted environments.
  eval         Evaluates an agent given the eval sets.
  eval_set     Manage Eval Sets.
  migrate      ADK migration commands.
  optimize     Optimizes the root agent instructions using the GEPA...
  run          Runs an agent.
  telemetry    Manage telemetry settings.
  test         Runs pytest on agent test JSON files under the specified...
  web          Starts a FastAPI server with Web UI for agents.

আমাদের প্রথম এজেন্ট অ্যাপ্লিকেশন তৈরি করা

আমরা এখন adk create কমান্ড ব্যবহার করে Google Cloud Release Notes Agent Application-এর জন্য একটি স্কাফোল্ডিং তৈরি করব adk যার অ্যাপের নাম হবে ** (gcp_releasenotes_agent_app) **, যা নিচে দেওয়া হলো।

adk create gcp_releasenotes_agent_app

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

  • রুট এজেন্টের মডেল বেছে নেওয়ার জন্য gemini-3.8-flash মডেলটি নির্বাচন করুন।
  • ব্যাকএন্ডের জন্য Vertex AI বেছে নিন।
  • আপনার ডিফল্ট গুগল প্রজেক্ট আইডি প্রদর্শিত হবে। সেটি নির্বাচন করুন।
  • বর্তমান গুগল ক্লাউড প্রজেক্ট অঞ্চলটি প্রদর্শিত হবে। নিশ্চিত করুন যে আপনি global টাইপ করেছেন।
Choose a model for the root agent:
1. gemini-3.5-flash
2. gemini-3.8-flash
3. Other models (fill later)
Choose model (1, 2, 3): 2

1. Google AI
2. Vertex AI
3. Login with Google
Choose a backend (1, 2, 3): 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]: global
Agent created in /Users/romin/my-agents/gcp_releasenotes_agent_app:
- .env
- .gitignore
- __init__.py
- agent.py

সেই ফোল্ডারটি পর্যবেক্ষণ করুন যেখানে এজেন্টের জন্য একটি ডিফল্ট টেমপ্লেট এবং প্রয়োজনীয় ফাইল তৈরি করা হয়েছে।

প্রথমেই রয়েছে .env ফাইল। যার বিষয়বস্তু নিচে দেখানো হলো:

GOOGLE_GENAI_USE_ENTERPRISE=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION

মানগুলো নির্দেশ করে যে আমরা গুগল ক্লাউড প্রজেক্ট আইডি এবং অবস্থানের সংশ্লিষ্ট মানসহ জেমিনি এন্টারপ্রাইজের মাধ্যমে জেমিনি ব্যবহার করব।

এরপর রয়েছে __init__.py ফাইলটি, যা ফোল্ডারটিকে একটি মডিউল হিসেবে চিহ্নিত করে এবং এতে একটিমাত্র স্টেটমেন্ট রয়েছে যা agent.py ফাইল থেকে এজেন্টকে ইম্পোর্ট করে।

from . import agent

অবশেষে, চলুন agent.py ফাইলটি দেখে নেওয়া যাক। এর বিষয়বস্তু নিচে দেখানো হলো:

from google.adk.agents.llm_agent import Agent
root_agent = Agent(
    model='gemini-3.8-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) নামেও পরিচিত, তার মূল ইঞ্জিন হিসেবে লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) ব্যবহার করে স্বাভাবিক ভাষা বুঝতে, যুক্তি দিতে, পরিকল্পনা করতে, প্রতিক্রিয়া তৈরি করতে এবং কীভাবে এগোতে হবে বা কোন সরঞ্জাম ব্যবহার করতে হবে সে বিষয়ে গতিশীলভাবে সিদ্ধান্ত নিতে পারে। এই বৈশিষ্ট্যগুলো এটিকে নমনীয় ও ভাষাকেন্দ্রিক কাজের জন্য আদর্শ করে তোলে। এলএলএম এজেন্ট সম্পর্কে আরও জানতে এখানে ক্লিক করুন।

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

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

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

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

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-3.8-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 টুলবক্স ফর ডেটাবেস চালু করুন। যেমনটি আমরা আগে পরীক্ষা করেছি, এটি আপনার লোকাল সিস্টেমে ৫০০০ পোর্টে আগে থেকেই চালু থাকতে পারে। যদি তা না হয়, সার্ভারটি চালু করার জন্য ( mcp-toolbox ফোল্ডার থেকে) নিম্নলিখিত কমান্ডটি চালান:

./toolbox --config "tools.yaml"

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

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

$ adk run gcp_releasenotes_agent_app/
Running agent gcp_releasenotes_agent, type exit to exit.
[user]: Hello
[gcp_releasenotes_agent]: Hello! I am your Google Cloud Release Notes assistant. How can I help you today? Feel free to ask about recent updates, feature releases, deprecations, or announcements across Google Cloud products.
[user]: get me the google cloud release notes
[gcp_releasenotes_agent]: Here are the latest highlights from the Google Cloud Release Notes:
---

### **AI & Machine Learning**
* **Gemini Enterprise**: 
  * **Gemini 3.8 Flash** is now Generally Available (GA) and enabled by default in `global`, `us`, and `eu` regions.
* **Gemini Enterprise Agent Platform**: 
  * **Gemini 3.8 Live** is now GA, bringing improved voice quality, model reliability, and agent orchestration.
  * **Meta's Muse Spark 1.3** is in Preview (reasoning model with tool calling, MCP support, and 1M context window).
* **CX Agent Studio**: 
  * **Agent as a tool** is now GA.
  * Added **Composite models** for enterprise voice agents.
  * Introduced **Supervisor agents** to monitor active agent performance.
  * Added **Agent-to-agent (A2A) protocol tools** and integrations for WhatsApp, Instagram, and SecureCo.
* **Model Armor**: Prompt injection, jailbreak detection, and Responsible AI filters are now supported in Melbourne (`australia-southeast2`).
---

### **Compute & Infrastructure**
* **Compute Engine**: Standard snapshots deleted accidentally or maliciously are now retained in the **Recycle Bin for 3 days** before permanent erasure (Preview).
* **Confidential VM**: Support for **Intel TDX on `c4-standard-*`** machine types is now GA.
* **SAP on Google Cloud**: Certified the **X5 series** of memory-optimized bare metal machine types (Intel Granite Rapids CPU platform) for SAP HANA and SAP NetWeaver.
* **Cloud Workstations**: Cloud Workstations is now a covered product under the Google Cloud HIPAA BAA.
---

### **Containers & Networking**
* **Google Kubernetes Engine (GKE)**: **GKE ambient networking** is now in Preview (allowlist), providing a sidecarless, Layer 4 service mesh using Gateway API on GKE Dataplane V2.
* **Cloud Service Mesh**: Maintenance and security patch releases available for in-cluster versions `1.30.4-asm.14`, `1.29.7-asm.18`, and `1.28.10-asm.40`.
---

### **Data Analytics & Databases**
* **BigQuery**: In BigQuery Studio, the query editor results table now freezes row numbers on the left during horizontal scrolling (GA).
* **Memorystore for Valkey**: Valkey version 9.1 is now GA.
* **Looker**: Deployment of version 26.16; includes a long-polling concurrency guard, tile-level filter controls (Preview), and an OAuth authorization warning dialog.
* **Data Studio / Looker Studio**: 
  * Added private IP connectivity for Cloud SQL PostgreSQL databases.
..
..
..

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

১১. অভিনন্দন

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

রেফারেন্স নথি