MCP Tools Reference: chatmcp.googleapis.com

Công cụ: send_message

Gửi tin nhắn trên Google Chat đến một cuộc trò chuyện bằng định dạng Markdown.

Công cụ này sử dụng mã cuộc trò chuyện, mã chuỗi tin nhắn (không bắt buộc) và văn bản tin nhắn làm dữ liệu đầu vào.

Bạn có thể tìm thấy mã cuộc trò chuyện bằng công cụ search_conversations.

Phương thức này trả về tin nhắn đã tạo.

Mã mẫu sau đây cho biết cách sử dụng curl để gọi công cụ MCP send_message.

Yêu cầu 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
}'

Giản đồ đầu vào

SendMessageRequest

Biểu diễn dưới dạng JSON
{
  "conversationId": string,
  "threadId": string,
  "messageText": string,
  "cards": [
    {
      object
    }
  ],
  "inlineCitations": [
    {
      object (Citation)
    }
  ],
  "footerCitedSources": [
    {
      object (CitedSource)
    }
  ]
}
Trường
conversationId

string

Bắt buộc. Mã nhận dạng của cuộc trò chuyện (ví dụ: "spaces/AAAA...") để gửi tin nhắn đến.

threadId

string

Không bắt buộc. Mã nhận dạng của chuỗi tin nhắn (ví dụ: "spaces/AAAA.../threads/BBBB...") để gửi tin nhắn đến. Nếu bạn không đặt, tin nhắn sẽ được gửi đến một chuỗi tin nhắn mới.

messageText

string

Bắt buộc. Nội dung chính của thông báo. Bạn có thể thêm định dạng bằng Markdown chuẩn (lưu ý rằng bảng KHÔNG được hỗ trợ). Các định dạng sau đây được hỗ trợ:

  • Đậm: **text**
  • In nghiêng: *text* hoặc _text_
  • Gạch ngang chữ: ~~text~~
  • Đơn cách: text
  • Khối đơn cách:
```
line 1
line 2
```
  • Danh sách có dấu đầu dòng:
* item 1
* item 2
  • Danh sách theo thứ tự:
1. item 1
2. item 2
  • Khối trích dẫn: > quoted text
  • Siêu liên kết: [label](url)
  • Đề cập đến người dùng: Sử dụng thẻ HTML tự đóng chat-user có thuộc tính data-email="user@example.com" hoặc data-user="users/USER_ID". Ưu tiên thuộc tính data-user có USER_ID nếu biết và quay lại thuộc tính data-email có email của người dùng nếu không biết. Nếu bạn sử dụng thuộc tính data-user, hãy nhớ thêm tiền tố users/ có trong các giá trị trả về khác của công cụ. Lưu ý: Bạn chỉ có thể đề cập tối đa 10 người trong mỗi tin nhắn. Nghiêm cấm việc đề cập đến tất cả người dùng (ví dụ: sử dụng @all hoặc thẻ HTML có users/all).
  • Biểu tượng cảm xúc tuỳ chỉnh: Sử dụng thẻ HTML tự đóng chat-emoji có thuộc tính data-custom-emoji="customEmojis/abc" hoặc data-emoji-name=":xyz:".
  • Trích dẫn: Đặt văn bản được trích dẫn trong thẻ HTML chat-citation có thuộc tính data-id khớp với mã trích dẫn. Nếu thẻ chat-citation có data-id không khớp với bất kỳ Citation.id nào, thì thẻ đó sẽ bị bỏ qua và văn bản được gói sẽ hiển thị dưới dạng văn bản thuần túy. Lưu ý: Mỗi tin nhắn được phép có tối đa 20 trích dẫn cùng dòng.
cards[]

object (Struct format)

Không bắt buộc. Thẻ được đính kèm vào thư. Kích thước tối đa là 32 KB cho mỗi thẻ. Mỗi thẻ được biểu thị dưới dạng một cấu trúc JSON theo định dạng Thẻ Google Chat (Thẻ Google Workspace UIKit/Thẻ phiên bản 2). Để đính kèm thẻ vào tin nhắn, ứng dụng Chat phải là thành viên của không gian. Hình ảnh trong thẻ không được hỗ trợ.

Nhận dạng thẻ:

  • Trường chuỗi name cấp cao nhất trong mỗi thẻ đóng vai trò là giá trị nhận dạng của thẻ đó.
  • Nếu nhiều thẻ được đính kèm vào một thông báo, thì mỗi thẻ PHẢI chỉ định một name duy nhất, không trống.
