Alat: send_message
Mengirim pesan Google Chat ke percakapan dengan pemformatan Markdown.
Alat ini menggunakan ID percakapan, ID rangkaian pesan opsional, dan teks pesan sebagai input.
ID percakapan dapat ditemukan menggunakan alat search_conversations.
Fungsi ini menampilkan pesan yang dibuat.
Contoh kode berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP send_message.
| Permintaan 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 }' |
Skema Input
SendMessageRequest
| Representasi JSON |
|---|
{ "conversationId": string, "threadId": string, "messageText": string, "cards": [ { object } ], "inlineCitations": [ { object ( |
| Kolom | |
|---|---|
conversationId |
Wajib. ID percakapan (misalnya, 'spaces/AAAA...') yang akan dikirimi pesan. |
threadId |
Opsional. ID rangkaian pesan (misalnya, 'spaces/AAAA.../threads/BBBB...') untuk mengirim pesan. Jika tidak ditetapkan, pesan akan dikirim ke rangkaian pesan baru. |
messageText |
Wajib. Konten utama pesan. Pemformatan dapat ditambahkan menggunakan Markdown standar (perhatikan bahwa tabel TIDAK didukung). Pemformatan berikut didukung:
|
cards[] |
Opsional. Kartu yang dilampirkan ke pesan. Ukuran maksimum adalah 32 KB per kartu. Setiap kartu direpresentasikan sebagai struct JSON yang mengikuti format Kartu Google Chat (Kartu UIKit Google Workspace/Kartu v2). Untuk melampirkan kartu ke pesan, aplikasi Chat harus menjadi anggota ruang. Identifikasi kartu:
|
inlineCitations[] |
Opsional. Kutipan dalam respons yang dirujuk dalam |
footerCitedSources[] |
Opsional. Sumber kutipan tingkat atas ditampilkan sebagai kartu referensi di bagian bawah (footer) pesan. Maksimum 50 sumber kutipan diizinkan secara total di semua kutipan inline dan sumber footer dalam sebuah pesan. |
Struct
| Representasi JSON |
|---|
{ "fields": { string: value, ... } } |
| Kolom | |
|---|---|
fields |
Peta nilai yang diketik secara dinamis dan tidak berurutan. Objek yang berisi daftar pasangan |
FieldsEntry
| Representasi JSON |
|---|
{ "key": string, "value": value } |
| Kolom | |
|---|---|
key |
|
value |
|
Nilai
| Representasi JSON |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| Kolom | |
|---|---|
Kolom union kind. Jenis nilai. kind hanya dapat berupa salah satu dari berikut: |
|
nullValue |
Merepresentasikan |
numberValue |
Mewakili angka JSON. Tidak boleh |
stringValue |
Mewakili string JSON. |
boolValue |
Merepresentasikan boolean JSON (literal |
structValue |
Mewakili objek JSON. |
listValue |
Mewakili array JSON. |
ListValue
| Representasi JSON |
|---|
{ "values": [ value ] } |
| Kolom | |
|---|---|
values[] |
Kolom berulang dari nilai yang diketik secara dinamis. |
Pengutipan
| Representasi JSON |
|---|
{
"id": string,
"citedSources": [
{
object ( |
| Kolom | |
|---|---|
id |
Wajib. ID unik yang cocok dengan atribut |
citedSources[] |
Wajib. Satu atau beberapa sumber yang dilampirkan ke kartu informasi kutipan ini. Maksimum 50 sumber kutipan diizinkan secara total di semua kutipan inline dan sumber footer dalam sebuah pesan. |
CitedSource
| Representasi JSON |
|---|
{ "title": string, "url": string, "snippet": string, "imageUrl": string, "footer": string } |
| Kolom | |
|---|---|
title |
Wajib. Judul teks biasa dari sumber (misalnya, "Program Pratinjau Developer Google Workspace"). Pemformatan Markdown tidak didukung dalam judul. |
url |
Wajib. URL referensi yang dikutip (harus berupa URL http:// atau https:// yang valid, misalnya, "https://developers.google.com/workspace/preview"). |
snippet |
Opsional. Kutipan atau cuplikan singkat langsung dari sumbernya. Ditampilkan di kartu informasi atau footer. Hanya teks biasa. Panjang maksimum adalah 1.000 karakter. |
imageUrl |
Opsional. URL thumbnail pratinjau gambar (harus menggunakan URL https://). |
footer |
Opsional. Teks atribusi tambahan yang ditampilkan di footer kartu (misalnya, nama domain "developers.google.com" atau nama penulis/organisasi). |
NullValue
Merepresentasikan null JSON.
NullValue adalah sentinel, yang menggunakan enum dengan hanya satu nilai untuk merepresentasikan nilai null untuk gabungan jenis Value.
Kolom jenis NullValue dengan nilai selain 0 dianggap tidak valid. Sebagian besar serializer ProtoJSON akan memunculkan Value dengan null_value yang ditetapkan sebagai null JSON, terlepas dari nilai bilangan bulatnya, sehingga akan melakukan perjalanan pulang pergi ke nilai 0.
| Enum | |
|---|---|
NULL_VALUE |
Nilai null. |
Skema Output
Respons terhadap pengiriman pesan ke percakapan Google Chat.
SendMessageResponse
| Representasi JSON |
|---|
{
"message": {
object ( |
| Kolom | |
|---|---|
message |
Pesan yang dikirim. |
ChatMessage
| Representasi JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Kolom | |
|---|---|
messageId |
Nama resource pesan. Format: spaces/{space}/messages/{message} |
threadId |
Rangkaian pesan yang menyertakan pesan ini. Kolom ini akan kosong jika pesan tidak diurutkan dalam rangkaian pesan. Format: spaces/{space}/threads/{thread} |
plaintextBody |
Isi teks pesan menggunakan pemformatan Markdown. |
sender |
Pengirim pesan. |
createTime |
Hanya output. Stempel waktu saat pesan dibuat. Format: Stempel waktu ISO 8601. |
threadedReply |
Apakah pesan merupakan balasan rangkaian pesan. |
attachments[] |
Lampiran yang disertakan dalam pesan. |
reactionSummaries[] |
Ringkasan reaksi emoji yang disertakan dalam pesan. |
quotedMessageMetadata |
Hanya output. Informasi tentang pesan asli yang dikutip atau diteruskan dalam pesan ini. Catatan: Kolom ini sedang dalam pengembangan dan mungkin belum ada di semua lingkungan. |
Pengguna
| Representasi JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Kolom | |
|---|---|
userId |
Nama resource pengguna Chat. Format: users/{user}. |
displayName |
Nama tampilan pengguna Chat. |
email |
Alamat email pengguna. Kolom ini hanya diisi jika jenis pengguna adalah HUMAN. |
userType |
Jenis pengguna. |
ChatAttachmentMetadata
| Representasi JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Kolom | |
|---|---|
attachmentId |
Nama resource lampiran. Format: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Nama lampiran. |
mimeType |
Jenis konten (jenis MIME). |
source |
Sumber lampiran. |
driveFileId |
Hanya output. ID untuk file Google Drive. Hanya diisi jika sumbernya adalah DRIVE_FILE. Gunakan dengan MCP Google Drive. |
ReactionSummary
| Representasi JSON |
|---|
{ "emoji": string, "count": integer } |
| Kolom | |
|---|---|
emoji |
String unicode emoji atau nama emoji kustom. |
count |
Jumlah total reaksi yang menggunakan emoji terkait. |
QuotedMessageMetadata
| Representasi JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Kolom | |
|---|---|
messageId |
Hanya output. Nama resource pesan asli yang dikutip atau diteruskan. Format: spaces/{space}/messages/{message} |
lastUpdateTime |
Hanya output. Stempel waktu saat pesan asli dibuat atau terakhir diperbarui sebelum dikutip atau diteruskan. Format: Stempel waktu ISO 8601. |
quoteType |
Hanya output. Jenis kutipan. |
plaintextBody |
Hanya output. Snapshot isi teks pesan asli pada saat mengutip atau meneruskan. Diformat menggunakan Markdown untuk |
sender |
Hanya output. Nama tampilan penulis pesan asli. |
attachments[] |
Hanya output. Lampiran yang merupakan bagian dari pesan asli. Diisi hanya untuk jenis penawaran harga |
forwardedMetadata |
Hanya output. Metadata tentang percakapan sumber pesan yang diteruskan. Hanya diisi untuk jenis penawaran harga |
ForwardedMetadata
| Representasi JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Kolom | |
|---|---|
conversationId |
Hanya output. Nama resource percakapan sumber. Format: spaces/{space} |
conversationDisplayName |
Hanya output. Nama tampilan percakapan sumber pada saat pesan diteruskan. Untuk ruang bernama, ini adalah nama ruang. Untuk pesan langsung personal, ini adalah nama peserta lain. Untuk chat grup tanpa nama, nama ini dibuat berdasarkan nama anggota. |
UserType
Jenis pengguna Google Chat.
| Enum | |
|---|---|
USER_TYPE_UNSPECIFIED |
Tidak ditentukan. |
HUMAN |
Pengguna manusia. |
APP |
Pengguna aplikasi. |
Sumber
Sumber lampiran.
| Enum | |
|---|---|
SOURCE_UNSPECIFIED |
Dilindungi Undang-Undang. |
DRIVE_FILE |
File tersebut adalah file Google Drive. |
UPLOADED_CONTENT |
File diupload ke Chat. |
QuoteType
Jenis kutipan yang menunjukkan apakah pesan tersebut adalah balasan kutipan atau pesan yang diteruskan.
| Enum | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Dilindungi Undang-Undang. Jenis kutipan tidak ditentukan. |
REPLY |
Pesan tersebut adalah balasan kutipan untuk pesan asli dalam rangkaian pesan yang sama. |
FORWARD |
Pesan diteruskan dari pesan asli dalam percakapan yang berbeda, atau dari rangkaian pesan yang berbeda dalam percakapan yang sama. |
Anotasi Alat
Anotasi alat dikirim ke klien MCP untuk menjelaskan risiko dasar alat tertentu. Sebagian besar klien memperlakukan petunjuk ini sebagai tidak tepercaya, tetapi petunjuk tersebut dapat digunakan untuk memutuskan kapan perintah konfirmasi dapat dikirim kepada pengguna.
Bersama dengan string judul, petunjuk boolean berikut ditentukan sebagai berikut:
readOnlyHint: Jika benar, alat tidak akan mengubah lingkungannya. Default: false.destructiveHint: Jika benar, alat dapat melakukan tindakan destruktif. Jika salah (false), alat hanya dapat melakukan tindakan aditif. Default: true.idempotentHint: Jika benar, memanggil alat berulang kali dengan argumen yang sama tidak akan memberikan efek tambahan pada lingkungannya. Default: false.openWorldHint: Jika benar, alat dapat berinteraksi dengan 'open world' entitas eksternal. Jika salah, alat hanya dapat berinteraksi dengan entity internal. Misalnya, alat penelusuran web akan bersifat open world, sedangkan alat memori tidak akan bersifat open world.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ✅
Cakupan Otorisasi
Memerlukan salah satu cakupan OAuth berikut:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create