MCP Reference: drivemcp.googleapis.com

একটি মডেল কনটেক্সট প্রোটোকল (MCP) সার্ভার, লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) বা এআই অ্যাপ্লিকেশনকে কনটেক্সট, ডেটা বা সক্ষমতা প্রদানকারী কোনো বাহ্যিক পরিষেবার সাথে প্রক্সি হিসেবে কাজ করে। MCP সার্ভারগুলো এআই অ্যাপ্লিকেশনগুলোকে ডেটাবেস এবং ওয়েব সার্ভিসের মতো বাহ্যিক সিস্টেমের সাথে সংযুক্ত করে এবং তাদের প্রতিক্রিয়াগুলোকে এমন একটি ফরম্যাটে অনুবাদ করে যা এআই অ্যাপ্লিকেশনটি বুঝতে পারে।

এমসিপি টুলস

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

drivemcp.googleapis.com MCP সার্ভারটিতে নিম্নলিখিত টুলগুলো রয়েছে:

এমসিপি টুলস
ফাইল তৈরি করুন

গুগল ড্রাইভে ফাইল তৈরি বা আপলোড করতে এই টুলটি ব্যবহার করুন।

ফাইল আপলোড করার ক্ষেত্রে, ফাইলটির মাইমটাইপ নির্বিশেষে content ফিল্ডে বিষয়বস্তুটিকে অবশ্যই বেস৬৪ এনকোড করে দিতে হবে।

সফলভাবে তৈরি হলে একটি একক File অবজেক্ট ফেরত দেয়।

নিম্নলিখিত গুগল ড্রাইভ ফার্স্ট-পার্টি মাইম টাইপগুলি কন্টেন্ট প্রদান ছাড়াই তৈরি করা যেতে পারে:

  • application/vnd.google-apps.document
  • application/vnd.google-apps.spreadsheet
  • application/vnd.google-apps.presentation

ডিফল্টরূপে, নিম্নলিখিত মাইম টাইপগুলির জন্য নিম্নলিখিত রূপান্তরগুলি করা হবে:

  • text/plain to application/vnd.google-apps.document
  • text/csv থেকে application/vnd.google-apps.spreadsheet

ফার্স্ট-পার্টি মাইম টাইপের জন্য রূপান্তর নিষ্ক্রিয় করতে, disable_conversion_to_google_type true-তে সেট করুন।

মাইম টাইপ application/vnd.google-apps.folder এ সেট করে ফোল্ডার তৈরি করা যায়।

ফাইল_কন্টেন্ট ডাউনলোড করুন

ড্রাইভ ফাইলের বিষয়বস্তু র বাইনারি ডেটা (বাইট) হিসেবে ডাউনলোড করতে এই টুলটি ব্যবহার করুন।

ফাইলটি যদি গুগল ড্রাইভের ফার্স্ট-পার্টি মাইম টাইপের হয়, তাহলে ` exportMimeType ফিল্ডটি আবশ্যক এবং এটি ডাউনলোড করা ফাইলের ফরম্যাট নির্ধারণ করবে।

ফাইলটি খুঁজে না পাওয়া গেলে, ব্যবহারকারীর অনুরোধ করা ফাইলটি খুঁজে বের করার জন্য search_files এর মতো অন্যান্য টুল ব্যবহার করে দেখুন।

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

ফাইল মেটাডেটা পান

কোনো ব্যবহারকারীর ড্রাইভ ফাইলের সাধারণ মেটাডেটা খুঁজে পেতে এই টুলটি ব্যবহার করুন।

ফাইলটি খুঁজে না পাওয়া গেলে, ব্যবহারকারীর অনুরোধ করা ফাইলটি খুঁজে বের করার জন্য search_files এর মতো অন্যান্য টুল ব্যবহার করে দেখুন।

ফাইল অনুমতি পান ড্রাইভ ফাইলের অনুমতিগুলো তালিকাভুক্ত করতে এই টুলটি ব্যবহার করুন।
সাম্প্রতিক ফাইলগুলির তালিকা

ব্যবহারকারী কর্তৃক নির্দিষ্ট করা সাজানোর ক্রম অনুসারে সাম্প্রতিক ফাইলগুলি খুঁজে পেতে এই টুলটি ব্যবহার করুন। ডিফল্ট সাজানোর ক্রম হলো recency

সমর্থিত সর্ট অর্ডারগুলি হলো:

  • recency : ফাইলটির তারিখ-সময় ক্ষেত্র থেকে প্রাপ্ত সর্বশেষ সময়চিহ্ন।
  • lastModified : ফাইলটি সর্বশেষ কবে পরিবর্তন করা হয়েছিল।
  • lastModifiedByMe : ব্যবহারকারী কর্তৃক ফাইলটি সর্বশেষ পরিবর্তনের সময়।

ডিফল্ট পেজ সাইজ হলো ১০। ফলাফলগুলোর মধ্যে পেজিনেট করার জন্য next_page_token ব্যবহার করুন।

ফাইলের বিষয়বস্তু পড়ুন

ড্রাইভ ফাইলের স্বাভাবিক ভাষার উপস্থাপনা পেতে এই টুলটি ব্যবহার করুন।

খুব বড় ফাইলের ক্ষেত্রে ফাইলের বিষয়বস্তু অসম্পূর্ণ থাকতে পারে। সময়ের সাথে সাথে টেক্সটের উপস্থাপনা পরিবর্তিত হবে, তাই এই টুল দ্বারা প্রাপ্ত টেক্সটের নির্দিষ্ট ফরম্যাট সম্পর্কে কোনো অনুমান করবেন না।

সমর্থিত মাইম টাইপসমূহ:

  • application/vnd.google-apps.document
  • application/vnd.google-apps.presentation
  • application/vnd.google-apps.spreadsheet
  • application/pdf
  • application/msword
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • application/vnd.openxmlformats-officedocument.presentationml.presentation
  • application/vnd.oasis.opendocument.spreadsheet
  • application/vnd.oasis.opendocument.presentation
  • application/x-vnd.oasis.opendocument.text
  • image/png
  • image/jpeg
  • image/jpg

যদি ফাইলটি খুঁজে না পাওয়া যায়, তাহলে কীওয়ার্ড ব্যবহার করে ব্যবহারকারীর অনুরোধ করা ফাইলটি খুঁজে বের করার জন্য search_files এর মতো অন্যান্য টুল ব্যবহার করে দেখুন।

অনুসন্ধান_ফাইল

একটি কাঠামোগত কোয়েরি দিয়ে ড্রাইভ ফাইল অনুসন্ধান করতে এই টুলটি ব্যবহার করুন।

query ফিল্ডে কোয়েরি সার্চ অপারেটর ব্যবহার করা আবশ্যক।

একটি কোয়েরি স্ট্রিং-এ নিম্নলিখিত তিনটি অংশ থাকে: query_term operator values যেখানে:

  • query_term হলো অনুসন্ধানের জন্য প্রয়োজনীয় শব্দ বা ক্ষেত্র।
  • operator কোয়েরি টার্মের জন্য শর্ত নির্দিষ্ট করে।
  • আপনার অনুসন্ধানের ফলাফল ফিল্টার করার জন্য ব্যবহৃত নির্দিষ্ট মানগুলোই হলো values

অনুসন্ধানের শর্তাবলী

নিম্নলিখিত সারণিতে বৈধ কোয়েরি পদ এবং তাদের বিবরণ তালিকাভুক্ত করা হলো:

অনুসন্ধান পদ বৈধ অপারেটররা ব্যবহার
title contains , = , != ফাইলের শিরোনাম। এটিকে একক উদ্ধৃতি চিহ্ন ( ' ) দিয়ে ঘিরে দিন। কোয়েরিতে একক উদ্ধৃতি চিহ্নকে \' দিয়ে এস্কেপ করুন, যেমন 'Valentine\'s Day'
fullText contains ফাইলের বিষয়বস্তুর title বা লেখা মেলে কিনা। একক উদ্ধৃতি চিহ্ন ( ' ) দিয়ে ঘিরে দিন। কোয়েরিতে একক উদ্ধৃতি চিহ্নকে \' দিয়ে এস্কেপ করুন, যেমন 'Valentine\'s Day'
mimeType contains , = , != ফাইলটির MIME টাইপ। এটিকে একক উদ্ধৃতি চিহ্ন ( ' ) দিয়ে ঘিরে দিন। কোয়েরিতে একক উদ্ধৃতি চিহ্নকে \' দিয়ে এস্কেপ করুন, যেমন 'Valentine\'s Day'
modifiedTime <= , < , = , != , > , >= সর্বশেষ ফাইল পরিবর্তনের তারিখ। RFC 3339 ফরম্যাট, ডিফল্ট টাইম জোন হলো UTC, যেমন 2012-06-04T12:00:00-08:00date টাইপের ফিল্ডগুলো তুলনীয় নয়।
viewedByMeTime <= , < , = , != , > , >= ব্যবহারকারী সর্বশেষ যে তারিখে একটি ফাইল দেখেছেন। RFC 3339 ফরম্যাট, ডিফল্ট টাইম জোন হলো UTC, যেমন 2012-06-04T12:00:00-08:00 । ' date টাইপের ফিল্ডগুলো তুলনীয় নয়।
parentId = , != প্যারেন্ট নির্দিষ্ট আইডি-র সমান কিনা। root ব্যবহার করে ব্যবহারকারীর "মাই ড্রাইভ" নির্দিষ্ট করা যায়, যা তাদের প্রাথমিক স্তরবিন্যাস হিসেবে কাজ করে।
owner = , != ফাইলটির মালিক ব্যবহারকারী। অনুরোধকারী ব্যবহারকারীকে নির্দিষ্ট করতে me ব্যবহার করা যেতে পারে।
sharedWithMe = , != যে ফাইলগুলো ব্যবহারকারীর "আমার সাথে শেয়ার করা" সংগ্রহে রয়েছে। ফাইলের সকল ব্যবহারকারী ফাইলটির অ্যাক্সেস কন্ট্রোল লিস্ট (ACL)-এ অন্তর্ভুক্ত। এটি true বা false হতে পারে।
createdTime <= , < , = , != , > , >= ফাইলটি তৈরি করার তারিখ। RFC 3339 ফরম্যাট ব্যবহার করুন, ডিফল্ট টাইম জোন হলো UTC, যেমন 2012-06-04T12:00:00-08:00

কোয়েরি অপারেটর

নিম্নলিখিত সারণিতে বৈধ কোয়েরি অপারেটরগুলো তালিকাভুক্ত করা হলো:

অপারেটর ব্যবহার
contains একটি স্ট্রিং-এর বিষয়বস্তু অন্যটিতে উপস্থিত থাকে।
= একটি স্ট্রিং বা বুলিয়ানের বিষয়বস্তু একে অপরের সমান।
!= একটি স্ট্রিং বা বুলিয়ানের বিষয়বস্তু একে অপরের সমান নয়।
< একটি মান অন্যটির চেয়ে কম।
<= একটি মান অন্য একটি মানের চেয়ে কম বা সমান।
> একটি মান অন্যটির চেয়ে বড়।
>= একটি মান অন্যটির চেয়ে বড় বা সমান।
in একটি উপাদান একটি কালেকশনের মধ্যে অন্তর্ভুক্ত থাকে।
and উভয় কোয়েরির সাথে মেলে এমন আইটেমগুলো ফেরত দিন।
or যে আইটেমগুলো যেকোনো একটি কোয়েরির সাথে মেলে, সেগুলো ফেরত দিন।
not একটি অনুসন্ধান কোয়েরি বাতিল করে।
has একটি সংগ্রহে এমন একটি উপাদান থাকে যা প্যারামিটারগুলোর সাথে মেলে।

কোয়েরির কিছু উদাহরণ হলো:

  • title contains 'hello' and title contains 'goodbye'
  • modifiedTime > '2024-01-01T00:00:00Z' and (mimeType contains 'image/' or mimeType contains 'video/')
  • parentId = '1234567'
  • fullText contains 'hello'
  • owner = 'test@example.org'
  • sharedWithMe = true
  • owner = 'me' (ব্যবহারকারীর মালিকানাধীন ফাইলগুলির জন্য)

ফলাফলগুলোর মধ্যে দিয়ে পেজিনেট করার জন্য next_page_token ব্যবহার করুন। একটি খালি প্রতিক্রিয়া নির্দেশ করে যে হয় কোনো ফলাফল নেই অথবা ফেরত দেওয়ার মতো আর কোনো ফলাফল নেই।

এমসিপি টুলের স্পেসিফিকেশন জানুন

একটি MCP সার্ভারের সমস্ত টুলের স্পেসিফিকেশন পেতে, tools/list মেথডটি ব্যবহার করুন। নিম্নলিখিত উদাহরণটি দেখায় কিভাবে curl ব্যবহার করে MCP সার্ভারের মধ্যে বর্তমানে উপলব্ধ সমস্ত টুল এবং তাদের স্পেসিফিকেশন তালিকাভুক্ত করা যায়।

কার্ল অনুরোধ
curl --location 'https://drivemcp.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'