Herramienta: list_messages
Recupera mensajes de una conversación de Google Chat especificada (espacio, mensaje directo [MD] o MD grupal) en formato Markdown. Permite filtrar por conversación, período y cantidad de mensajes. Además, se puede recuperar la siguiente página de mensajes para obtener más contexto. Se filtran los mensajes privados (mensajes visibles solo para un usuario).
En la siguiente muestra de código, se indica cómo usar curl para llamar a la herramienta de MCP list_messages.
| Solicitud de 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": "list_messages", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
ListChatMessagesRequest
| Representación JSON |
|---|
{ "conversationId": string, "threadId": string, "pageSize": integer, "pageToken": string, "startTime": string, "endTime": string } |
| Campos | |
|---|---|
conversationId |
Obligatorio. Es el ID de la conversación. Una conversación puede ser un espacio, un mensaje directo (MD) o un MD o chat grupal. Formato: spaces/{space} |
threadId |
Opcional. Es el ID de un hilo específico dentro de la conversación. Si se proporciona, solo se devolverán los mensajes de esta conversación. Si se omite, se consideran los mensajes de todos los hilos de la conversación. Formato: spaces/{space}/threads/{thread} |
pageSize |
Opcional. Es la cantidad máxima de mensajes que se devolverán. El servicio puede mostrar menos que este valor. Si no se especifica, el valor predeterminado es 20. El valor máximo es 50. Si usas un valor superior a 50, se cambiará automáticamente a 50. |
pageToken |
Opcional. Es un token de página, recibido desde una llamada a list_messages anterior. Proporciona esto para recuperar la página siguiente. |
startTime |
Opcional. Es la marca de tiempo ISO 8601 para filtrar mensajes. Solo se devolverán los mensajes creados después de esta hora. |
endTime |
Opcional. Es la marca de tiempo ISO 8601 para filtrar mensajes. Solo se devolverán los mensajes creados antes de esta hora. |
Esquema de salida
Es la respuesta que contiene la lista de mensajes de la conversación solicitada.
ListChatMessagesResponse
| Representación JSON |
|---|
{
"messages": [
{
object ( |
| Campos | |
|---|---|
messages[] |
Es la lista de mensajes recuperados, en orden cronológico inverso (el más reciente primero). |
nextPageToken |
Es un token que se puede enviar como |
ChatMessage
| Representación JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Campos | |
|---|---|
messageId |
Es el nombre del recurso del mensaje. Formato: spaces/{space}/messages/{message} |
threadId |
Es la conversación a la que pertenece este mensaje. Este campo estará vacío si el mensaje no está en un hilo. Formato: spaces/{space}/threads/{thread} |
plaintextBody |
Es el cuerpo del mensaje con formato de Markdown. |
sender |
Es el remitente del mensaje. |
createTime |
Solo salida. Es la marca de tiempo de cuando se creó el mensaje. Formato: Marca de tiempo ISO 8601. |
threadedReply |
Indica si el mensaje es una respuesta en una conversación. |
attachments[] |
Son los archivos adjuntos que se incluyen en el mensaje. |
reactionSummaries[] |
Es el resumen de las reacciones con emojis que se incluyen en el mensaje. |
quotedMessageMetadata |
Solo salida. Información sobre un mensaje original que se cita o reenvía en este mensaje. Nota: Este campo está en desarrollo y es posible que aún no esté presente en todos los entornos. |
Usuario
| Representación JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Campos | |
|---|---|
userId |
Es el nombre del recurso de un usuario de Chat. Formato: users/{user}. |
displayName |
Es el nombre visible de un usuario de Chat. |
email |
Es la dirección de correo electrónico del usuario. Este campo solo se propaga cuando el tipo de usuario es HUMAN. |
userType |
Es el tipo de usuario. |
ChatAttachmentMetadata
| Representación JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Campos | |
|---|---|
attachmentId |
Es el nombre del recurso del archivo adjunto. Formato: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Nombre del archivo adjunto. |
mimeType |
Tipo de contenido (tipo de MIME) |
source |
Es la fuente del archivo adjunto. |
driveFileId |
Solo salida. Es el ID del archivo de Google Drive. Solo se propaga cuando la fuente es DRIVE_FILE. Se usa con el MCP de Google Drive. |
ReactionSummary
| Representación JSON |
|---|
{ "emoji": string, "count": integer } |
| Campos | |
|---|---|
emoji |
Es la cadena Unicode del emoji o el nombre del emoji personalizado. |
count |
Es la cantidad total de reacciones con el emoji asociado. |
QuotedMessageMetadata
| Representación JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Campos | |
|---|---|
messageId |
Solo salida. Es el nombre del recurso del mensaje original que se cita o reenvía. Formato: spaces/{space}/messages/{message} |
lastUpdateTime |
Solo salida. Es la marca de tiempo de cuando se creó o actualizó por última vez el mensaje original antes de citarlo o reenviarlo. Formato: Marca de tiempo ISO 8601. |
quoteType |
Solo salida. Es el tipo de cotización. |
plaintextBody |
Solo salida. Instantánea del cuerpo del texto del mensaje original en el momento de citarlo o reenviarlo Se aplica el formato de Markdown para |
sender |
Solo salida. Es el nombre visible del autor del mensaje original. |
attachments[] |
Solo salida. Son los archivos adjuntos que formaban parte del mensaje original. Se propaga solo para el tipo de cuota |
forwardedMetadata |
Solo salida. Son los metadatos sobre la conversación de origen del mensaje reenviado. Se propaga solo para el tipo de cuota |
ForwardedMetadata
| Representación JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Campos | |
|---|---|
conversationId |
Solo salida. Es el nombre del recurso de la conversación de origen. Formato: spaces/{space} |
conversationDisplayName |
Solo salida. Es el nombre visible de la conversación de origen en el momento en que se reenvió el mensaje. En el caso de los espacios con nombre, este es el nombre del espacio. En el caso de los mensajes directos 1:1, este es el nombre del otro participante. En el caso de los chats en grupo sin nombre, este es un nombre generado en función de los nombres de los miembros. |
UserType
Es el tipo de usuario de Google Chat.
| Enums | |
|---|---|
USER_TYPE_UNSPECIFIED |
Sin especificar. |
HUMAN |
Usuario humano. |
APP |
Usuario de la app |
Fuente
Es la fuente del archivo adjunto.
| Enums | |
|---|---|
SOURCE_UNSPECIFIED |
Reservados. |
DRIVE_FILE |
El archivo es de Google Drive. |
UPLOADED_CONTENT |
El archivo se subirá a Chat. |
QuoteType
Es el tipo de cita que indica si el mensaje es una respuesta de cita o un mensaje reenviado.
| Enums | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Reservados. Tipo de cita no definido. |
REPLY |
El mensaje es una respuesta con cita a un mensaje original en la misma conversación. |
FORWARD |
El mensaje se reenvía desde un mensaje original en una conversación diferente o desde un hilo diferente en la misma conversación. |
Anotaciones de herramientas
Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se puede enviar un mensaje de confirmación a un usuario.
Junto con la cadena de título, las siguientes sugerencias booleanas se definen de la siguiente manera:
readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.idempotentHint: Si es verdadero, llamar a la herramienta de forma repetida con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.
Sugerencia de destructivo: ❌ | Sugerencia de idempotente: ✅ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌
Alcances de la autorización
Se necesita uno de los siguientes alcances de OAuth:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.readonly