MCP Tools Reference: chatmcp.googleapis.com

টুল: search_conversations

কথোপকথনের আইডি খুঁজে বের করার জন্য ডিসপ্লে নেম বা অংশগ্রহণকারীদের দ্বারা গুগল চ্যাট কথোপকথন (নেমড স্পেস, ডিরেক্ট মেসেজ (ডিএম), বা গ্রুপ চ্যাট) অনুসন্ধান করে।

এই টুলটি কথোপকথনের মেটাডেটা অনুসন্ধান করে, বার্তার বিষয়বস্তু নয়। বার্তার ইতিহাসে অনুসন্ধান করতে অথবা কীওয়ার্ড/প্রেরক/টাইমস্ট্যাম্প দ্বারা বার্তা খুঁজে পেতে, কথোপকথনের আইডি খুঁজে বের করার জন্য `search_messages` অথবা `participants` ব্যবহার করুন।

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

শুধুমাত্র participants তথ্য দেওয়া হলে, এই টুলটি সেইসব ১:১ সরাসরি বার্তা (যদি একজন অংশগ্রহণকারীর তথ্য দেওয়া হয়) অথবা গ্রুপ চ্যাট (যদি একাধিক অংশগ্রহণকারীর তথ্য দেওয়া হয়) খুঁজে বের করে, যেগুলিতে নির্দিষ্ট অংশগ্রহণকারী এবং কলকারী ব্যবহারকারী অন্তর্ভুক্ত থাকে।

শুধুমাত্র একটি query প্রদান করা হলে, এই টুলটি এমন কথোপকথনগুলি অনুসন্ধান করে যেখানে কোয়েরিটি হলো কথোপকথনটির প্রদর্শিত নামের একটি কেস-ইনসেনসিটিভ সাবস্ট্রিং।

participants এবং query উভয়ই প্রদান করা হলে, এই টুলটি অংশগ্রহণকারীদের দ্বারা কথোপকথন খুঁজে বের করে এবং তারপর প্রদর্শিত নাম দ্বারা সেগুলোকে ফিল্টার করে।

যদি participants বা query কোনোটিই প্রদান করা না হয়, তাহলে এই টুলটি আহ্বানকারী ব্যবহারকারীর সদস্যপদ থাকা সমস্ত কথোপকথনের তালিকা দেখায়।

এই টুলটি শুধুমাত্র সেইসব কথোপকথন তালিকাভুক্ত করে, যেগুলোর সদস্য হলেন কলকারী ব্যবহারকারী।

কথোপকথন আইডি (ফর্ম্যাট: স্পেস/{স্পেস}), প্রদর্শিত নাম এবং কথোপকথনের ধরণ সম্বলিত কথোপকথন অবজেক্টের একটি তালিকা ফেরত দেয়।

কথোপকথন অবজেক্টের একটি তালিকা ফেরত দেয়, যেগুলোতে কথোপকথন আইডি (ফর্ম্যাট: spaces/{space} ), প্রদর্শিত নাম এবং কথোপকথনের ধরন থাকে।

গুরুত্বপূর্ণ: conversations তালিকা খালি থাকার অর্থ এই নয় যে সামগ্রিকভাবে আর কোনো ফলাফল নেই। যদি next_page_token উপস্থিত থাকে, তাহলে আরও পৃষ্ঠা আনা যেতে পারে। যদি আপনি একটি খালি তালিকা পান কিন্তু next_page_token থাকে, তাহলে ব্যবহারকারীকে জিজ্ঞাসা করুন যে আপনি অনুসন্ধান চালিয়ে যাবেন কিনা।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে curl ব্যবহার করে search_conversations MCP টুলটিকে কল করতে হয়।

কার্ল অনুরোধ
curl --location 'https://chatmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "search_conversations",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

ইনপুট স্কিমা

অনুসন্ধান কথোপকথন অনুরোধ

JSON উপস্থাপনা
{
  "spaceNameQuery": string,
  "pageSize": integer,
  "pageToken": string,
  "participants": [
    string
  ]
}
ক্ষেত্র
spaceNameQuery

string

ঐচ্ছিক। প্রদর্শিত নামগুলোর মধ্যে যে লেখাটি খুঁজতে হবে (কেস-ইনসেনসিটিভ সাবস্ট্রিং ম্যাচ)।

pageSize

integer

ঐচ্ছিক। ফেরত দেওয়ার জন্য স্পেসের সর্বোচ্চ সংখ্যা। পরিষেবাটি এই মানের চেয়ে কমও ফেরত দিতে পারে। যদি নির্দিষ্ট না করা হয়, তবে সর্বাধিক ২০টি স্পেস ফেরত দেওয়া হবে। সর্বোচ্চ মান হলো ১০০০; ১০০০-এর উপরের মানগুলোকে ১০০০-এ রূপান্তরিত করা হবে।

pageToken

string

ঐচ্ছিক। পূর্ববর্তী search_conversations কল থেকে প্রাপ্ত একটি পেজ টোকেন। পরবর্তী পেজটি পুনরুদ্ধার করতে এটি প্রদান করুন।

participants[]

string

ঐচ্ছিক। কলারকে বাদ দিয়ে কথোপকথনগুলো ফিল্টার করার জন্য অংশগ্রহণকারীদের ইমেল ঠিকানার তালিকা।

আউটপুট স্কিমা

মিলে যাওয়া কথোপকথনগুলোর তালিকা সম্বলিত প্রতিক্রিয়া।

অনুসন্ধান কথোপকথন প্রতিক্রিয়া

JSON উপস্থাপনা
{
  "conversations": [
    {
      object (Conversation)
    }
  ],
  "nextPageToken": string
}
ক্ষেত্র
conversations[]

object ( Conversation )

অনুসন্ধানের শর্তের সাথে মেলে এমন কথোপকথনের তালিকা। প্রতিটি কথোপকথনে conversation_id (ফর্ম্যাট: স্পেস/{space}), display_name, conversation_type, এবং last_active_timestamp অন্তর্ভুক্ত থাকে।

nextPageToken

string

পরবর্তী পৃষ্ঠা আনার জন্য page_token হিসেবে পাঠানো যায় এমন একটি টোকেন। এই ক্ষেত্রটি বাদ দিলে, পরবর্তী কোনো পৃষ্ঠা থাকবে না।

অনুরোধটি participants দ্বারা ফিল্টার করা হলেই কেবল এটি পূরণ করা হয়।

কথোপকথন

JSON উপস্থাপনা
{
  "conversationId": string,
  "displayName": string,
  "conversationType": enum (ConversationType),
  "lastActiveTimestamp": string
}
ক্ষেত্র
conversationId

string

কথোপকথনের আইডি (যেমন, "spaces/AAAAAAAAA")।

displayName

string

কথোপকথনটির প্রদর্শিত নাম।

conversationType

enum ( ConversationType )

কথোপকথনের ধরণ (সরাসরি বার্তা, গ্রুপ চ্যাট, অথবা নামযুক্ত স্থান)।

lastActiveTimestamp

string ( Timestamp format)

ISO 8601 ফরম্যাটে কথোপকথনটির সর্বশেষ সক্রিয় সময়।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

টাইমস্ট্যাম্প

JSON উপস্থাপনা
{
  "seconds": string,
  "nanos": integer
}
ক্ষেত্র
seconds

string ( int64 format)

এটি ইউনিক্স ইপক 1970-01-01T00:00:00Z থেকে UTC সময়ের সেকেন্ড নির্দেশ করে। এর মান অবশ্যই -62135596800 থেকে 253402300799 (উভয় মানসহ) এর মধ্যে হতে হবে (যা 0001-01-01T00:00:00Z থেকে 9999-12-31T23:59:59Z পর্যন্ত সময়কালের সমতুল্য)।

nanos

integer

ন্যানোসেকেন্ড রেজোলিউশনে সেকেন্ডের অঋণাত্মক ভগ্নাংশ। এই ক্ষেত্রটি হলো সময়কালের ন্যানোসেকেন্ড অংশ, সেকেন্ডের বিকল্প নয়। ভগ্নাংশসহ ঋণাত্মক সেকেন্ডের মানগুলোর ক্ষেত্রেও ন্যানোর মান অবশ্যই অঋণাত্মক হতে হবে, যা সময়ের সাথে সাথে গণনা করে। এর মান অবশ্যই ০ থেকে ৯৯৯,৯৯৯,৯৯৯-এর মধ্যে হতে হবে (উভয় সংখ্যাসহ)।

কথোপকথনের ধরণ

কথোপকথনের ধরণ নির্ধারণ করে।

এনাম
CONVERSATION_TYPE_UNSPECIFIED অনির্দিষ্ট।
NAMED_SPACE একটি নামযুক্ত স্থান।
GROUP_CHAT তিন বা ততোধিক ব্যক্তির মধ্যে একটি গ্রুপ চ্যাট।
DIRECT_MESSAGE দুইজন মানুষের মধ্যে সরাসরি বার্তা, অথবা একজন মানুষ ও একটি চ্যাট অ্যাপের মধ্যে বার্তা।

টুল টীকা

কোনো নির্দিষ্ট টুলের প্রাথমিক ঝুঁকি বর্ণনা করার জন্য টুল অ্যানোটেশনগুলো এমসিপি ক্লায়েন্টদের কাছে পাঠানো হয়। বেশিরভাগ ক্লায়েন্ট এই ইঙ্গিতগুলোকে অবিশ্বস্ত হিসেবে গণ্য করে, কিন্তু কখন একজন ব্যবহারকারীকে নিশ্চিতকরণের জন্য প্রম্পট পাঠানো হবে, সেই সিদ্ধান্ত নিতে এগুলো ব্যবহার করা যেতে পারে।

টাইটেল স্ট্রিং-এর পাশাপাশি, নিম্নলিখিত বুলিয়ান হিন্টগুলো নিম্নরূপভাবে সংজ্ঞায়িত করা হয়েছে:

  • readOnlyHint : যদি true হয়, টুলটি তার পরিবেশ পরিবর্তন করে না। ডিফল্ট: false।
  • destructiveHint : যদি true হয়, তাহলে টুলটি ধ্বংসাত্মক কাজ করতে পারবে। যদি false হয়, তাহলে টুলটি শুধুমাত্র সংযোজনমূলক কাজ করতে পারবে। ডিফল্ট: true।
  • idempotentHint : যদি true হয়, তাহলে একই আর্গুমেন্ট দিয়ে টুলটিকে বারবার কল করলেও এর এনভায়রনমেন্টের উপর কোনো অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false।
  • openWorldHint : যদি true হয়, তাহলে টুলটি বাহ্যিক সত্তার 'ওপেন ওয়ার্ল্ড'-এর সাথে ইন্টারঅ্যাক্ট করতে পারবে। যদি false হয়, তাহলে টুলটি শুধুমাত্র অভ্যন্তরীণ সত্তার সাথে ইন্টারঅ্যাক্ট করতে পারবে। উদাহরণস্বরূপ, একটি ওয়েব সার্চ টুল ওপেন ওয়ার্ল্ড হবে, কিন্তু একটি মেমরি টুল ওপেন ওয়ার্ল্ড হবে না।

ধ্বংসাত্মক ইঙ্গিত: ❌ | স্বকীয় ইঙ্গিত: ✅ | শুধুমাত্র পঠনযোগ্য ইঙ্গিত: ✅ | উন্মুক্ত বিশ্ব ইঙ্গিত: ❌

অনুমোদনের পরিধি

নিম্নলিখিত OAuth স্কোপগুলির মধ্যে একটি প্রয়োজন:

  • https://www.googleapis.com/auth/chat.memberships.readonly
  • https://www.googleapis.com/auth/chat.spaces
  • https://www.googleapis.com/auth/chat.spaces.readonly