เครื่องมือ: 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 อย่างน้อย 1 รายการ |
startTime |
ไม่บังคับ กรองข้อความที่สร้างขึ้นหลังจากเวลานี้ รูปแบบ: การประทับเวลา ISO 8601 |
endTime |
ไม่บังคับ กรองข้อความที่สร้างขึ้นก่อนเวลานี้ รูปแบบ: การประทับเวลา ISO 8601 |
mentionsMe |
ไม่บังคับ กรองข้อความที่พูดถึงผู้ใช้ที่โทรอย่างชัดเจน |
conversationIncludesUser |
ไม่บังคับ กรองข้อความใน DM และแชทเป็นกลุ่มที่มีอีเมลหรือรหัสของผู้ใช้ที่เฉพาะเจาะจง |
spaceDisplayNames[] |
ไม่บังคับ กรองตามรายชื่อพื้นที่ทำงาน โดยชื่อที่แสดงของพื้นที่ทำงานจะจับคู่กันบางส่วน หมายเหตุ: ระบบจะแสดงเฉพาะรายการที่ตรงกัน 5 อันดับแรกเท่านั้น |
conversationTypes[] |
ไม่บังคับ กรองตามประเภทการสนทนา |
hasAttachment |
ไม่บังคับ กรองข้อความที่มีไฟล์แนบอย่างน้อย 1 ไฟล์ หมายเหตุ: ช่องนี้อยู่ระหว่างการพัฒนาและอาจยังไม่รองรับในบางสภาพแวดล้อม |
ConversationType
กำหนดประเภทของการสนทนา
| Enum | |
|---|---|
CONVERSATION_TYPE_UNSPECIFIED |
ไม่ระบุ |
NAMED_SPACE |
พื้นที่ทำงานที่มีชื่อ |
GROUP_CHAT |
แชทเป็นกลุ่มระหว่างผู้เข้าร่วมตั้งแต่ 3 คนขึ้นไป |
DIRECT_MESSAGE |
ข้อความส่วนตัวระหว่างมนุษย์ 2 คน หรือมนุษย์กับแอปใน 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_FILE เท่านั้น ใช้กับ MCP ของ Google ไดรฟ์ |
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 |
เอาต์พุตเท่านั้น ภาพรวมของเนื้อหาข้อความต้นฉบับ ณ เวลาที่ยกมาหรือส่งต่อ จัดรูปแบบโดยใช้มาร์กดาวน์สำหรับ |
sender |
เอาต์พุตเท่านั้น ชื่อที่แสดงของผู้เขียนข้อความต้นฉบับ |
attachments[] |
เอาต์พุตเท่านั้น ไฟล์แนบที่เป็นส่วนหนึ่งของข้อความต้นฉบับ ป้อนข้อมูลสำหรับประเภทใบเสนอราคา |
forwardedMetadata |
เอาต์พุตเท่านั้น ข้อมูลเมตาเกี่ยวกับการสนทนาต้นทางของข้อความที่ส่งต่อ ป้อนข้อมูลสำหรับประเภทใบเสนอราคา |
ForwardedMetadata
| การแสดง JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| ช่อง | |
|---|---|
conversationId |
เอาต์พุตเท่านั้น ชื่อทรัพยากรของการสนทนาต้นทาง รูปแบบ: spaces/{space} |
conversationDisplayName |
เอาต์พุตเท่านั้น ชื่อที่แสดงของการสนทนาต้นทาง ณ เวลาที่ส่งต่อข้อความ สำหรับพื้นที่ทำงานที่มีชื่อ ค่าจะเป็นชื่อพื้นที่ทำงาน สำหรับข้อความส่วนตัวแบบ 1:1 จะเป็นชื่อของผู้เข้าร่วมอีกคน สำหรับแชทเป็นกลุ่มที่ไม่มีชื่อ ชื่อนี้จะเป็นชื่อที่สร้างขึ้นตามชื่อของสมาชิก |
UserType
ประเภทของผู้ใช้ Google Chat
| Enum | |
|---|---|
USER_TYPE_UNSPECIFIED |
ไม่ระบุ |
HUMAN |
ผู้ใช้ที่เป็นมนุษย์ |
APP |
ผู้ใช้แอป |
แหล่งที่มา
แหล่งที่มาของไฟล์แนบ
| Enum | |
|---|---|
SOURCE_UNSPECIFIED |
Reserved. |
DRIVE_FILE |
ไฟล์ดังกล่าวเป็นไฟล์ใน Google ไดรฟ์ |
UPLOADED_CONTENT |
ระบบจะอัปโหลดไฟล์ไปยัง Chat |
QuoteType
ประเภทการยกข้อความที่ระบุว่าข้อความเป็นข้อความตอบกลับแบบยกข้อความหรือข้อความที่ส่งต่อ
| Enum | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Reserved. ประเภทใบเสนอราคาที่ไม่ได้กำหนด |
REPLY |
ข้อความดังกล่าวเป็นการตอบกลับแบบยกข้อความต้นฉบับมาในชุดข้อความเดียวกัน |
FORWARD |
ข้อความถูกส่งต่อจากข้อความต้นฉบับในการสนทนาอื่น หรือจากชุดข้อความอื่นในการสนทนาเดียวกัน |
คำอธิบายประกอบเครื่องมือ
ระบบจะส่งคำอธิบายประกอบเครื่องมือไปยังไคลเอ็นต์ MCP เพื่ออธิบายความเสี่ยงพื้นฐานของเครื่องมือหนึ่งๆ ไคลเอ็นต์ส่วนใหญ่จะถือว่าคำแนะนำเหล่านี้ไม่น่าเชื่อถือ แต่สามารถใช้เพื่อตัดสินใจว่าจะส่งข้อความแจ้งยืนยันไปยังผู้ใช้เมื่อใด
นอกจากสตริงชื่อแล้ว ยังมีการกำหนดคำแนะนำบูลีนต่อไปนี้ด้วย
readOnlyHint: หากเป็นจริง เครื่องมือจะไม่แก้ไขสภาพแวดล้อมของตนเอง ค่าเริ่มต้น: falsedestructiveHint: หากเป็น "จริง" เครื่องมือจะดำเนินการที่ทำลายล้างได้ หากเป็นเท็จ เครื่องมือจะดำเนินการได้เฉพาะการดำเนินการแบบเพิ่มเท่านั้น ค่าเริ่มต้น: trueidempotentHint: หากเป็นจริง การเรียกใช้เครื่องมือซ้ำๆ ด้วยอาร์กิวเมนต์เดียวกันจะไม่มีผลเพิ่มเติมต่อสภาพแวดล้อม ค่าเริ่มต้น: falseopenWorldHint: หากเป็นจริง เครื่องมือจะโต้ตอบกับ "โอเพนเวิลด์" ของเอนทิตีภายนอกได้ หากเป็นเท็จ เครื่องมือจะโต้ตอบได้เฉพาะกับเอนทิตีภายในเท่านั้น ตัวอย่างเช่น เครื่องมือค้นเว็บจะเป็นแบบโอเพนเวิลด์ ส่วนเครื่องมือความทรงจำจะไม่ใช่แบบโอเพนเวิลด์
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