MCP Tools Reference: chatmcp.googleapis.com

টুল: search_messages

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

অন্যান্য সার্চ বা রিড টুলের পরিবর্তে search_messages ব্যবহার করার সিদ্ধান্ত নেওয়ার সময় এই নির্দেশিকা অনুসরণ করুন:

  • একাধিক স্পেস জুড়ে অথবা কোনো পরিচিত কনভারসেশন আইডি ছাড়াই নির্দিষ্ট মেসেজের বিষয়বস্তু, কীওয়ার্ড, মেনশন, লিঙ্ক, প্রেরক বা অপঠিত মেসেজ খোঁজার জন্য search_messages ব্যবহার করুন।
  • যখন আপনি নির্দিষ্ট স্পেস বা থ্রেড আইডি জানেন এবং বার্তাগুলি কালানুক্রমিকভাবে ক্রমানুসারে পড়তে চান, তখন list_messages ব্যবহার করুন।
  • স্পেস ডিসপ্লে নেম বা অংশগ্রহণকারীদের দ্বারা কনভারসেশন আইডি-র মতো স্পেস মেটাডেটা খুঁজে পেতে search_conversations ব্যবহার করুন (এটি শুধুমাত্র মেটাডেটা অনুসন্ধান করে, বার্তার বিষয়বস্তু নয়)।

যদি নির্দিষ্ট ফিল্টার ছাড়া searchParameters প্রদান করা হয়, তাহলে ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য কথোপকথনগুলো থেকে সাম্প্রতিক বার্তাগুলো ফেরত দেওয়া হয়।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে curl ব্যবহার করে search_messages 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_messages",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

ইনপুট স্কিমা

অনুসন্ধান বার্তা অনুরোধ

JSON উপস্থাপনা
{
  "searchParameters": {
    object (SearchParameters)
  },
  "pageSize": integer,
  "pageToken": string
}
ক্ষেত্র
searchParameters

object ( SearchParameters )

আবশ্যক। অনুসন্ধানের জন্য ব্যবহৃত প্যারামিটারসমূহ।

pageSize

integer

ঐচ্ছিক। ফেরত দেওয়া ফলাফলের সর্বোচ্চ সংখ্যা (সর্বোচ্চ ১০০টি পর্যন্ত)। নির্দিষ্ট না করা হলে, সর্বাধিক ২৫টি ফেরত দেওয়া হবে।

pageToken

string

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

অনুসন্ধান পরামিতি

JSON উপস্থাপনা
{
  "keywords": [
    string
  ],
  "conversationId": string,
  "sender": string,
  "isUnread": boolean,
  "hasLink": boolean,
  "startTime": string,
  "endTime": string,
  "mentionsMe": boolean,
  "conversationIncludesUser": string,
  "spaceDisplayNames": [
    string
  ]
}
ক্ষেত্র
keywords[]

string

ঐচ্ছিক। ফলাফল ফিল্টার করার জন্য ব্যবহৃত কীওয়ার্ডের একটি সেট।

conversationId

string

ঐচ্ছিক। এটি search_conversations টুল থেকে প্রাপ্ত একটি নির্দিষ্ট কথোপকথন শনাক্তকারীর মধ্যে অনুসন্ধানকে সীমাবদ্ধ করে। ফরম্যাট: spaces/{ID}

sender

string

ঐচ্ছিক। কোনো নির্দিষ্ট ব্যবহারকারীর বার্তা ফিল্টার করুন। প্রেরকের ইমেল অথবা রিসোর্স নেম ব্যবহার করা যেতে পারে। ব্যবহারকারীর রিসোর্স নেম users/{ID} ফরম্যাটে থাকে, যেখানে {ID} একজন ব্যক্তির আইডি বা তার ইমেল অ্যাড্রেস হতে পারে।

isUnread

boolean

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

hasLink

boolean

ঐচ্ছিক। যেসব মেসেজে অন্তত একটি URL আছে, সেগুলোর জন্য ফিল্টার করুন।

startTime

string

ঐচ্ছিক। এই সময়ের পরে তৈরি হওয়া বার্তাগুলির জন্য ফিল্টার করুন। ফরম্যাট: আইএসও ৮৬০১ টাইমস্ট্যাম্প।

endTime

string

ঐচ্ছিক। এই সময়ের আগে তৈরি হওয়া বার্তাগুলির জন্য ফিল্টার করুন। ফরম্যাট: আইএসও ৮৬০১ টাইমস্ট্যাম্প।

mentionsMe

