MCP Tools Reference: chatmcp.googleapis.com

เครื่องมือ: 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": integer,
  "pageToken": string
}
ช่อง
searchParameters

object (SearchParameters)

ต้องระบุ พารามิเตอร์การค้นหาที่จะใช้สำหรับการค้นหา

pageSize

integer

ไม่บังคับ จำนวนผลลัพธ์สูงสุดที่จะแสดง (สูงสุด 100 รายการ) หากไม่ระบุ ระบบจะแสดงผลไม่เกิน 25 รายการ

pageToken

string

ไม่บังคับ โทเค็นหน้าเว็บที่ได้รับจากการเรียกใช้ search_messages ก่อนหน้า ระบุโทเค็นนี้เพื่อเรียกข้อมูลหน้าถัดไป

SearchParameters

การแสดง JSON
{
  "keywords": [
    string
  ],
  "conversationId": string,
  "sender": string,
  "isUnread": boolean,
  "hasLink": boolean,
  "startTime": string,
  "endTime": string,
  "mentionsMe": boolean,
  "conversationIncludesUser": string,
  "spaceDisplayNames": [
    string
  ],
  "conversationTypes": [
    enum (ConversationType)
  ],
  "hasAttachment": boolean
}
ฟิลด์
keywords[]

string

ไม่บังคับ ชุดคีย์เวิร์ดที่ใช้กรองผลลัพธ์

conversationId

string

ไม่บังคับ กำหนดขอบเขตการค้นหาเป็นตัวระบุการสนทนาที่เฉพาะเจาะจง ตามที่แสดงผลจากเครื่องมือ search_conversations รูปแบบ: spaces/{ID}

sender

string

ไม่บังคับ กรองข้อความจากผู้ใช้ที่ระบุ คุณสามารถใช้อีเมลหรือชื่อทรัพยากรของผู้ส่งก็ได้ ชื่อทรัพยากรของผู้ใช้จะอยู่ในรูปแบบ users/{ID} โดยที่ {ID} อาจเป็นรหัสบุคคลหรืออีเมลก็ได้

isUnread

boolean

ไม่บังคับ กรองหาข้อความที่ผู้ใช้ที่โทรเข้ามายังไม่ได้อ่าน

hasLink

boolean

ไม่บังคับ กรองข้อความที่มี URL อย่างน้อย 1 รายการ

startTime

string

ไม่บังคับ กรองข้อความที่สร้างขึ้นหลังจากเวลานี้ รูปแบบ: การประทับเวลา ISO 8601

endTime

string

ไม่บังคับ กรองข้อความที่สร้างขึ้นก่อนเวลานี้ รูปแบบ: การประทับเวลา ISO 8601

mentionsMe

boolean

ไม่บังคับ กรองข้อความที่พูดถึงผู้ใช้ที่โทรอย่างชัดเจน

conversationIncludesUser

string

ไม่บังคับ กรองข้อความใน DM และแชทเป็นกลุ่มที่มีอีเมลหรือรหัสของผู้ใช้ที่เฉพาะเจาะจง

spaceDisplayNames[]

string

ไม่บังคับ กรองตามรายชื่อพื้นที่ทำงาน โดยชื่อที่แสดงของพื้นที่ทำงานจะจับคู่กันบางส่วน หมายเหตุ: ระบบจะแสดงเฉพาะรายการที่ตรงกัน 5 อันดับแรกเท่านั้น

conversationTypes[]

enum (ConversationType)

ไม่บังคับ กรองตามประเภทการสนทนา

hasAttachment

boolean

ไม่บังคับ กรองข้อความที่มีไฟล์แนบอย่างน้อย 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 (ChatMessage)
    }
  ],
  "nextPageToken": string
}
ช่อง
messages[]

object (ChatMessage)

รายการออบเจ็กต์ข้อความที่ตรงกับเกณฑ์การค้นหา

nextPageToken

string

โทเค็นที่ส่งเป็น page_token ได้เพื่อดึงข้อมูลหน้าถัดไป หากละเว้นช่องนี้ แสดงว่าไม่มีหน้าถัดไป

ChatMessage

การแสดง JSON
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
ช่อง
messageId

string

ชื่อทรัพยากรของข้อความ รูปแบบ: spaces/{space}/messages/{message}

threadId

string

ชุดข้อความที่มีข้อความนี้อยู่ ช่องนี้จะว่างเปล่าหากข้อความไม่มีชุดข้อความ รูปแบบ: spaces/{space}/threads/{thread}

plaintextBody

string

เนื้อความของข้อความที่ใช้การจัดรูปแบบ Markdown

sender

object (User)

ผู้ส่งข้อความ

createTime

string

เอาต์พุตเท่านั้น การประทับเวลาเมื่อสร้างข้อความ รูปแบบ: การประทับเวลา ISO 8601

threadedReply

boolean

ข้อความเป็นชุดข้อความตอบกลับหรือไม่

attachments[]

object (ChatAttachmentMetadata)

ไฟล์แนบที่รวมอยู่ในข้อความ

reactionSummaries[]

object (ReactionSummary)

สรุปรีแอ็กชันด้วยอีโมจิที่รวมอยู่ในข้อความ

quotedMessageMetadata

object (QuotedMessageMetadata)

เอาต์พุตเท่านั้น ข้อมูลเกี่ยวกับข้อความต้นฉบับที่ยกมาหรือส่งต่อในข้อความนี้ หมายเหตุ: ช่องนี้อยู่ระหว่างการพัฒนาและอาจยังไม่พร้อมใช้งานในบางสภาพแวดล้อม

ผู้ใช้

การแสดง JSON
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
ช่อง
userId

string

ชื่อทรัพยากรของผู้ใช้ Chat รูปแบบ: users/{user}

displayName

string

ชื่อที่แสดงของผู้ใช้ Chat

email

string

อีเมลของผู้ใช้ ระบบจะป้อนข้อมูลในช่องนี้เมื่อประเภทผู้ใช้เป็น HUMAN เท่านั้น

userType

enum (UserType)

ประเภทของผู้ใช้

ChatAttachmentMetadata

การแสดง JSON
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
ช่อง
attachmentId

string

ชื่อทรัพยากรของไฟล์แนบ รูปแบบ: spaces/{space}/messages/{message}/attachments/{attachment}

filename

string

ชื่อไฟล์แนบ

mimeType

string

ประเภทเนื้อหา (ประเภท MIME)

source

enum (Source)

แหล่งที่มาของไฟล์แนบ

driveFileId

string

เอาต์พุตเท่านั้น รหัสสำหรับไฟล์ Google ไดรฟ์ จะมีการป้อนข้อมูลเมื่อแหล่งที่มาเป็น DRIVE_FILE เท่านั้น ใช้กับ MCP ของ Google ไดรฟ์

ReactionSummary

การแสดง JSON
{
  "emoji": string,
  "count": integer
}
ช่อง
emoji

string

สตริง Unicode ของอีโมจิหรือชื่ออีโมจิที่กำหนดเอง

count

integer

จำนวนรีแอ็กชันทั้งหมดที่ใช้อีโมจิที่เกี่ยวข้อง

QuotedMessageMetadata

การแสดง JSON
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
ช่อง
messageId

string

เอาต์พุตเท่านั้น ชื่อทรัพยากรของข้อความต้นฉบับที่มีการยกมาหรือส่งต่อ รูปแบบ: spaces/{space}/messages/{message}

lastUpdateTime

string

เอาต์พุตเท่านั้น การประทับเวลาเมื่อสร้างหรืออัปเดตข้อความต้นฉบับครั้งล่าสุดก่อนที่จะมีการยกมาหรือส่งต่อ รูปแบบ: การประทับเวลา ISO 8601

quoteType

enum (QuoteType)

เอาต์พุตเท่านั้น ประเภทของใบเสนอราคา

plaintextBody

string

เอาต์พุตเท่านั้น ภาพรวมของเนื้อหาข้อความต้นฉบับ ณ เวลาที่ยกมาหรือส่งต่อ จัดรูปแบบโดยใช้มาร์กดาวน์สำหรับ FORWARD และข้อความธรรมดาสำหรับ REPLY

sender

string

เอาต์พุตเท่านั้น ชื่อที่แสดงของผู้เขียนข้อความต้นฉบับ

attachments[]

object (ChatAttachmentMetadata)

เอาต์พุตเท่านั้น ไฟล์แนบที่เป็นส่วนหนึ่งของข้อความต้นฉบับ ป้อนข้อมูลสำหรับประเภทใบเสนอราคา FORWARD เท่านั้น

forwardedMetadata

object (ForwardedMetadata)

เอาต์พุตเท่านั้น ข้อมูลเมตาเกี่ยวกับการสนทนาต้นทางของข้อความที่ส่งต่อ ป้อนข้อมูลสำหรับประเภทใบเสนอราคา FORWARD เท่านั้น

ForwardedMetadata

การแสดง JSON
{
  "conversationId": string,
  "conversationDisplayName": string
}
ช่อง
conversationId

string

เอาต์พุตเท่านั้น ชื่อทรัพยากรของการสนทนาต้นทาง รูปแบบ: spaces/{space}

conversationDisplayName

string

เอาต์พุตเท่านั้น ชื่อที่แสดงของการสนทนาต้นทาง ณ เวลาที่ส่งต่อข้อความ สำหรับพื้นที่ทำงานที่มีชื่อ ค่าจะเป็นชื่อพื้นที่ทำงาน สำหรับข้อความส่วนตัวแบบ 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: หากเป็นจริง เครื่องมือจะไม่แก้ไขสภาพแวดล้อมของตนเอง ค่าเริ่มต้น: false
  • destructiveHint: หากเป็น "จริง" เครื่องมือจะดำเนินการที่ทำลายล้างได้ หากเป็นเท็จ เครื่องมือจะดำเนินการได้เฉพาะการดำเนินการแบบเพิ่มเท่านั้น ค่าเริ่มต้น: true
  • idempotentHint: หากเป็นจริง การเรียกใช้เครื่องมือซ้ำๆ ด้วยอาร์กิวเมนต์เดียวกันจะไม่มีผลเพิ่มเติมต่อสภาพแวดล้อม ค่าเริ่มต้น: false
  • openWorldHint: หากเป็นจริง เครื่องมือจะโต้ตอบกับ "โอเพนเวิลด์" ของเอนทิตีภายนอกได้ หากเป็นเท็จ เครื่องมือจะโต้ตอบได้เฉพาะกับเอนทิตีภายในเท่านั้น ตัวอย่างเช่น เครื่องมือค้นเว็บจะเป็นแบบโอเพนเวิลด์ ส่วนเครื่องมือความทรงจำจะไม่ใช่แบบโอเพนเวิลด์

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้

  • https://www.googleapis.com/auth/chat.messages.readonly
  • https://www.googleapis.com/auth/chat.spaces.readonly
  • https://www.googleapis.com/auth/chat.memberships.readonly
  • https://www.googleapis.com/auth/chat.users.readstate.readonly