inlineCitations[]

object (Citation)

Không bắt buộc. Các trích dẫn cùng dòng được tham chiếu trong message_text thông qua thẻ chat-citation. Mỗi tin nhắn được phép có tối đa 20 trích dẫn cùng dòng. Các trích dẫn cùng dòng không được tham chiếu (những trích dẫn không có thẻ chat-citation khớp trong message_text) sẽ bị bỏ qua và không gây ra lỗi xác thực.

footerCitedSources[]

object (CitedSource)

Không bắt buộc. Các nguồn được trích dẫn cấp cao nhất xuất hiện dưới dạng thẻ tham khảo ở cuối (chân trang) của tin nhắn. Bạn chỉ được phép trích dẫn tối đa 50 nguồn trong tất cả các nguồn trích dẫn cùng dòng và nguồn ở chân trang trong một tin nhắn.

Cấu trúc

Biểu diễn dưới dạng JSON
{
  "fields": {
    string: value,
    ...
  }
}
Trường
fields

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

Bản đồ không theo thứ tự của các giá trị được nhập động.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Biểu diễn dưới dạng JSON
{
  "key": string,
  "value": value
}
Trường
key

string

value

value (Value format)

Giá trị

Biểu diễn dưới dạng JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Trường
Trường nhóm kind. Loại giá trị. kind chỉ có thể là một trong những trạng thái sau:
nullValue

null

Đại diện cho một null JSON.

numberValue

number

Biểu thị một số JSON. Không được là NaN, Infinity hoặc -Infinity, vì các giá trị này không được hỗ trợ trong JSON. Điều này cũng không thể biểu thị các giá trị Int64 lớn, vì định dạng JSON thường không hỗ trợ các giá trị này trong kiểu số.

stringValue

string

Biểu thị một chuỗi JSON.

boolValue

boolean

Biểu thị một boolean JSON (true hoặc false giá trị cố định trong JSON).

structValue

object (Struct format)

Đại diện cho một đối tượng JSON.

listValue

array (ListValue format)

Biểu thị một mảng JSON.

ListValue

Biểu diễn dưới dạng JSON
{
  "values": [
    value
  ]
}
Trường
values[]

value (Value format)

Trường lặp lại của các giá trị được nhập động.

Trích dẫn

Biểu diễn dưới dạng JSON
{
  "id": string,
  "citedSources": [
    {
      object (CitedSource)
    }
  ]
}
Trường
id

string

Bắt buộc. Giá trị nhận dạng riêng biệt khớp với thuộc tính data-id trong thẻ chat-citation (ví dụ: gói văn bản được trích dẫn bằng chat-citation và thuộc tính data-id="ID") trong message_text. Chỉ được chứa chữ cái ASCII, chữ số, dấu gạch dưới hoặc dấu gạch nối (1-63 ký tự). Phải là duy nhất trong số tất cả các trích dẫn trong thông báo.

citedSources[]

object (CitedSource)

Bắt buộc. Một hoặc nhiều nguồn được đính kèm vào thẻ di chuột của trích dẫn này. Bạn chỉ được phép trích dẫn tối đa 50 nguồn trong tất cả các nguồn trích dẫn cùng dòng và nguồn ở chân trang trong một tin nhắn.

CitedSource

Biểu diễn dưới dạng JSON
{
  "title": string,
  "url": string,
  "snippet": string,
  "imageUrl": string,
  "footer": string
}
Trường
title

string

Bắt buộc. Tiêu đề dạng văn bản thuần tuý của nguồn (ví dụ: "Chương trình Bản dùng trước cho nhà phát triển của Google Workspace"). Định dạng Markdown không được hỗ trợ trong tiêu đề.

url

string

Bắt buộc. URL của tài nguyên được trích dẫn (phải là URL http:// hoặc https:// hợp lệ, ví dụ: "https://developers.google.com/workspace/preview").

snippet

string

Không bắt buộc. Một đoạn trích hoặc đoạn thông tin ngắn trực tiếp từ nguồn. Hiển thị trong thẻ di chuột hoặc chân trang. Chỉ văn bản thuần tuý. Độ dài tối đa là 1.000 ký tự.

imageUrl

string

Không bắt buộc. URL của hình thu nhỏ xem trước hình ảnh (phải sử dụng URL https://).

footer

string

Không bắt buộc. Văn bản ghi công bổ sung xuất hiện ở chân trang của thẻ (ví dụ: tên miền "developers.google.com" hoặc tên tác giả/tổ chức).

NullValue

Đại diện cho một null JSON.

NullValue là một sentinel, sử dụng enum chỉ có một giá trị để biểu thị giá trị rỗng cho kiểu hợp nhất Value.

Trường thuộc loại NullValue có giá trị khác với 0 được coi là không hợp lệ. Hầu hết các trình chuyển đổi tuần tự ProtoJSON sẽ phát ra một Value có null_value được đặt làm JSON null bất kể giá trị số nguyên, và do đó sẽ khứ hồi thành giá trị 0.

Enum
NULL_VALUE Giá trị rỗng.

Giản đồ đầu ra

Phản hồi khi gửi tin nhắn đến một cuộc trò chuyện trên Google Chat.

SendMessageResponse

Biểu diễn dưới dạng JSON
{
  "message": {
    object (ChatMessage)
  }
}
Trường
message

object (ChatMessage)

Tin nhắn đã được gửi.

ChatMessage

Biểu diễn dưới dạng JSON
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
Trường
messageId

string

Tên tài nguyên của thông báo. Định dạng: spaces/{space}/messages/{message}

threadId

string

Chuỗi tin nhắn chứa tin nhắn này. Trường này sẽ trống nếu tin nhắn không có chuỗi. Định dạng: spaces/{space}/threads/{thread}

plaintextBody

string

Nội dung văn bản của thông báo sử dụng định dạng Markdown.

sender

object (User)

Người gửi tin nhắn.

createTime

string

Chỉ có đầu ra. Dấu thời gian khi tin nhắn được tạo. Định dạng: Dấu thời gian ISO 8601.

threadedReply

boolean

Liệu tin nhắn có phải là tin nhắn trả lời trong chuỗi hay không.

attachments[]

object (ChatAttachmentMetadata)

Tệp đính kèm có trong thư.

reactionSummaries[]

object (ReactionSummary)

Bản tóm tắt về lượt thể hiện cảm xúc bằng emoji có trong thư.

quotedMessageMetadata

object (QuotedMessageMetadata)

Chỉ có đầu ra. Thông tin về tin nhắn gốc được trích dẫn hoặc chuyển tiếp trong tin nhắn này. Lưu ý: Trường này đang được phát triển và có thể chưa có trong một số môi trường.

Người dùng

Biểu diễn dưới dạng JSON
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
Trường
userId

string

Tên tài nguyên của người dùng Chat. Định dạng: users/{user}.

displayName

string

Tên hiển thị của người dùng Chat.

email

string

Địa chỉ email của người dùng. Trường này chỉ được điền sẵn khi loại người dùng là HUMAN.

userType

enum (UserType)

Loại người dùng.

ChatAttachmentMetadata

Biểu diễn dưới dạng JSON
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
Trường
attachmentId

string

Tên tài nguyên của tệp đính kèm. Định dạng: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Tên tệp đính kèm.

mimeType

string

Loại nội dung (loại MIME).

source

enum (Source)

Nguồn của tệp đính kèm.

driveFileId

string

Chỉ có đầu ra. Mã nhận dạng của tệp trên Google Drive. Chỉ được điền sẵn khi nguồn là DRIVE_FILE. Sử dụng với MCP của Google Drive.

ReactionSummary

Biểu diễn dưới dạng JSON
{
  "emoji": string,
  "count": integer
}
Trường
emoji

string

Chuỗi unicode của biểu tượng cảm xúc hoặc tên biểu tượng cảm xúc tuỳ chỉnh.

count

integer

Tổng số lượt bày tỏ cảm xúc bằng biểu tượng cảm xúc liên quan.

QuotedMessageMetadata

Biểu diễn dưới dạng JSON
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
Trường
messageId

string

Chỉ có đầu ra. Tên tài nguyên của tin nhắn gốc được trích dẫn hoặc chuyển tiếp. Định dạng: spaces/{space}/messages/{message}

lastUpdateTime

string

Chỉ có đầu ra. Dấu thời gian khi tin nhắn gốc được tạo hoặc cập nhật lần gần đây nhất trước khi được trích dẫn hoặc chuyển tiếp. Định dạng: Dấu thời gian ISO 8601.

quoteType

enum (QuoteType)

Chỉ có đầu ra. Loại báo giá.

plaintextBody

string

Chỉ có đầu ra. Ảnh chụp nhanh nội dung văn bản của thư gốc tại thời điểm trích dẫn hoặc chuyển tiếp. Được định dạng bằng Markdown cho FORWARD và văn bản thuần túy cho REPLY.

sender

string

Chỉ có đầu ra. Tên hiển thị của tác giả tin nhắn gốc.

attachments[]

object (ChatAttachmentMetadata)

Chỉ có đầu ra. Tệp đính kèm trong thư gốc. Chỉ được điền sẵn cho loại báo giá FORWARD.

forwardedMetadata

object (ForwardedMetadata)

Chỉ có đầu ra. Siêu dữ liệu về cuộc trò chuyện nguồn của tin nhắn được chuyển tiếp. Chỉ được điền sẵn cho loại báo giá FORWARD.

ForwardedMetadata

Biểu diễn dưới dạng JSON
{
  "conversationId": string,
  "conversationDisplayName": string
}
Trường
conversationId

string

Chỉ có đầu ra. Tên tài nguyên của cuộc trò chuyện nguồn. Định dạng: spaces/{space}

conversationDisplayName

string

Chỉ có đầu ra. Tên hiển thị của cuộc trò chuyện gốc tại thời điểm tin nhắn được chuyển tiếp. Đối với không gian có tên, đây là tên không gian. Đối với tin nhắn trực tiếp 1:1, đây là tên của người tham gia còn lại. Đối với cuộc trò chuyện nhóm chưa đặt tên, đây là tên được tạo dựa trên tên của các thành viên.

UserType

Loại người dùng Google Chat.

Enum
USER_TYPE_UNSPECIFIED Không xác định.
HUMAN Người dùng là con người.
APP Người dùng ứng dụng.

Nguồn

Nguồn của tệp đính kèm.

Enum
SOURCE_UNSPECIFIED Đã đặt trước.
DRIVE_FILE Tệp này là tệp trên Google Drive.
UPLOADED_CONTENT Tệp được tải lên Chat.

QuoteType

Loại trích dẫn cho biết tin nhắn là tin nhắn trả lời khi trích dẫn hay tin nhắn được chuyển tiếp.

Enum
QUOTE_TYPE_UNSPECIFIED Đã đặt trước. Loại dấu ngoặc kép không xác định.
REPLY Tin nhắn này là tin nhắn trả lời trích dẫn cho một tin nhắn gốc trong cùng một chuỗi.
FORWARD Tin nhắn được chuyển tiếp từ một tin nhắn gốc trong một cuộc trò chuyện khác hoặc từ một chuỗi tin nhắn khác trong cùng một cuộc trò chuyện.

Chú thích về công cụ

Chú thích về công cụ được gửi đến ứng dụng MCP để mô tả rủi ro cơ bản của một công cụ nhất định. Hầu hết ứng dụng đều coi những gợi ý này là không đáng tin cậy, nhưng có thể dùng chúng để quyết định thời điểm gửi lời nhắc xác nhận cho người dùng.

Cùng với chuỗi tiêu đề, các gợi ý boolean sau đây được xác định như sau:

  • readOnlyHint: Nếu đúng, công cụ sẽ không sửa đổi môi trường của nó. Mặc định: false.
  • destructiveHint: Nếu đúng, thì công cụ có thể thực hiện các hành động có tính huỷ diệt. Nếu là false, thì công cụ chỉ có thể thực hiện các hành động bổ sung. Mặc định: true.
  • idempotentHint: Nếu đúng, thì việc gọi công cụ nhiều lần với cùng một đối số sẽ không có thêm hiệu ứng nào đối với môi trường của công cụ đó. Mặc định: false.
  • openWorldHint: Nếu đúng, thì công cụ này có thể tương tác với "thế giới mở" của các thực thể bên ngoài. Nếu là false, thì công cụ chỉ có thể tương tác với các thực thể nội bộ. Ví dụ: công cụ tìm kiếm trên web sẽ là công cụ thế giới mở, còn công cụ ghi nhớ sẽ không phải là công cụ thế giới mở.

Gợi ý về hành động huỷ diệt: ❌ | Gợi ý về hành động không thay đổi giá trị: ❌ | Gợi ý về hành động chỉ đọc: ❌ | Gợi ý về hành động thế giới mở: ✅

Phạm vi cấp phép

Yêu cầu một trong các phạm vi OAuth sau:

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