boolean

ঐচ্ছিক। সেইসব মেসেজ ফিল্টার করুন যেগুলিতে কলকারী ব্যবহারকারীর নাম স্পষ্টভাবে উল্লেখ করা আছে।

conversationIncludesUser

string

ঐচ্ছিক। ডিএম এবং গ্রুপ চ্যাটে থাকা সেইসব মেসেজ ফিল্টার করুন, যেগুলিতে নির্দিষ্ট ব্যবহারকারীর ইমেল বা আইডি অন্তর্ভুক্ত রয়েছে।

spaceDisplayNames[]

string

ঐচ্ছিক। স্পেস নামের তালিকা দ্বারা ফিল্টার করুন; স্পেস ডিসপ্লে নামগুলো আংশিকভাবে মেলানো হয়। দ্রষ্টব্য: শুধুমাত্র শীর্ষ ৫টি মিল ফেরত দেওয়া হয়।

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

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

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

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

object ( ChatMessage )

অনুসন্ধানের শর্তের সাথে মেলে এমন মেসেজ অবজেক্টগুলোর তালিকা।

nextPageToken

string

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

চ্যাট বার্তা

JSON উপস্থাপনা
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ]
}
ক্ষেত্র
messageId

string

বার্তার রিসোর্স নাম। ফরম্যাট: স্পেস/{স্পেস}/বার্তা/{বার্তা}

threadId

string

এই বার্তাটি যে থ্রেডের অন্তর্গত। বার্তাটি আনথ্রেডেড হলে এটি খালি থাকবে। ফরম্যাট: স্পেস/{স্পেস}/থ্রেড/{থ্রেড}

plaintextBody

string

মার্কডাউন ফরম্যাটিং ব্যবহার করে বার্তার মূল অংশ।

sender

object ( User )

বার্তার প্রেরক।

createTime

string

শুধুমাত্র আউটপুট। বার্তাটি তৈরি হওয়ার সময়কার টাইমস্ট্যাম্প।

threadedReply

boolean

বার্তাটি একটি থ্রেড রিপ্লাই কিনা।

attachments[]

object ( ChatAttachmentMetadata )

বার্তার সাথে সংযুক্ত ফাইলগুলো রয়েছে।

reactionSummaries[]

object ( ReactionSummary )

বার্তাটিতে ইমোজি প্রতিক্রিয়াগুলোর সারাংশ অন্তর্ভুক্ত করা হয়েছে।

ব্যবহারকারী

JSON উপস্থাপনা
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
ক্ষেত্র
userId

string

চ্যাট ব্যবহারকারীর রিসোর্স নাম। ফরম্যাট: users/{user}।

displayName

string

একজন চ্যাট ব্যবহারকারীর প্রদর্শিত নাম।

email

string

ব্যবহারকারীর ইমেল ঠিকানা। এই ক্ষেত্রটি শুধুমাত্র তখনই পূরণ করা হয় যখন ব্যবহারকারীর ধরন মানুষ (HUMAN) হয়।

userType

enum ( UserType )

ব্যবহারকারীর ধরণ।

চ্যাট সংযুক্তি মেটাডেটা

JSON উপস্থাপনা
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source)
}
ক্ষেত্র
attachmentId

string

সংযুক্তিটির রিসোর্স নাম। ফরম্যাট: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

সংযুক্তিটির নাম।

mimeType

string

বিষয়বস্তুর ধরণ (MIME টাইপ)।

source

enum ( Source )

সংযুক্তিটির উৎস।

প্রতিক্রিয়া সারাংশ

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

string

ইমোজি ইউনিকোড স্ট্রিং অথবা নিজস্ব ইমোজির নাম।

count

integer

সংশ্লিষ্ট ইমোজি ব্যবহার করে করা মোট প্রতিক্রিয়ার সংখ্যা।

ব্যবহারকারীর ধরণ

গুগল চ্যাট ব্যবহারকারীর প্রকারভেদ।

এনাম
USER_TYPE_UNSPECIFIED অনির্দিষ্ট।
HUMAN মানব ব্যবহারকারী।
APP অ্যাপ ব্যবহারকারী।

উৎস

সংযুক্তিটির উৎস।

এনাম
SOURCE_UNSPECIFIED সংরক্ষিত।
DRIVE_FILE ফাইলটি একটি গুগল ড্রাইভ ফাইল।
UPLOADED_CONTENT ফাইলটি চ্যাটে আপলোড করা হয়েছে।

টুল টীকা

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

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

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

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

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

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

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