Alat: search_messages
Menelusuri pesan Google Chat menggunakan kata kunci dan filter yang menampilkannya dalam format Markdown. Berfungsi di semua ruang yang dapat diakses pengguna, atau dapat dicakup ke percakapan tertentu.
Ikuti panduan ini saat memutuskan untuk menggunakan search_messages vs. alat penelusuran atau baca lainnya:
- Gunakan
search_messagessaat mencari konten pesan, kata kunci, sebutan, link, pengirim, atau pesan belum dibaca tertentu yang berpotensi ada di beberapa ruang atau tanpa ID percakapan yang diketahui. - Gunakan
list_messagesjika Anda mengetahui ID ruang atau rangkaian pesan tertentu dan ingin membaca pesan secara berurutan dalam urutan kronologis. - Gunakan
search_conversationsuntuk menemukan metadata ruang seperti ID percakapan menurut nama tampilan ruang atau peserta (hanya menelusuri metadata, bukan konten pesan).
Jika searchParameters diberikan tanpa filter tertentu, pesan terbaru di seluruh percakapan yang dapat diakses oleh pengguna akan ditampilkan.
Contoh kode berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP search_messages.
| 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": "search_messages", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Skema Input
SearchMessagesRequest
| Representasi JSON |
|---|
{
"searchParameters": {
object ( |
| Kolom | |
|---|---|
searchParameters |
Wajib. Parameter penelusuran yang akan digunakan untuk penelusuran. |
pageSize |
Opsional. Jumlah hasil maksimum yang akan ditampilkan (maksimal hingga 100). Jika tidak ditentukan, paling banyak 25 yang ditampilkan. |
pageToken |
Opsional. Token halaman, yang diterima dari panggilan |
SearchParameters
| Representasi JSON |
|---|
{ "keywords": [ string ], "conversationId": string, "sender": string, "isUnread": boolean, "hasLink": boolean, "startTime": string, "endTime": string, "mentionsMe": boolean, "conversationIncludesUser": string, "spaceDisplayNames": [ string ] } |
| Kolom | |
|---|---|
keywords[] |
Opsional. Kumpulan kata kunci yang digunakan untuk memfilter hasil. |
conversationId |
Opsional. Mencakup penelusuran ke ID percakapan tertentu, seperti yang ditampilkan dari alat search_conversations. Format: |
sender |
Opsional. Memfilter pesan dari pengguna tertentu. Email atau nama resource pengirim dapat digunakan. Nama resource pengguna diformat sebagai |
isUnread |
Opsional. Filter untuk pesan yang belum dibaca oleh pengguna yang memanggil. |
hasLink |
Opsional. Memfilter pesan yang berisi setidaknya satu URL. |
startTime |
Opsional. Filter untuk pesan yang dibuat setelah waktu ini. Format: Stempel waktu ISO 8601. |
endTime |
Opsional. Filter untuk pesan yang dibuat sebelum waktu ini. Format: Stempel waktu ISO 8601. |
mentionsMe |
Opsional. Memfilter pesan yang secara eksplisit menyebutkan pengguna yang memanggil. |
conversationIncludesUser |
Opsional. Memfilter pesan di DM dan chat grup yang menyertakan email atau ID pengguna tertentu. |
spaceDisplayNames[] |
Opsional. Aware2: Filter menurut daftar nama ruang; nama tampilan ruang dicocokkan sebagian. Catatan: Hanya 5 hasil teratas yang ditampilkan. |
Skema Output
Respons untuk menelusuri pesan Google Chat. Jika next_page_token diisi, SearchMessages dapat dipanggil lagi dengan token tersebut untuk mengambil halaman hasil berikutnya.
SearchMessagesResponse
| Representasi JSON |
|---|
{
"messages": [
{
object ( |
| Kolom | |
|---|---|
messages[] |
Daftar objek pesan yang cocok dengan kriteria penelusuran. |
nextPageToken |
Token yang dapat dikirim sebagai |
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 dikelompokkan 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. |
threadedReply |
Apakah pesan adalah balasan rangkaian pesan. |
attachments[] |
Lampiran disertakan dalam pesan. |
reactionSummaries[] |
Ringkasan reaksi emoji yang disertakan dalam pesan. |
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. |
ReactionSummary
| Representasi JSON |
|---|
{ "emoji": string, "count": integer } |
| Kolom | |
|---|---|
emoji |
String unicode emoji atau nama emoji kustom. |
count |
Jumlah total reaksi menggunakan emoji terkait. |
UserType
Jenis pengguna Google Chat.
| Enum | |
|---|---|
USER_TYPE_UNSPECIFIED |
Tidak ditentukan. |
HUMAN |
Pengguna manusia. |
APP |
Pengguna aplikasi. |
Sumber
Sumber lampiran.
| Enum | |
|---|---|
SOURCE_UNSPECIFIED |
Dipesan. |
DRIVE_FILE |
File adalah file Google Drive. |
UPLOADED_CONTENT |
File diupload ke Chat. |
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 ini dapat digunakan untuk memutuskan kapan perintah konfirmasi dapat dikirim kepada pengguna.
Selain 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 merusak. Jika salah (false), alat hanya dapat melakukan tindakan tambahan. Default: true.idempotentHint: Jika benar (true), memanggil alat berulang kali dengan argumen yang sama tidak akan memberikan efek tambahan pada lingkungannya. Default: false.openWorldHint: Jika benar, alat dapat berinteraksi dengan 'dunia terbuka' entitas eksternal. Jika salah (false), alat hanya dapat berinteraksi dengan entitas internal. Misalnya, alat penelusuran web akan menjadi open world, sedangkan alat memori tidak akan menjadi open world.
Petunjuk Destruktif: ❌ | Petunjuk Idempoten: ✅ | Petunjuk Hanya Baca: ✅ | Petunjuk Dunia Terbuka: ❌
Cakupan Otorisasi
Memerlukan salah satu cakupan OAuth berikut:
https://www.googleapis.com/auth/chat.messages.readonlyhttps://www.googleapis.com/auth/chat.spaces.readonlyhttps://www.googleapis.com/auth/chat.memberships.readonlyhttps://www.googleapis.com/auth/chat.users.readstate.readonly