ابزار: list_messages
پیامها را از یک مکالمه مشخصشده در گوگل چت (فضا، پیام مستقیم (DM) یا پیام گروهی) در قالب Markdown بازیابی میکند. امکان فیلتر کردن بر اساس موضوع، محدوده زمانی و تعداد پیامها را فراهم میکند. علاوه بر این، صفحه بعدی پیامها را میتوان بازیابی کرد تا زمینه بیشتری در دسترس باشد. پیامهای خصوصی (پیامهایی که فقط برای یک کاربر قابل مشاهده هستند) فیلتر میشوند.
نمونه کد زیر نحوه استفاده از curl برای فراخوانی ابزار list_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": "list_messages", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
طرحواره ورودی
درخواست لیستچتپیامها
| نمایش JSON |
|---|
{ "conversationId": string, "threadId": string, "pageSize": integer, "pageToken": string, "startTime": string, "endTime": string } |
| فیلدها | |
|---|---|
conversationId | الزامی. شناسه مکالمه. یک مکالمه میتواند با فاصله، پیام مستقیم (DM) یا پیام مستقیم/چت گروهی باشد. قالب: فاصله/{space} |
threadId | اختیاری. شناسهی یک رشتهی خاص در مکالمه. در صورت ارائه، فقط پیامهای این رشته بازگردانده میشوند. در صورت حذف، پیامهای تمام رشتههای مکالمه در نظر گرفته میشوند. قالب: فاصلهها/{space}/threads/{thread} |
pageSize | اختیاری. حداکثر تعداد پیامهایی که باید برگردانده شود. سرویس ممکن است کمتر از این مقدار را برگرداند. اگر مشخص نشود، پیشفرض آن ۲۰ است. حداکثر مقدار ۵۰ است. اگر از مقداری بیشتر از ۵۰ استفاده کنید، به طور خودکار به ۵۰ تغییر میکند. |
pageToken | اختیاری. یک توکن صفحه که از فراخوانی قبلی list_messages دریافت شده است. این توکن را برای بازیابی صفحه بعدی ارائه دهید. |
startTime | اختیاری. مهر زمانی ISO 8601 برای فیلتر کردن پیامها. فقط پیامهایی که پس از این زمان ایجاد میشوند، بازگردانده میشوند. |
endTime | اختیاری. مهر زمانی ISO 8601 برای فیلتر کردن پیامها. فقط پیامهایی که قبل از این زمان ایجاد شدهاند، بازگردانده میشوند. |
طرحواره خروجی
پاسخی حاوی فهرست پیامهای مکالمه درخواستی.
پاسخ لیستچتپیامها
| نمایش JSON |
|---|
{
"messages": [
{
object ( |
| فیلدها | |
|---|---|
messages[] | فهرست پیامهای بازیابیشده، به ترتیب زمانی معکوس (جدیدترینها اول). |
nextPageToken | یک توکن، که میتواند به عنوان |
چتپیام
| نمایش JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| فیلدها | |
|---|---|
messageId | نام منبع پیام. قالب: فاصلهها/{فاصله}/پیامها/{پیام} |
threadId | رشتهای که این پیام به آن تعلق دارد. اگر پیام رشتهبندی نشده باشد، این قسمت خالی خواهد بود. قالب: space/{space}/threads/{thread} |
plaintextBody | متن اصلی پیام با استفاده از قالببندی Markdown. |
sender | فرستنده پیام. |
createTime | فقط خروجی. مهر زمانی که پیام ایجاد شده است. |
threadedReply | اینکه آیا پیام، پاسخ یک تاپیک است یا خیر. |
attachments[] | پیوستهای موجود در پیام. |
reactionSummaries[] | خلاصه واکنشهای ایموجی در پیام گنجانده شده است. |
کاربر
| نمایش JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| فیلدها | |
|---|---|
userId | نام منبع یک کاربر چت. فرمت: users/{user}. |
displayName | نام نمایشی کاربر چت. |
email | آدرس ایمیل کاربر. این فیلد فقط زمانی پر میشود که نوع کاربر HUMAN باشد. |
userType | نوع کاربر. |
فراداده پیوست چت
| نمایش JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| فیلدها | |
|---|---|
attachmentId | نام منبع پیوست. قالب: space/{space}/messages/{message}/attachments/{attachment}. |
filename | نام فایل پیوست. |
mimeType | نوع محتوا (نوع MIME). |
source | منبع پیوست. |
خلاصه واکنش
| نمایش JSON |
|---|
{ "emoji": string, "count": integer } |
| فیلدها | |
|---|---|
emoji | رشته یونیکد ایموجی یا نام ایموجی سفارشی. |
count | تعداد کل واکنشها با استفاده از ایموجی مرتبط. |
نوع کاربر
نوع کاربر گوگل چت.
| انومها | |
|---|---|
USER_TYPE_UNSPECIFIED | نامشخص. |
HUMAN | کاربر انسانی. |
APP | کاربر برنامه. |
منبع
منبع پیوست.
| انومها | |
|---|---|
SOURCE_UNSPECIFIED | رزرو شده. |
DRIVE_FILE | فایل، فایل گوگل درایو است. |
UPLOADED_CONTENT | فایل در چت آپلود شد. |
حاشیهنویسی ابزار
حاشیهنویسیهای ابزار برای توصیف ریسک اولیهی یک ابزار مشخص به کلاینتهای MCP ارسال میشوند. اکثر کلاینتها این نکات را غیرقابل اعتماد میدانند، اما میتوان از آنها برای تصمیمگیری در مورد زمان ارسال پیام تأیید به کاربر استفاده کرد.
همراه با رشته عنوان، نکات بولی زیر به صورت زیر تعریف میشوند:
-
readOnlyHint: اگر درست باشد، ابزار محیط خود را تغییر نمیدهد. پیشفرض: نادرست. -
destructiveHint: اگر درست باشد، ابزار میتواند اقدامات مخرب انجام دهد. اگر نادرست باشد، ابزار فقط میتواند اقدامات افزایشی انجام دهد. پیشفرض: درست. -
idempotentHint: اگر مقدار آن درست باشد، فراخوانی مکرر ابزار با آرگومانهای یکسان، هیچ تأثیر اضافی بر محیط آن نخواهد داشت. پیشفرض: false. -
openWorldHint: اگر درست باشد، ابزار میتواند با «دنیای باز» از موجودیتهای خارجی تعامل داشته باشد. اگر نادرست باشد، ابزار فقط میتواند با موجودیتهای داخلی تعامل داشته باشد. برای مثال، یک ابزار جستجوی وب جهانباز خواهد بود، در حالی که یک ابزار حافظه جهانباز نخواهد بود.
راهنمایی مخرب: ❌ | راهنمایی بیاثر: ✅ | راهنمایی فقط خواندنی: ✅ | راهنمایی جهان باز: ❌
دامنههای مجوز
به یکی از حوزههای OAuth زیر نیاز دارد:
-
https://www.googleapis.com/auth/chat.messages -
https://www.googleapis.com/auth/chat.messages.readonly