כלי: search_messages
חיפוש הודעות ב-Google Chat באמצעות מילות מפתח ומסננים, והחזרת התוצאות בפורמט Markdown. הוא יכול לעבוד בכל המרחבים שלמשתמש יש גישה אליהם, או רק בשיחה ספציפית.
כדאי לפעול לפי ההנחיות הבאות כשמחליטים אם להשתמש ב-search_messages או בכלים אחרים לחיפוש או לקריאה:
- כדאי להשתמש ב-
search_messagesכשמחפשים תוכן ספציפי בהודעות, מילות מפתח, תיוגים, קישורים, שולחים או הודעות שלא נקראו, במיוחד אם מחפשים בכמה מרחבים או אם לא יודעים מה מזהה השיחה. - כדאי להשתמש ב-
list_messagesכשאתם יודעים את המזהה הספציפי של המרחב או השרשור ואתם רוצים לקרוא את ההודעות ברצף לפי סדר כרונולוגי. - אפשר להשתמש ב-
search_conversationsכדי למצוא מטא-נתונים של מרחבים, כמו מזהי שיחות, לפי שם התצוגה של המרחב או המשתתפים (החיפוש מתבצע רק במטא-נתונים, לא בתוכן ההודעות).
אם מספקים את searchParameters בלי מסננים ספציפיים, מוחזרות הודעות אחרונות מכל השיחות שהמשתמש יכול לגשת אליהן.
בדוגמת הקוד הבאה מוסבר איך להשתמש ב-curl כדי להפעיל את כלי ה-MCP search_messages.
| בקשת 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 |
אופציונלי. המספר המקסימלי של תוצאות שיוחזרו (עד 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
],
"conversationTypes": [
enum ( |
| שדות | |
|---|---|
keywords[] |
אופציונלי. קבוצה של מילות מפתח שמשמשות לסינון התוצאות. |
conversationId |
אופציונלי. מגדיר את היקף החיפוש למזהה שיחה ספציפי, כמו זה שמוחזר מהכלי search_conversations. פורמט: |
sender |
אופציונלי. סינון הודעות ממשתמש ספציפי. אפשר להשתמש בכתובת האימייל או בשם המשאב של השולח. שמות המשאבים של המשתמשים הם בפורמט |
isUnread |
אופציונלי. סינון הודעות שהמשתמש ששלח את הבקשה לא קרא. |
hasLink |
אופציונלי. סינון הודעות שמכילות לפחות כתובת URL אחת. |
startTime |
אופציונלי. סינון הודעות שנוצרו אחרי השעה הזו. פורמט: חותמת זמן לפי תקן ISO 8601. |
endTime |
אופציונלי. סינון הודעות שנוצרו לפני הזמן הזה. פורמט: חותמת זמן לפי תקן ISO 8601. |
mentionsMe |
אופציונלי. סינון הודעות שבהן המשתמש שביצע את הקריאה מתויג באופן מפורש. |
conversationIncludesUser |
אופציונלי. אפשר לסנן הודעות בצ'אטים אישיים ובצ'אטים קבוצתיים שכוללות את כתובת האימייל או המזהה של המשתמש הספציפי. |
spaceDisplayNames[] |
אופציונלי. סינון לפי רשימה של שמות מרחבים. השמות המוצגים של המרחבים תואמים חלקית. הערה: המערכת מחזירה רק את 5 ההתאמות המובילות. |
conversationTypes[] |
אופציונלי. לסנן לפי סוג השיחה. |
hasAttachment |
אופציונלי. סינון הודעות שמכילות לפחות קובץ מצורף אחד. הערה: השדה הזה נמצא בפיתוח ויכול להיות שהוא עדיין לא נתמך בכל הסביבות. |
ConversationType
מגדיר את סוג השיחה.
| טיפוסים בני מנייה (enum) | |
|---|---|
CONVERSATION_TYPE_UNSPECIFIED |
לא צוין. |
NAMED_SPACE |
מרחב משותף עם שם. |
GROUP_CHAT |
צ'אט קבוצתי עם 3 אנשים או יותר. |
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 |
גוף הטקסט של ההודעה בפורמט Markdown. |
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. אפשר להשתמש בה עם ה-MCP של Google Drive. |
ReactionSummary
| ייצוג ב-JSON |
|---|
{ "emoji": string, "count": integer } |
| שדות | |
|---|---|
emoji |
מחרוזת ה-Unicode של האמוג'י או השם של האמוג'י בהתאמה אישית. |
count |
המספר הכולל של התגובות באמצעות האמוג'י המשויך. |
QuotedMessageMetadata
| ייצוג ב-JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| שדות | |
|---|---|
messageId |
פלט בלבד. שם המשאב של ההודעה המקורית שצוטטה או הועברה. פורמט: spaces/{space}/messages/{message} |
lastUpdateTime |
פלט בלבד. חותמת הזמן של מועד היצירה או העדכון האחרון של ההודעה המקורית, לפני שהיא צוטטה או הועברה. פורמט: חותמת זמן לפי תקן ISO 8601. |
quoteType |
פלט בלבד. סוג הציטוט. |
plaintextBody |
פלט בלבד. תמונת מצב של גוף הטקסט של ההודעה המקורית בזמן הציטוט או ההעברה. מעוצב באמצעות Markdown עבור |
sender |
פלט בלבד. השם המוצג של מחבר ההודעה המקורית. |
attachments[] |
פלט בלבד. קבצים מצורפים שהיו חלק מההודעה המקורית. השדה הזה מאוכלס רק בסוג הצעת המחיר |
forwardedMetadata |
פלט בלבד. מטא-נתונים על השיחה שממנה הועברה ההודעה. השדה הזה מאוכלס רק בסוג הצעת המחיר |
ForwardedMetadata
| ייצוג ב-JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| שדות | |
|---|---|
conversationId |
פלט בלבד. שם המשאב של השיחה המקורית. פורמט: spaces/{space} |
conversationDisplayName |
פלט בלבד. השם המוצג של השיחה המקורית בזמן שההודעה הועברה. במרחבים משותפים עם שם, זה השם של המרחב. בצ'אטים אישיים, זה השם של המשתתף השני. בצ'אטים קבוצתיים ללא שם, השם נוצר על סמך שמות המשתתפים. |
UserType
סוג המשתמש ב-Google Chat.
| טיפוסים בני מנייה (enum) | |
|---|---|
USER_TYPE_UNSPECIFIED |
לא צוין. |
HUMAN |
משתמש אנושי. |
APP |
משתמש באפליקציה. |
מקור
המקור של הקובץ המצורף.
| טיפוסים בני מנייה (enum) | |
|---|---|
SOURCE_UNSPECIFIED |
שמורות. |
DRIVE_FILE |
הקובץ הוא קובץ ב-Google Drive. |
UPLOADED_CONTENT |
הקובץ יועלה ל-Chat. |
QuoteType
סוג הציטוט, שמציין אם ההודעה היא תשובה עם ציטוט או הודעה שהועברה.
| טיפוסים בני מנייה (enum) | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
שמורות. סוג הציטוט לא מוגדר. |
REPLY |
ההודעה היא תשובה עם ציטוט להודעה מקורית באותו שרשור. |
FORWARD |
ההודעה הועברה מהודעה מקורית בשיחה אחרת, או משרשור אחר באותה שיחה. |
הערות לגבי הכלים
הערות הכלים נשלחות ללקוחות MCP כדי לתאר את הסיכון הבסיסי של כלי מסוים. רוב הלקוחות מתייחסים לרמזים האלה כלא מהימנים, אבל אפשר להשתמש בהם כדי להחליט מתי לשלוח למשתמש בקשה לאישור.
בנוסף למחרוזת הכותרת, הרמזים הבוליאניים הבאים מוגדרים כך:
-
readOnlyHint: אם הערך הוא True, הכלי לא משנה את הסביבה שלו. ברירת המחדל: false. -
destructiveHint: אם הערך הוא True, הכלי יכול לבצע פעולות הרסניות. אם הערך הוא False, הכלי יכול לבצע רק פעולות הוספה. ברירת המחדל: true. -
idempotentHint: אם הערך הוא True, קריאה חוזרת לכלי עם אותם ארגומנטים לא תשפיע על הסביבה שלו. ברירת המחדל: false. -
openWorldHint: אם הערך הוא True, הכלי יכול לקיים אינטראקציה עם "עולם פתוח" של ישויות חיצוניות. אם הערך הוא false, הכלי יכול לקיים אינטראקציה רק עם ישויות פנימיות. לדוגמה, כלי חיפוש באינטרנט הוא כלי בעולם פתוח, אבל כלי זיכרון הוא לא כלי בעולם פתוח.
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