MCP Tools Reference: chatmcp.googleapis.com

เครื่องมือ: search_messages

ค้นหาข้อความ Google Chat โดยใช้คีย์เวิร์ดและตัวกรองที่แสดงข้อความในรูปแบบมาร์กดาวน์ ทำงานในทุกพื้นที่ที่ผู้ใช้มีสิทธิ์เข้าถึง หรือกำหนดขอบเขตให้เฉพาะการสนทนาที่เจาะจงได้

โปรดปฏิบัติตามคำแนะนำนี้เมื่อตัดสินใจว่าจะใช้ 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": integer,
  "pageToken": string
}
ช่อง
searchParameters

object (SearchParameters)

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

pageSize

integer

ไม่บังคับ Aware API จะแสดงผลลัพธ์สูงสุด 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
  ]
}
ฟิลด์
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 รายการแรกที่ตรงกัน

สคีมาเอาต์พุต

การตอบกลับการค้นหาข้อความใน 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)
    }
  ]
}
ช่อง
messageId

string

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

threadId

string

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

plaintextBody

string

เนื้อความของข้อความโดยใช้การจัดรูปแบบมาร์กดาวน์

sender

object (User)

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

createTime

string

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

threadedReply

boolean

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

attachments[]

object (ChatAttachmentMetadata)

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

reactionSummaries[]

object (ReactionSummary)

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

ผู้ใช้

การแสดง 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)
}
ช่อง
attachmentId

string

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

filename

string

ชื่อไฟล์แนบ

mimeType

string

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

source

enum (Source)

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

ReactionSummary

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

string

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

count

integer

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

UserType

ประเภทผู้ใช้ Google Chat

Enum
USER_TYPE_UNSPECIFIED ไม่ระบุ
HUMAN ผู้ใช้ที่เป็นมนุษย์
APP ผู้ใช้แอป

แหล่งที่มา

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

Enum
SOURCE_UNSPECIFIED สงวนสิทธิ์
DRIVE_FILE ไฟล์เป็นไฟล์ใน Google ไดรฟ์
UPLOADED_CONTENT ระบบจะอัปโหลดไฟล์ไปยัง Chat

คำอธิบายประกอบเครื่องมือ

คำอธิบายประกอบของเครื่องมือจะส่งไปยังลูกค้า MCP เพื่ออธิบายความเสี่ยงพื้นฐานของเครื่องมือที่กำหนด ไคลเอ็นต์ส่วนใหญ่จะถือว่าคำแนะนำเหล่านี้ไม่น่าเชื่อถือ แต่สามารถใช้เพื่อตัดสินใจว่าจะส่งข้อความแจ้งการยืนยันให้ผู้ใช้เมื่อใด

นอกจากสตริงชื่อแล้ว คำใบ้บูลีนต่อไปนี้จะได้รับการกำหนดดังนี้

  • readOnlyHint: หากเป็นจริง เครื่องมือจะไม่แก้ไขสภาพแวดล้อม ค่าเริ่มต้น: เท็จ
  • destructiveHint: หากเป็นจริง เครื่องมือจะดำเนินการที่ทำลายข้อมูลได้ หากเป็นเท็จ เครื่องมือจะดำเนินการได้เฉพาะการดำเนินการเพิ่มเติมเท่านั้น ค่าเริ่มต้น: จริง
  • idempotentHint: หากเป็นจริง การเรียกใช้เครื่องมือซ้ำๆ ด้วยอาร์กิวเมนต์เดียวกันจะไม่ส่งผลกระทบเพิ่มเติมต่อสภาพแวดล้อมของเครื่องมือ ค่าเริ่มต้น: เท็จ
  • openWorldHint: หากเป็นจริง เครื่องมือจะโต้ตอบกับ "โอเพนเวิลด์" ของเอนทิตีภายนอกได้ หากเป็นเท็จ เครื่องมือจะโต้ตอบกับเอนทิตีภายในเท่านั้น ตัวอย่างเช่น เครื่องมือค้นหาเว็บจะเป็นแบบโอเพนเวิลด์ แต่เครื่องมือความทรงจำจะไม่ใช่แบบโอเพนเวิลด์

టీपที่ทำลายล้าง: ❌ | টিপที่ไม่มีผลข้างเคียง: ✅ | টিপแบบอ่านอย่างเดียว: ✅ | টিপแบบโลกเปิด: ❌

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

ต้องใช้ขอบเขต 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