MCP Tools Reference: chatmcp.googleapis.com

Tool: list_messages

Retrieves messages from a specified Google Chat conversation (Space, direct message (DM) or group DM). Allows filtering by thread, time range, and number of messages. Additionally, the next page of messages can be retrieved to allow for more context. Private messages (messages only visible to a single user) are filtered out.

The following sample demonstrate how to use curl to invoke the list_messages MCP tool.

Curl Request
curl  
--location  
 'https://chatmcp.googleapis.com/mcp' 
  
 \ 
--header  
 'content-type: application/json' 
  
 \ 
--header  
 'accept: application/json, text/event-stream' 
  
 \ 
--data  
 '{ 
 "method": "tools/call", 
 "params": { 
 "name": "list_messages", 
 "arguments": { 
 // provide these details according to the tool MCP specification 
 } 
 }, 
 "jsonrpc": "2.0", 
 "id": 1 
 }' 
  

Input Schema

Request message for ListMessages RPC.

ListChatMessagesRequest

JSON representation
 { 
 "conversationId" 
 : 
 string 
 , 
 "threadId" 
 : 
 string 
 , 
 "pageSize" 
 : 
 integer 
 , 
 "pageToken" 
 : 
 string 
 , 
 "startTime" 
 : 
 string 
 , 
 "endTime" 
 : 
 string 
 } 
Fields
conversationId

string

Required. The ID of the conversation. A conversation can either be a space, direct message (DM) or group DM/Chat. Format: spaces/{space}

threadId

string

Optional. The ID of a specific thread within the conversation. If provided, only messages from this thread will be returned. If omitted, messages from all threads in the conversation are considered. Format: spaces/{space}/threads/{thread}

pageSize

integer

Optional. The maximum number of messages to return. The service may return fewer than this value. If unspecified, defaults to 20. The maximum allowed value is 50.

pageToken

string

Optional. A page token, received from a previous list_messages call. Provide this to retrieve the subsequent page.

startTime

string

Optional. ISO 8601 timestamp to filter messages. Only messages created after this time will be returned.

endTime

string

Optional. ISO 8601 timestamp to filter messages. Only messages created before this time will be returned.

Output Schema

Response message for ListMessages RPC.

ListChatMessagesResponse

JSON representation
 { 
 "messages" 
 : 
 [ 
 { 
 object (  ChatMessage 
 
) 
 } 
 ] 
 , 
 "nextPageToken" 
 : 
 string 
 } 
Fields
messages[]

object ( ChatMessage )

List of messages retrieved, in reverse chronological order (newest first).

nextPageToken

string

A token, which can be sent as page_token in a subsequent ListMessagesRequest to retrieve the next page of messages. If this field is empty, there are no more pages.

ChatMessage

JSON representation
 { 
 "messageId" 
 : 
 string 
 , 
 "threadId" 
 : 
 string 
 , 
 "plaintextBody" 
 : 
 string 
 , 
 "sender" 
 : 
 { 
 object (  User 
 
) 
 } 
 , 
 "createTime" 
 : 
 string 
 , 
 "threadedReply" 
 : 
 boolean 
 , 
 "attachments" 
 : 
 [ 
 { 
 object (  ChatAttachmentMetadata 
 
) 
 } 
 ] 
 , 
 "reactionSummaries" 
 : 
 [ 
 { 
 object (  ReactionSummary 
 
) 
 } 
 ] 
 } 
Fields
messageId

string

Resource name of the message. Format: spaces/{space}/messages/{message}

threadId

string

The thread this message belongs to. This will be empty if the message is unthreaded. Format: spaces/{space}/threads/{thread}

plaintextBody

string

Plain text body of the message.

sender

object ( User )

The sender of the message.

createTime

string

Output only. Timestamp when the message was created.

threadedReply

boolean

Whether message is a thread reply.

attachments[]

object ( ChatAttachmentMetadata )

Attachments included in the message.

reactionSummaries[]

object ( ReactionSummary )

The emoji reactions summary included in the message.

User

JSON representation
 { 
 "userId" 
 : 
 string 
 , 
 "displayName" 
 : 
 string 
 , 
 "email" 
 : 
 string 
 , 
 "userType" 
 : 
 enum ( UserType 
) 
 } 
Fields
userId

string

Resource name of a Chat user. Format: users/{user}.

displayName

string

The display name of a Chat user.

email

string

The email address of the user. This field is only populated when the user type is HUMAN.

userType

enum ( UserType )

The type of the user.

JSON representation
 { 
 "attachmentId" 
 : 
 string 
 , 
 "filename" 
 : 
 string 
 , 
 "mimeType" 
 : 
 string 
 , 
 "source" 
 : 
 enum ( Source 
) 
 } 
Fields
attachmentId

string

Resource name of the attachment. Format: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Name of the attachment.

mimeType

string

Content type (MIME type).

source

enum ( Source )

The source of the attachment.

ReactionSummary

JSON representation
 { 
 "emoji" 
 : 
 string 
 , 
 "count" 
 : 
 integer 
 } 
Fields
emoji

string

The emoji unicode string or custom emoji name.

count

integer

The total number of reactions using the associated emoji.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌

Create a Mobile Website
View Site in Mobile | Classic
Share by: