الأداة: search_messages
يبحث عن رسائل Google Chat باستخدام الكلمات الرئيسية والفلاتر ويعرضها بتنسيق Markdown. تعمل هذه الميزة في جميع المساحات التي يمكن للمستخدم الوصول إليها، أو يمكن حصر نطاقها في محادثة معيّنة.
يُرجى اتّباع هذه الإرشادات عند تحديد ما إذا كنت ستستخدم search_messages أو أدوات البحث أو القراءة الأخرى:
- استخدِم
search_messagesعند البحث عن محتوى رسالة محدّد أو كلمات رئيسية أو إشارات أو روابط أو مُرسِلين أو رسائل غير مقروءة قد تكون في مساحات متعددة أو بدون معرّف محادثة معروف. - استخدِم
list_messagesعندما تعرف المعرّف المحدّد للمساحة أو سلسلة المحادثات وتريد قراءة الرسائل بالتسلسل حسب الترتيب الزمني. - استخدِم
search_conversationsللعثور على البيانات الوصفية للمساحة، مثل معرّفات المحادثات حسب الاسم المعروض للمساحة أو المشاركين (يبحث في البيانات الوصفية فقط، وليس في محتوى الرسائل).
في حال توفير searchParameters بدون فلاتر محدّدة، يتم عرض الرسائل الحديثة من المحادثات التي يمكن للمستخدم الوصول إليها.
يوضّح نموذج الرمز التالي كيفية استخدام curl لاستدعاء أداة search_messages MCP.
| طلب 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 tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
مخطط الإدخال
SearchMessagesRequest
| تمثيل JSON |
|---|
{
"searchParameters": {
object ( |
| الحقول | |
|---|---|
searchParameters |
الحقل مطلوب. معلَمات البحث التي سيتم استخدامها في عملية البحث |
pageSize |
اختياريّ. الحد الأقصى لعدد النتائج التي سيتم عرضها (100 نتيجة كحدّ أقصى) إذا لم يتم تحديدها، سيتم عرض 25 نتيجة على الأكثر. |
pageToken |
اختياريّ. رمز مميز للصفحة تم تلقّيه من طلب |
SearchParameters
| تمثيل JSON |
|---|
{ "keywords": [ string ], "conversationId": string, "sender": string, "isUnread": boolean, "hasLink": boolean, "startTime": string, "endTime": string, "mentionsMe": boolean, "conversationIncludesUser": string, "spaceDisplayNames": [ string ] } |
| الحقول | |
|---|---|
keywords[] |
اختياريّ. مجموعة من الكلمات الرئيسية تُستخدَم لفلترة النتائج. |
conversationId |
اختياريّ. يقتصر البحث على معرّف محادثة معيّن، كما هو معروض من أداة search_conversations. التنسيق: |
sender |
اختياريّ. فلترة الرسائل من مستخدم معيّن يمكن استخدام عنوان البريد الإلكتروني أو اسم المورد الخاص بالمُرسِل. يتم تنسيق أسماء موارد المستخدمين على النحو التالي: |
isUnread |
اختياريّ. فلتر للرسائل التي لم يقرأها المستخدم الذي يجري المكالمة |
hasLink |
اختياريّ. فلترة الرسائل التي تحتوي على عنوان URL واحد على الأقل |
startTime |
اختياريّ. فلترة الرسائل التي تم إنشاؤها بعد هذا الوقت التنسيق: طابع زمني بتنسيق ISO 8601. |
endTime |
اختياريّ. فلتر للرسائل التي تم إنشاؤها قبل هذا الوقت التنسيق: طابع زمني بتنسيق ISO 8601. |
mentionsMe |
اختياريّ. فلترة الرسائل التي تشير صراحةً إلى المستخدم الذي يجري المكالمة |
conversationIncludesUser |
اختياريّ. فلترة الرسائل في الرسائل المباشرة والمحادثات الجماعية التي تتضمّن البريد الإلكتروني أو رقم التعريف الخاص بالمستخدم المحدّد |
spaceDisplayNames[] |
اختياريّ. فلترة النتائج حسب قائمة بأسماء المساحات، ويتم مطابقة الأسماء المعروضة للمساحات جزئيًا ملاحظة: يتم عرض أفضل 5 نتائج مطابقة فقط. |
مخطط النتائج
ردّ على طلب البحث عن رسائل 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 |
نص الرسالة باستخدام تنسيق Markdown |
sender |
مُرسِل الرسالة |
createTime |
النتائج فقط. الطابع الزمني لوقت إنشاء الرسالة |
threadedReply |
تُستخدَم لتحديد ما إذا كانت الرسالة ردًا في سلسلة محادثات. |
attachments[] |
المرفقات المضمّنة في الرسالة |
reactionSummaries[] |
ملخّص التفاعلات باستخدام رموز الإيموجي المضمّن في الرسالة |
المستخدم
| تمثيل JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| الحقول | |
|---|---|
userId |
اسم المورد لمستخدم Chat التنسيق: users/{user}. |
displayName |
الاسم المعروض لمستخدم Chat |
email |
repairing_user_email لا تتم تعبئة هذا الحقل إلا عندما يكون نوع المستخدم HUMAN. |
userType |
نوع المستخدم |
ChatAttachmentMetadata
| تمثيل JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| الحقول | |
|---|---|
attachmentId |
اسم المرفق التنسيق: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
اسم المرفق |
mimeType |
نوع المحتوى (نوع MIME) |
source |
مصدر المرفق |
ReactionSummary
| تمثيل JSON |
|---|
{ "emoji": string, "count": integer } |
| الحقول | |
|---|---|
emoji |
سلسلة يونيكود الإيموجي أو اسم الإيموجي المخصّص |
count |
تمثّل هذه السمة إجمالي عدد التفاعلات باستخدام الإيموجي المرتبط. |
UserType
نوع مستخدم Google Chat
| عمليات التعداد | |
|---|---|
USER_TYPE_UNSPECIFIED |
غير محدد |
HUMAN |
مستخدم بشري |
APP |
مستخدم التطبيق |
المصدر
مصدر المرفق
| عمليات التعداد | |
|---|---|
SOURCE_UNSPECIFIED |
محجوز |
DRIVE_FILE |
الملف هو ملف Google Drive. |
UPLOADED_CONTENT |
يتم تحميل الملف إلى Chat. |
التعليقات التوضيحية للأدوات
يتم إرسال تعليقات توضيحية للأدوات إلى عملاء 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