টুল: send_message
মার্কডাউন ফর্ম্যাটিং সহ কথোপকথনে Google Chat মেসেজ পাঠায়।
এই টুল ইনপুট হিসেবে কথোপকথন আইডি, ঐচ্ছিক থ্রেড আইডি এবং মেসেজ টেক্সট ব্যবহার করে।
search_conversations টুল ব্যবহার করে কনভারসেশন আইডি খুঁজে পাওয়া যাবে।
এটি তৈরি করা মেসেজ ফিরিয়ে দেয়।
send_message 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": "send_message", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
ইনপুট স্কিমা
SendMessageRequest
| JSON উপস্থাপনা |
|---|
{ "conversationId": string, "threadId": string, "messageText": string, "cards": [ { object } ], "inlineCitations": [ { object ( |
| ফিল্ড | |
|---|---|
conversationId |
প্রয়োজনীয়। মেসেজ পাঠানোর জন্য কথোপকথনের আইডি (যেমন, 'spaces/AAAA...')। |
threadId |
ঐচ্ছিক। মেসেজ পাঠানোর জন্য থ্রেডের আইডি (যেমন, 'spaces/AAAA.../threads/BBBB...')। সেট করা না থাকলে, মেসেজটি নতুন থ্রেডে পাঠানো হবে। |
messageText |
প্রয়োজনীয়। মেসেজের মূল কন্টেন্ট। স্ট্যান্ডার্ড মার্কডাউন ব্যবহার করে ফর্ম্যাটিং যোগ করা যেতে পারে (মনে রাখবেন যে টেবিল কাজ করে না)। নিম্নলিখিত ফর্ম্যাটিং কাজ করে:
|
cards[] |
ঐচ্ছিক। মেসেজের সাথে কার্ড অ্যাটাচ করা হয়েছে। কার্ড পিছু সর্বাধিক সাইজ হল ৩২ কেবি। প্রতিটি কার্ড Google Chat কার্ড ফর্ম্যাট (Google Workspace UIKit Card / Cards v2) অনুসরণ করে JSON স্ট্রাক্ট হিসেবে দেখানো হয়। মেসেজে কার্ড অ্যাটাচ করতে, Chat অ্যাপকে অবশ্যই স্পেসের মেম্বার হতে হবে। কার্ডে ছবি ব্যবহার করা যাবে না। কার্ড শনাক্তকরণ:
|
inlineCitations[] |
ঐচ্ছিক। |
footerCitedSources[] |
ঐচ্ছিক। মেসেজের নিচে (ফুটার) রেফারেন্স কার্ড হিসেবে টপ-লেভেল উদ্ধৃত সোর্স দেখানো হয়। একটি মেসেজে সব ইনলাইন উদ্ধৃতি এবং ফুটার সোর্স মিলিয়ে সর্বাধিক ৫০টি উদ্ধৃত সোর্স ব্যবহার করা যাবে। |
স্ট্রাক্ট
| JSON উপস্থাপনা |
|---|
{ "fields": { string: value, ... } } |
| ফিল্ড | |
|---|---|
fields |
ডায়নামিকালি টাইপ করা ভ্যালুর ক্রমহীন ম্যাপ।
|
FieldsEntry
| JSON উপস্থাপনা |
|---|
{ "key": string, "value": value } |
| ফিল্ড | |
|---|---|
key |
|
value |
|
ভ্যালু
| JSON উপস্থাপনা |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| ফিল্ড | |
|---|---|
ইউনিয়ন ফিল্ড kind। ভ্যালুর ধরন। kind শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: |
|
nullValue |
JSON |
numberValue |
JSON নম্বর দেখায়। |
stringValue |
JSON স্ট্রিং দেখায়। |
boolValue |
JSON বুলিয়ান (JSON-এ |
structValue |
JSON অবজেক্টকে দেখায়। |
listValue |
JSON অ্যারে দেখায়। |
ListValue
| JSON উপস্থাপনা |
|---|
{ "values": [ value ] } |
| ফিল্ড | |
|---|---|
values[] |
ডায়নামিকালি টাইপ করা ভ্যালুর রিপিট করা ফিল্ড। |
সাইটেশন
| JSON উপস্থাপনা |
|---|
{
"id": string,
"citedSources": [
{
object ( |
| ফিল্ড | |
|---|---|
id |
প্রয়োজনীয়। |
citedSources[] |
প্রয়োজনীয়। এই উদ্ধৃতি হোভারকার্ডে এক বা একাধিক সোর্স অ্যাটাচ করা আছে। একটি মেসেজে সব ইনলাইন উদ্ধৃতি এবং ফুটার সোর্স মিলিয়ে সর্বাধিক ৫০টি উদ্ধৃত সোর্স ব্যবহার করা যাবে। |
CitedSource
| JSON উপস্থাপনা |
|---|
{ "title": string, "url": string, "snippet": string, "imageUrl": string, "footer": string } |
| ফিল্ড | |
|---|---|
title |
প্রয়োজনীয়। সোর্সের প্লেইনটেক্সট শীর্ষক (যেমন, "Google Workspace ডেভেলপার প্রিভিউ প্রোগ্রাম")। শিরোনামে মার্কডাউন ফর্ম্যাটিং কাজ করে না। |
url |
প্রয়োজনীয়। উল্লেখ করা রিসোর্সের URL (অবশ্যই সঠিক http:// বা https:// URL হতে হবে, যেমন, "https://developers.google.com/workspace/preview")। |
snippet |
ঐচ্ছিক। সোর্স থেকে সরাসরি নেওয়া ছোট উদ্ধৃতি বা স্নিপেট। হোভারকার্ড বা ফুটারে দেখানো হয়। শুধুমাত্র প্লেন টেক্সট। সর্বাধিক ১,০০০টি অক্ষর লেখা যাবে। |
imageUrl |
ঐচ্ছিক। ছবির প্রিভিউ থাম্বনেলের URL (অবশ্যই https:// URL ব্যবহার করতে হবে)। |
footer |
ঐচ্ছিক। কার্ডের ফুটারে অতিরিক্ত অ্যাট্রিবিউশন টেক্সট দেখানো হয় (যেমন, ডোমেন নাম "developers.google.com" বা লেখক/সংস্থার নাম)। |
NullValue
JSON null দেখায়।
NullValue হল একটি সেন্টিনেল, যা Value টাইপ ইউনিয়নের জন্য নাল ভ্যালু দেখাতে শুধুমাত্র একটি ভ্যালু সহ enum ব্যবহার করে।
0 ছাড়া অন্য কোনও ভ্যালু সহ NullValue ধরনের ফিল্ডকে ভুল হিসেবে বিবেচনা করা হয়। বেশিরভাগ ProtoJSON সিরিয়ালাইজার, পূর্ণসংখ্যার ভ্যালু যাই হোক না কেন, JSON null হিসেবে সেট করা null_value সহ Value এমিট করবে এবং তাই 0 ভ্যালুতে রাউন্ড ট্রিপ করবে।
| Enums | |
|---|---|
NULL_VALUE |
নাল ভ্যালু। |
আউটপুট স্কিমা
Google Chat কথোপকথনে মেসেজ পাঠানোর উত্তর।
SendMessageResponse
| JSON উপস্থাপনা |
|---|
{
"message": {
object ( |
| ফিল্ড | |
|---|---|
message |
যে মেসেজ পাঠানো হয়েছে। |
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: সত্য হলে, টুলটি এক্সটার্নাল এন্টিটির 'মুক্ত পৃথিবী'-র সাথে ইন্টার্যাক্ট করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র অভ্যন্তরীণ এন্টিটির সাথে ইন্টার্যাক্ট করতে পারে। যেমন, ওয়েব সার্চ টুল ওপেন ওয়ার্ল্ড হলেও মেমরি টুল ওপেন ওয়ার্ল্ড নয়।
ডেস্ট্রাক্টিভ ইঙ্গিত: ❌ | আইডেমপোটেন্ট ইঙ্গিত: ❌ | শুধু পড়ার ইঙ্গিত: ❌ | ওপেন ওয়ার্ল্ড ইঙ্গিত: ✅
অনুমোদনের স্কোপ
নিম্নলিখিত OAuth স্কোপগুলির মধ্যে একটি প্রয়োজন:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create