MCP Tools Reference: chatmcp.googleapis.com

เครื่องมือ: 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 (Citation)
    }
  ],
  "footerCitedSources": [
    {
      object (CitedSource)
    }
  ]
}
ช่อง
conversationId

string

ต้องระบุ รหัสของการสนทนา (เช่น "spaces/AAAA...") ที่จะส่งข้อความถึง

threadId

string

ไม่บังคับ รหัสของชุดข้อความ (เช่น "spaces/AAAA.../threads/BBBB...") ที่จะส่งข้อความถึง หากไม่ได้ตั้งค่า ระบบจะส่งข้อความไปยังชุดข้อความใหม่

messageText

string

ต้องระบุ เนื้อหาหลักของข้อความ คุณสามารถเพิ่มการจัดรูปแบบได้โดยใช้มาร์กดาวน์มาตรฐาน (โปรดทราบว่าระบบไม่รองรับตาราง) ระบบรองรับการจัดรูปแบบต่อไปนี้

  • ตัวหนา: **text**
  • ตัวเอียง: *text* หรือ _text_
  • ขีดทับ: ~~text~~
  • ความกว้างอักษรขนาดเดียว: text
  • บล็อกความกว้างอักษรขนาดเดียว:
```
line 1
line 2
```
  • รายการสัญลักษณ์หัวข้อย่อย
* item 1
* item 2
  • รายการตามลำดับ:
1. item 1
2. item 2
  • ข้อความที่ยกมา: > quoted text
  • ไฮเปอร์ลิงก์: [label](url)
  • พูดถึงผู้ใช้: ใช้แท็ก HTML แบบปิดตัวเอง chat-user ที่มีแอตทริบิวต์ data-email="user@example.com" หรือ data-user="users/USER_ID" ใช้แอตทริบิวต์ data-user กับ USER_ID หากทราบ และใช้แอตทริบิวต์ data-email กับอีเมลของผู้ใช้แทนในกรณีอื่นๆ หากคุณใช้แอตทริบิวต์ data-user โปรดตรวจสอบว่าได้รวมคำนำหน้า users/ ที่เห็นในค่าที่แสดงผลของเครื่องมืออื่นๆ หมายเหตุ: อนุญาตให้พูดถึงได้สูงสุด 10 ครั้งต่อข้อความ ห้ามพูดถึงผู้ใช้ทั้งหมด (เช่น การใช้ @all หรือแท็ก HTML ที่มี users/all) โดยเด็ดขาด
  • อีโมจิที่กำหนดเอง: ใช้แท็ก HTML แบบปิดตัวเอง chat-emoji ที่มีแอตทริบิวต์ data-custom-emoji="customEmojis/abc" หรือ data-emoji-name=":xyz:"
  • การอ้างอิง: รวมข้อความที่อ้างอิงไว้ในแท็ก HTML chat-citation โดยมีแอตทริบิวต์ data-id ที่ตรงกับรหัสการอ้างอิง หากแท็ก chat-citation มี data-id ที่ไม่ตรงกับ Citation.id ใดๆ ระบบจะไม่สนใจแท็กและแสดงผลข้อความที่รวมไว้เป็นข้อความธรรมดา หมายเหตุ: อนุญาตให้มีการอ้างอิงในบรรทัดได้สูงสุด 20 รายการต่อข้อความ
cards[]

object (Struct format)

ไม่บังคับ การ์ดที่แนบมากับข้อความ ขนาดสูงสุดคือ 32 KB ต่อการ์ด การ์ดแต่ละใบจะแสดงเป็นโครงสร้าง JSON ตามรูปแบบการ์ด Google Chat (การ์ด Google Workspace UIKit / การ์ด v2) หากต้องการแนบการ์ดกับข้อความ แอปใน Chat ต้องเป็นสมาชิกของพื้นที่ทำงาน ระบบไม่รองรับรูปภาพในการ์ด

การระบุบัตร:

  • ช่องสตริง name ระดับบนสุดในการ์ดแต่ละใบจะทำหน้าที่เป็นตัวระบุ
  • หากมีการแนบการ์ดหลายรายการกับข้อความ การ์ดแต่ละรายการต้องระบุ name ที่ไม่ซ้ำกันและไม่เว้นว่าง
inlineCitations[]

object (Citation)

ไม่บังคับ การอ้างอิงในบรรทัดที่อ้างอิงภายใน message_text ผ่านแท็ก chat-citation อนุญาตให้มีการอ้างอิงในบรรทัดได้สูงสุด 20 รายการต่อข้อความ ระบบจะไม่สนใจการอ้างอิงในบรรทัดที่ไม่มีการอ้างอิง (การอ้างอิงที่ไม่มีแท็ก chat-citation ที่ตรงกันใน message_text) และจะไม่ทำให้เกิดข้อผิดพลาดในการตรวจสอบความถูกต้อง

footerCitedSources[]

object (CitedSource)

