টুল: search_messages
কীওয়ার্ড ও ফিল্টার ব্যবহার করে Google Chat মেসেজ সার্চ করে এবং সেগুলি Markdown ফর্ম্যাটে দেখায়। ব্যবহারকারীর অ্যাক্সেস আছে এমন সব স্পেস জুড়ে কাজ করে অথবা কোনও নির্দিষ্ট কথোপকথনের জন্য স্কোপ করা যেতে পারে।
search_messages বনাম অন্যান্য সার্চ বা রিড টুল ব্যবহার করার সিদ্ধান্ত নেওয়ার সময় এই নির্দেশিকা অনুসরণ করুন:
- সম্ভাব্য একাধিক স্পেস জুড়ে বা কোনও পরিচিত কথোপকথন আইডি ছাড়াই নির্দিষ্ট মেসেজ কন্টেন্ট, কীওয়ার্ড, উল্লেখ, লিঙ্ক, প্রেরক বা না পড়া মেসেজ খুঁজতে
search_messagesব্যবহার করুন। - আপনি নির্দিষ্ট স্পেস বা থ্রেড আইডি জানলে এবং কালানুক্রমিকভাবে মেসেজ পড়তে চাইলে
list_messagesব্যবহার করুন। - স্পেসের ডিসপ্লে নাম বা অংশগ্রহণকারীদের নাম দিয়ে কথোপকথন আইডির মতো স্পেস মেটাডেটা খুঁজতে
search_conversationsব্যবহার করুন (এটি শুধু মেটাডেটা সার্চ করে, মেসেজের কন্টেন্ট নয়)।
নির্দিষ্ট ফিল্টার ছাড়া searchParameters প্রদান করা হলে, ব্যবহারকারীর অ্যাক্সেস আছে এমন কথোপকথন জুড়ে সাম্প্রতিক মেসেজগুলি ফেরত দেওয়া হয়।
search_messages MCP টুল কল করার জন্য কীভাবে curl ব্যবহার করতে হয় তা নিম্নলিখিত কোড স্যাম্পেল থেকে জানতে পারবেন।
| Curl অনুরোধ |
|---|
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 MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
ইনপুট স্কিমা
SearchMessagesRequest
| JSON উপস্থাপনা |
|---|
{
"searchParameters": {
object ( |
| ফিল্ড | |
|---|---|
searchParameters |
প্রয়োজনীয়। সার্চের জন্য ব্যবহার করার সার্চ প্যারামিটার। |
pageSize |
ঐচ্ছিক। ফলাফলের সর্বাধিক সংখ্যা (সর্বাধিক ১০০)। অনির্দিষ্ট থাকলে, সর্বাধিক ২৫টি ফেরত দেওয়া হয়। |
pageToken |
ঐচ্ছিক। আগের |
SearchParameters
| JSON উপস্থাপনা |
|---|
{
"keywords": [
string
],
"conversationId": string,
"sender": string,
"isUnread": boolean,
"hasLink": boolean,
"startTime": string,
"endTime": string,
"mentionsMe": boolean,
"conversationIncludesUser": string,
"spaceDisplayNames": [
string
],
"conversationTypes": [
enum ( |
| ফিল্ড | |
|---|---|
keywords[] |
ঐচ্ছিক। ফলাফল ফিল্টার করার জন্য ব্যবহৃত কীওয়ার্ডের সেট। |
conversationId |
ঐচ্ছিক। সার্চের পরিধিকে নির্দিষ্ট কথোপকথন শনাক্তকারীতে সীমাবদ্ধ করে, যেমন search_conversations টুল থেকে রিটার্ন করা হয়। ফর্ম্যাট: |
sender |
ঐচ্ছিক। নির্দিষ্ট ব্যবহারকারীর থেকে পাওয়া মেসেজের জন্য ফিল্টার। প্রেরকের ইমেল বা রিসোর্সের নাম ব্যবহার করা যেতে পারে। ব্যবহারকারীর রিসোর্স নাম |
isUnread |
ঐচ্ছিক। কল করা ব্যবহারকারী পড়েননি এমন মেসেজের জন্য ফিল্টার। |
hasLink |
ঐচ্ছিক। অন্তত একটি URL আছে এমন মেসেজের জন্য ফিল্টার। |
startTime |
ঐচ্ছিক। এই সময়ের পরে তৈরি করা মেসেজের জন্য ফিল্টার। ফর্ম্যাট: ISO 8601 টাইমস্ট্যাম্প। |
endTime |
ঐচ্ছিক। এই সময়ের আগে তৈরি করা মেসেজের জন্য ফিল্টার। ফর্ম্যাট: ISO 8601 টাইমস্ট্যাম্প। |
mentionsMe |
ঐচ্ছিক। কল করা ব্যবহারকারীর নাম স্পষ্টভাবে উল্লেখ করা আছে এমন মেসেজের জন্য ফিল্টার। |
conversationIncludesUser |
ঐচ্ছিক। DM এবং গ্রুপ চ্যাটে নির্দিষ্ট ব্যবহারকারীর ইমেল বা আইডি সহ মেসেজ ফিল্টার করুন। |
spaceDisplayNames[] |
ঐচ্ছিক। স্পেসের নামের তালিকা অনুযায়ী ফিল্টার করুন; স্পেসের ডিসপ্লে নাম আংশিকভাবে মিলেছে। মনে রাখবেন: শুধুমাত্র সেরা ৫টি ম্যাচ দেখানো হয়। |
conversationTypes[] |
ঐচ্ছিক। কথোপকথনের ধরন অনুযায়ী ফিল্টার করুন। |
hasAttachment |
ঐচ্ছিক। অন্তত একটি অ্যাটাচমেন্ট আছে এমন মেসেজের জন্য ফিল্টার। মনে রাখবেন: এই ফিল্ডটি ডেভেলপ করা হচ্ছে এবং এখনও সব পরিবেশে কাজ নাও করতে পারে। |
ConversationType
কথোপকথনের ধরন নির্ধারণ করে।
| Enums | |
|---|---|
CONVERSATION_TYPE_UNSPECIFIED |
অনির্দিষ্ট। |
NAMED_SPACE |
নাম দেওয়া স্পেস। |
GROUP_CHAT |
৩ বা তার বেশি সংখ্যক ব্যক্তির মধ্যে গ্রুপ চ্যাট। |
DIRECT_MESSAGE |
দুজন ব্যক্তির মধ্যে অথবা একজন ব্যক্তি ও Chat অ্যাপের মধ্যে সরাসরি মেসেজ। |
আউটপুট স্কিমা
Google Chat মেসেজ সার্চ করার জন্য উত্তর। next_page_token পপুলেট করা থাকলে, ফলাফলের পরবর্তী পৃষ্ঠা ফিরিয়ে আনতে, সেই টোকেন সহ SearchMessages কল আবার কল করা যেতে পারে।
SearchMessagesResponse
| JSON উপস্থাপনা |
|---|
{
"messages": [
{
object ( |
| ফিল্ড | |
|---|---|
messages[] |
সার্চের মাপকাঠির সাথে ম্যাচ করা মেসেজ অবজেক্টের তালিকা। |
nextPageToken |
পরবর্তী পৃষ্ঠা ফিরিয়ে আনতে |
ChatMessage
| JSON উপস্থাপনা |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| ফিল্ড | |
|---|---|
messageId |
মেসেজের রিসোর্স নাম। ফর্ম্যাট: spaces/{space}/messages/{message} |
threadId |
এই মেসেজটি যে থ্রেডের অন্তর্গত। মেসেজটি থ্রেড করা না থাকলে এটি খালি থাকবে। ফর্ম্যাট: spaces/{space}/threads/{thread} |
plaintextBody |
মার্কডাউন ফর্ম্যাটিং ব্যবহার করে মেসেজের টেক্সট বডি। |
sender |
মেসেজের প্রেরক। |
createTime |
শুধু আউটপুট। মেসেজটি কখন তৈরি করা হয়েছিল সেই টাইমস্ট্যাম্প। ফর্ম্যাট: ISO 8601 টাইমস্ট্যাম্প। |
threadedReply |
মেসেজটি থ্রেডের উত্তর কিনা। |
attachments[] |
মেসেজে অ্যাটাচমেন্ট যোগ করা হয়েছে। |
reactionSummaries[] |
মেসেজে ইমোজি প্রতিক্রিয়ার সারসংক্ষেপ অন্তর্ভুক্ত করা হয়েছে। |
quotedMessageMetadata |
শুধু আউটপুট। এই মেসেজে উদ্ধৃত বা ফরওয়ার্ড করা আসল মেসেজ সম্পর্কে তথ্য। মনে রাখবেন: এই ফিল্ডটি এখনও ডেভেলপ করা হচ্ছে এবং সব পরিবেশে এখনও উপলভ্য নাও হতে পারে। |
ব্যবহারকারী
| JSON উপস্থাপনা |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| ফিল্ড | |
|---|---|
userId |
Chat ব্যবহারকারীর রিসোর্স নাম। ফর্ম্যাট: users/{user}। |
displayName |
Chat ব্যবহারকারীর ডিসপ্লে নাম। |
email |
ব্যবহারকারীর ইমেল আইডি। ব্যবহারকারীর ধরন HUMAN হলে তবেই এই ফিল্ডে তথ্য দেখানো হয়। |
userType |
ব্যবহারকারীর ধরন। |
ChatAttachmentMetadata
| JSON উপস্থাপনা |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| ফিল্ড | |
|---|---|
attachmentId |
অ্যাটাচমেন্টের রিসোর্স নাম। ফর্ম্যাট: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
অ্যাটাচমেন্টের নাম। |
mimeType |
কন্টেন্টের ধরন (MIME টাইপ)। |
source |
অ্যাটাচমেন্টের সোর্স। |
driveFileId |
শুধু আউটপুট। Google Drive ফাইলের আইডি। সোর্স DRIVE_FILE হলে তবেই পপুলেট করা হয়। Google Drive MCP-এর সাথে ব্যবহার করুন। |
ReactionSummary
| JSON উপস্থাপনা |
|---|
{ "emoji": string, "count": integer } |
| ফিল্ড | |
|---|---|
emoji |
ইমোজি ইউনিকোড স্ট্রিং বা কাস্টম ইমোজির নাম। |
count |
সংশ্লিষ্ট ইমোজি ব্যবহার করে মোট কতগুলি প্রতিক্রিয়া জানানো হয়েছে। |
QuotedMessageMetadata
| JSON উপস্থাপনা |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| ফিল্ড | |
|---|---|
messageId |
শুধু আউটপুট। কোট বা ফরওয়ার্ড করা আসল মেসেজের রিসোর্স নাম। ফর্ম্যাট: spaces/{space}/messages/{message} |
lastUpdateTime |
শুধু আউটপুট। কোট বা ফরওয়ার্ড করার আগে আসল মেসেজ কখন তৈরি বা শেষবার আপডেট করা হয়েছে সেই টাইমস্ট্যাম্প। ফর্ম্যাট: ISO 8601 টাইমস্ট্যাম্প। |
quoteType |
শুধু আউটপুট। কোটের ধরন। |
plaintextBody |
শুধু আউটপুট। কোট বা ফরওয়ার্ড করার সময় আসল মেসেজের টেক্সট বডির স্ন্যাপশট। |
sender |
শুধু আউটপুট। আসল মেসেজের লেখকের ডিসপ্লে নাম। |
attachments[] |
শুধু আউটপুট। আসল মেসেজের অংশ ছিল এমন অ্যাটাচমেন্ট। শুধুমাত্র |
forwardedMetadata |
শুধু আউটপুট। ফরওয়ার্ড করা মেসেজের সোর্স কথোপকথন সম্পর্কিত মেটাডেটা। শুধুমাত্র |
ForwardedMetadata
| JSON উপস্থাপনা |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| ফিল্ড | |
|---|---|
conversationId |
শুধু আউটপুট। সোর্স কথোপকথনের রিসোর্সের নাম। ফর্ম্যাট: spaces/{space} |
conversationDisplayName |
শুধু আউটপুট। মেসেজ ফরওয়ার্ড করার সময় সোর্স কথোপকথনের ডিসপ্লে নাম। নামযুক্ত স্পেসের ক্ষেত্রে, এটি হল স্পেসের নাম। ১:১ সরাসরি মেসেজের ক্ষেত্রে, এটি হল অন্য অংশগ্রহণকারীর নাম। নামহীন গ্রুপ চ্যাটের ক্ষেত্রে, এটি মেম্বারদের নামের উপর ভিত্তি করে তৈরি করা নাম। |
UserType
Google Chat ব্যবহারকারীর ধরন।
| Enums | |
|---|---|
USER_TYPE_UNSPECIFIED |
অনির্দিষ্ট। |
HUMAN |
হিউম্যান ইউজার। |
APP |
অ্যাপ ব্যবহারকারী। |
সোর্স
অ্যাটাচমেন্টের সোর্স।
| Enums | |
|---|---|
SOURCE_UNSPECIFIED |
রিজার্ভ করা হয়েছে। |
DRIVE_FILE |
ফাইলটি Google Drive-এর ফাইল। |
UPLOADED_CONTENT |
ফাইলটি Chat-এ আপলোড করা হয়েছে। |
QuoteType
মেসেজটি কোট করা উত্তর নাকি ফরওয়ার্ড করা মেসেজ তা কোটের ধরন থেকে বোঝা যায়।
| Enums | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
রিজার্ভ করা হয়েছে। অনির্ধারিত কোটের ধরন। |
REPLY |
মেসেজটি একই থ্রেডে থাকা মূল মেসেজের কোট করা উত্তর। |
FORWARD |
মেসেজটি অন্য কথোপকথনের আসল মেসেজ থেকে অথবা একই কথোপকথনের অন্য থ্রেড থেকে ফরওয়ার্ড করা হয়েছে। |
টুল অ্যানোটেশন
প্রদত্ত টুলের প্রাথমিক ঝুঁকি বর্ণনা করার জন্য MCP ক্লায়েন্টদের টুল অ্যানোটেশন পাঠানো হয়। বেশিরভাগ ক্লায়েন্ট এইসব ইঙ্গিতকে বিশ্বাসযোগ্য বলে মনে করে না, তবে ব্যবহারকারীকে কখন কনফার্মেশন প্রম্পট পাঠানো হবে তা নির্ধারণ করতে এগুলি ব্যবহার করা যেতে পারে।
টাইটেল স্ট্রিংয়ের সাথে, নিম্নলিখিত বুলিয়ান ইঙ্গিতগুলি এইভাবে সংজ্ঞায়িত করা হয়েছে:
readOnlyHint: সত্য হলে, টুলটি তার পরিবেশ পরিবর্তন করে না। ডিফল্ট: false.destructiveHint: সত্য হলে, টুলটি ধ্বংসাত্মক অ্যাকশন করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র যোগ করার অ্যাকশন করতে পারে। ডিফল্ট: true.idempotentHint: সত্য হলে, একই আর্গুমেন্ট সহ টুলটিকে বারবার কল করলে এর এনভায়রনমেন্টে কোনও অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false.openWorldHint: সত্য হলে, টুলটি এক্সটার্নাল এন্টিটির 'মুক্ত পৃথিবী'-র সাথে ইন্টার্যাক্ট করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র অভ্যন্তরীণ এন্টিটির সাথে ইন্টার্যাক্ট করতে পারে। যেমন, ওয়েব সার্চ টুল ওপেন ওয়ার্ল্ড হলেও মেমরি টুল ওপেন ওয়ার্ল্ড নয়।
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌
অনুমোদনের স্কোপ
নিম্নলিখিত OAuth স্কোপগুলির মধ্যে একটি প্রয়োজন:
https://www.googleapis.com/auth/chat.messages.readonlyhttps://www.googleapis.com/auth/chat.spaces.readonlyhttps://www.googleapis.com/auth/chat.memberships.readonlyhttps://www.googleapis.com/auth/chat.users.readstate.readonly