เครื่องมือ: send_message
ส่งข้อความแชทของ Google Chat ไปยังการสนทนาที่มีการจัดรูปแบบมาร์กดาวน์
เครื่องมือนี้ใช้อินพุตเป็นรหัสการสนทนา รหัสชุดข้อความ (ไม่บังคับ) และข้อความ
คุณดูรหัสการสนทนาได้โดยใช้เครื่องมือ search_conversations
โดยจะแสดงข้อความที่สร้างขึ้น
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ curl เพื่อเรียกใช้เครื่องมือ MCP send_message
| คำขอ 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": "send_message", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
สคีมาอินพุต
SendMessageRequest
| การแสดง JSON |
|---|
{ "conversationId": string, "threadId": string, "messageText": string, "cards": [ { object } ], "inlineCitations": [ { object ( |
| ช่อง | |
|---|---|
conversationId |
ต้องระบุ รหัสของการสนทนา (เช่น "spaces/AAAA...") ที่จะส่งข้อความถึง |
threadId |
ไม่บังคับ รหัสของชุดข้อความ (เช่น "spaces/AAAA.../threads/BBBB...") ที่จะส่งข้อความถึง หากไม่ได้ตั้งค่า ระบบจะส่งข้อความไปยังชุดข้อความใหม่ |
messageText |
ต้องระบุ เนื้อหาหลักของข้อความ คุณสามารถเพิ่มการจัดรูปแบบได้โดยใช้มาร์กดาวน์มาตรฐาน (โปรดทราบว่าระบบไม่รองรับตาราง) ระบบรองรับการจัดรูปแบบต่อไปนี้
|
cards[] |
ไม่บังคับ การ์ดที่แนบมากับข้อความ ขนาดสูงสุดคือ 32 KB ต่อการ์ด การ์ดแต่ละใบจะแสดงเป็นโครงสร้าง JSON ตามรูปแบบการ์ด Google Chat (การ์ด Google Workspace UIKit / การ์ด v2) หากต้องการแนบการ์ดกับข้อความ แอปใน Chat ต้องเป็นสมาชิกของพื้นที่ทำงาน ระบบไม่รองรับรูปภาพในการ์ด การระบุบัตร:
|
inlineCitations[] |
ไม่บังคับ การอ้างอิงในบรรทัดที่อ้างอิงภายใน |
footerCitedSources[] |
ไม่บังคับ แหล่งข้อมูลที่อ้างอิงระดับบนสุดจะแสดงเป็นการ์ดข้อมูลอ้างอิงที่ด้านล่าง (ส่วนท้าย) ของข้อความ อนุญาตให้ใช้แหล่งข้อมูลที่อ้างอิงได้สูงสุด 50 รายการในการอ้างอิงในบรรทัดและแหล่งข้อมูลส่วนท้ายทั้งหมดในข้อความ |
โครงสร้าง
| การแสดง JSON |
|---|
{ "fields": { string: value, ... } } |
| ช่อง | |
|---|---|
fields |
แมปค่าที่พิมพ์แบบไดนามิกที่ไม่ได้เรียงลำดับ ออบเจ็กต์ที่มีรายการคู่ |
FieldsEntry
| การแสดง JSON |
|---|
{ "key": string, "value": value } |
| ช่อง | |
|---|---|
key |
|
value |
|
ค่า
| การแสดง JSON |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| ช่อง | |
|---|---|
ฟิลด์ Union kind ประเภทของค่า kind ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
nullValue |
แสดง |
numberValue |
แสดงตัวเลข JSON ต้องไม่ใช่ |
stringValue |
แสดงสตริง JSON |
boolValue |
แสดงบูลีน JSON ( |
structValue |
แสดงออบเจ็กต์ JSON |
listValue |
แสดงอาร์เรย์ JSON |
ListValue
| การแสดง JSON |
|---|
{ "values": [ value ] } |
| ช่อง | |
|---|---|
values[] |
ฟิลด์ที่ซ้ำได้ของค่าที่พิมพ์แบบไดนามิก |
การอ้างอิง
| การแสดง JSON |
|---|
{
"id": string,
"citedSources": [
{
object ( |
| ช่อง | |
|---|---|
id |
ต้องระบุ ตัวระบุที่ไม่ซ้ำกันซึ่งตรงกับแอตทริบิวต์ |
citedSources[] |
ต้องระบุ แหล่งข้อมูลอย่างน้อย 1 แหล่งที่แนบมากับโฮเวอร์การ์ดการอ้างอิงนี้ อนุญาตให้มีแหล่งข้อมูลที่อ้างอิงได้สูงสุด 50 แหล่งในการอ้างอิงในบรรทัดและแหล่งข้อมูลในส่วนท้ายทั้งหมดในข้อความ |
CitedSource
| การแสดง JSON |
|---|
{ "title": string, "url": string, "snippet": string, "imageUrl": string, "footer": string } |
| ช่อง | |
|---|---|
title |
ต้องระบุ ชื่อข้อความธรรมดาของแหล่งที่มา (เช่น "โปรแกรมเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ Google Workspace") ชื่อไม่รองรับการจัดรูปแบบมาร์กดาวน์ |
url |
ต้องระบุ URL ของแหล่งข้อมูลที่อ้างอิง (ต้องเป็น URL http:// หรือ https:// ที่ถูกต้อง เช่น "https://developers.google.com/workspace/preview") |
snippet |
ไม่บังคับ ข้อความที่ตัดตอนมาสั้นๆ หรือตัวอย่างข้อมูลจากแหล่งที่มาโดยตรง แสดงในโฮเวอร์การ์ดหรือส่วนท้าย ข้อความธรรมดาเท่านั้น ความยาวสูงสุด 1,000 อักขระ |
imageUrl |
ไม่บังคับ URL ของภาพขนาดย่อตัวอย่างรูปภาพ (ต้องใช้ URL ที่ขึ้นต้นด้วย https://) |
footer |
ไม่บังคับ ข้อความแสดงแหล่งที่มาเพิ่มเติมที่แสดงในส่วนท้ายของการ์ด (เช่น ชื่อโดเมน "developers.google.com" หรือชื่อผู้เขียน/องค์กร) |
NullValue
แสดง null ของ JSON
NullValue เป็น Sentinel โดยใช้ enum ที่มีค่าเดียวเพื่อแสดงค่า Null สำหรับยูเนียนประเภท Value
ระบบจะถือว่าช่องประเภท NullValue ที่มีค่าอื่นนอกเหนือจาก 0 ไม่ถูกต้อง โปรแกรมจัดลำดับ ProtoJSON ส่วนใหญ่จะส่ง Value ที่มี null_value ตั้งค่าเป็น JSON null โดยไม่คำนึงถึงค่าจำนวนเต็ม และจะไป-กลับเป็นค่า 0
| Enum | |
|---|---|
NULL_VALUE |
ค่า Null |
สคีมาเอาต์พุต
การตอบกลับการส่งข้อความไปยังการสนทนาใน Google Chat
SendMessageResponse
| การแสดง JSON |
|---|
{
"message": {
object ( |
| ช่อง | |
|---|---|
message |
ข้อความที่ส่ง |
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: หากเป็น "จริง" เครื่องมือจะโต้ตอบกับเอนทิตีภายนอกแบบ "โอเพนเวิลด์" ได้ หากเป็นเท็จ เครื่องมือจะโต้ตอบได้เฉพาะกับเอนทิตีภายในเท่านั้น ตัวอย่างเช่น เครื่องมือค้นเว็บจะเป็นแบบโอเพนเวิลด์ ส่วนเครื่องมือความทรงจำจะไม่ใช่แบบโอเพนเวิลด์
คำแนะนำเกี่ยวกับการทำลาย: ❌ | คำแนะนำเกี่ยวกับนิจพล: ❌ | คำแนะนำเกี่ยวกับแบบอ่านอย่างเดียว: ❌ | คำแนะนำเกี่ยวกับโอเพนเวิลด์: ✅
ขอบเขตการให้สิทธิ์
ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create