ไม่บังคับ แหล่งข้อมูลที่อ้างอิงระดับบนสุดจะแสดงเป็นการ์ดข้อมูลอ้างอิงที่ด้านล่าง (ส่วนท้าย) ของข้อความ อนุญาตให้ใช้แหล่งข้อมูลที่อ้างอิงได้สูงสุด 50 รายการในการอ้างอิงในบรรทัดและแหล่งข้อมูลส่วนท้ายทั้งหมดในข้อความ

โครงสร้าง

การแสดง JSON
{
  "fields": {
    string: value,
    ...
  }
}
ช่อง
fields

map (key: string, value: value (Value format))

แมปค่าที่พิมพ์แบบไดนามิกที่ไม่ได้เรียงลำดับ

ออบเจ็กต์ที่มีรายการคู่ "key": value เช่น { "name": "wrench", "mass": "1.3kg", "count": "3" }

FieldsEntry

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

string

value

value (Value format)

ค่า

การแสดง JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
ช่อง
ฟิลด์ Union kind ประเภทของค่า kind ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
nullValue

null

แสดง null ของ JSON

numberValue

number

แสดงตัวเลข JSON ต้องไม่ใช่ NaN, Infinity หรือ -Infinity เนื่องจาก JSON ไม่รองรับค่าเหล่านี้ นอกจากนี้ยังไม่สามารถแสดงค่า Int64 ขนาดใหญ่ได้ เนื่องจากโดยทั่วไปแล้วรูปแบบ JSON ไม่รองรับค่าดังกล่าวในประเภทตัวเลข

stringValue

string

แสดงสตริง JSON

boolValue

boolean

แสดงบูลีน JSON (true หรือ false ตามตัวอักษรใน JSON)

structValue

object (Struct format)

แสดงออบเจ็กต์ JSON

listValue

array (ListValue format)

แสดงอาร์เรย์ JSON

ListValue

การแสดง JSON
{
  "values": [
    value
  ]
}
ช่อง
values[]

value (Value format)

ฟิลด์ที่ซ้ำได้ของค่าที่พิมพ์แบบไดนามิก

การอ้างอิง

การแสดง JSON
{
  "id": string,
  "citedSources": [
    {
      object (CitedSource)
    }
  ]
}
ช่อง
id

string

ต้องระบุ ตัวระบุที่ไม่ซ้ำกันซึ่งตรงกับแอตทริบิวต์ data-id ในแท็ก chat-citation (เช่น การรวมข้อความที่อ้างอิงด้วย chat-citation และแอตทริบิวต์ data-id="ID") ใน message_text ต้องประกอบด้วยตัวอักษร ASCII, ตัวเลข, ขีดล่าง หรือขีดกลางเท่านั้น (1-63 อักขระ) ต้องไม่ซ้ำกันในการอ้างอิงทั้งหมดในข้อความ

citedSources[]

object (CitedSource)

ต้องระบุ แหล่งข้อมูลอย่างน้อย 1 แหล่งที่แนบมากับโฮเวอร์การ์ดการอ้างอิงนี้ อนุญาตให้มีแหล่งข้อมูลที่อ้างอิงได้สูงสุด 50 แหล่งในการอ้างอิงในบรรทัดและแหล่งข้อมูลในส่วนท้ายทั้งหมดในข้อความ

CitedSource

การแสดง JSON
{
  "title": string,
  "url": string,
  "snippet": string,
  "imageUrl": string,
  "footer": string
}
ช่อง
title

string

ต้องระบุ ชื่อข้อความธรรมดาของแหล่งที่มา (เช่น "โปรแกรมเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ Google Workspace") ชื่อไม่รองรับการจัดรูปแบบมาร์กดาวน์

url

string

ต้องระบุ URL ของแหล่งข้อมูลที่อ้างอิง (ต้องเป็น URL http:// หรือ https:// ที่ถูกต้อง เช่น "https://developers.google.com/workspace/preview")

snippet

string

ไม่บังคับ ข้อความที่ตัดตอนมาสั้นๆ หรือตัวอย่างข้อมูลจากแหล่งที่มาโดยตรง แสดงในโฮเวอร์การ์ดหรือส่วนท้าย ข้อความธรรมดาเท่านั้น ความยาวสูงสุด 1,000 อักขระ

imageUrl

string

ไม่บังคับ URL ของภาพขนาดย่อตัวอย่างรูปภาพ (ต้องใช้ URL ที่ขึ้นต้นด้วย https://)

footer

string

ไม่บังคับ ข้อความแสดงแหล่งที่มาเพิ่มเติมที่แสดงในส่วนท้ายของการ์ด (เช่น ชื่อโดเมน "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 (ChatMessage)
  }
}
ช่อง
message

object (ChatMessage)

ข้อความที่ส่ง

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

คำแนะนำเกี่ยวกับการทำลาย: ❌ | คำแนะนำเกี่ยวกับนิจพล: ❌ | คำแนะนำเกี่ยวกับแบบอ่านอย่างเดียว: ❌ | คำแนะนำเกี่ยวกับโอเพนเวิลด์: ✅

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

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

  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.create