Outil : search_messages
Recherche des messages Google Chat à l'aide de mots clés et de filtres, et les renvoie au format Markdown. Fonctionne dans tous les espaces auxquels l'utilisateur a accès, ou peut être limité à une conversation spécifique.
Suivez ces conseils pour décider d'utiliser search_messages ou d'autres outils de recherche ou de lecture :
- Utilisez
search_messageslorsque vous recherchez un contenu de message, des mots clés, des mentions, des liens, des expéditeurs ou des messages non lus spécifiques, potentiellement dans plusieurs espaces ou sans ID de conversation connu. - Utilisez
list_messageslorsque vous connaissez l'ID de l'espace ou du fil de discussion spécifique et que vous souhaitez lire les messages de manière séquentielle par ordre chronologique. - Utilisez
search_conversationspour rechercher des métadonnées d'espace, telles que des ID de conversation, par nom à afficher de l'espace ou par participant (la recherche ne porte que sur les métadonnées, pas sur le contenu des messages).
Si searchParameters est fourni sans filtres spécifiques, les messages récents de toutes les conversations accessibles à l'utilisateur sont renvoyés.
L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP search_messages.
| Requête 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 MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schéma d'entrée
SearchMessagesRequest
| Représentation JSON |
|---|
{
"searchParameters": {
object ( |
| Champs | |
|---|---|
searchParameters |
Obligatoire. Paramètres de recherche à utiliser pour la recherche. |
pageSize |
Facultatif. Nombre maximal de résultats à renvoyer (jusqu'à 100). Si aucune valeur n'est spécifiée, 25 résultats au maximum sont renvoyés. |
pageToken |
Facultatif. Jeton de page reçu d'un appel |
SearchParameters
| Représentation JSON |
|---|
{
"keywords": [
string
],
"conversationId": string,
"sender": string,
"isUnread": boolean,
"hasLink": boolean,
"startTime": string,
"endTime": string,
"mentionsMe": boolean,
"conversationIncludesUser": string,
"spaceDisplayNames": [
string
],
"conversationTypes": [
enum ( |
| Champs | |
|---|---|
keywords[] |
Facultatif. Ensemble de mots clés utilisés pour filtrer les résultats. |
conversationId |
Facultatif. Limite la recherche à un identifiant de conversation spécifique, tel que renvoyé par l'outil search_conversations. Format : |
sender |
Facultatif. Filtrer les messages d'un utilisateur spécifique. Vous pouvez utiliser l'adresse e-mail ou le nom de ressource de l'expéditeur. Les noms de ressources utilisateur sont au format |
isUnread |
Facultatif. Filtre les messages qui n'ont pas été lus par l'utilisateur appelant. |
hasLink |
Facultatif. Filtrer les messages contenant au moins une URL. |
startTime |
Facultatif. Filtrer les messages créés après cette date. Format : code temporel ISO 8601. |
endTime |
Facultatif. Filtrez les messages créés avant cette date. Format : code temporel ISO 8601. |
mentionsMe |
Facultatif. Filtre les messages qui mentionnent explicitement l'utilisateur appelant. |
conversationIncludesUser |
Facultatif. Filtrer les messages dans les MP et les chats de groupe qui incluent l'adresse e-mail ou l'ID d'un utilisateur spécifique. |
spaceDisplayNames[] |
Facultatif. Filtrer par liste de noms d'espaces. Les noms à afficher des espaces sont partiellement mis en correspondance. Remarque : Seules les cinq meilleures correspondances sont renvoyées. |
conversationTypes[] |
Facultatif. Filtrer par type de conversation. |
hasAttachment |
Facultatif. Filtrer les messages contenant au moins une pièce jointe. Remarque : Ce champ est en cours de développement et n'est peut-être pas encore compatible avec tous les environnements. |
ConversationType
Définit le type de conversation.
| Enums | |
|---|---|
CONVERSATION_TYPE_UNSPECIFIED |
Non spécifié. |
NAMED_SPACE |
Un espace nommé. |
GROUP_CHAT |
Un chat de groupe entre trois personnes ou plus. |
DIRECT_MESSAGE |
Message privé entre deux personnes, ou entre une personne et une application Chat. |
Schéma de sortie
Réponse à la recherche de messages Google Chat. Si next_page_token est renseigné, SearchMessages peut être appelé à nouveau avec ce jeton pour récupérer la page de résultats suivante.
SearchMessagesResponse
| Représentation JSON |
|---|
{
"messages": [
{
object ( |
| Champs | |
|---|---|
messages[] |
Liste des objets de message correspondant aux critères de recherche. |
nextPageToken |
Jeton pouvant être envoyé en tant que |
ChatMessage
| Représentation JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Champs | |
|---|---|
messageId |
Nom de ressource du message. Format : spaces/{space}/messages/{message} |
threadId |
Fil de discussion auquel ce message appartient. Ce champ sera vide si le message n'est pas organisé en fil de discussion. Format : spaces/{space}/threads/{thread} |
plaintextBody |
Corps du message au format Markdown. |
sender |
L'expéditeur du message. |
createTime |
Uniquement en sortie. Horodatage de la création du message. Format : code temporel ISO 8601. |
threadedReply |
Indique si le message est une réponse à un fil de discussion. |
attachments[] |
Pièces jointes incluses dans le message. |
reactionSummaries[] |
Résumé des réactions emoji incluses dans le message. |
quotedMessageMetadata |
Uniquement en sortie. Informations sur un message d'origine cité ou transféré dans ce message. Remarque : Ce champ est en cours de développement et n'est peut-être pas encore présent dans tous les environnements. |
Utilisateur
| Représentation JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Champs | |
|---|---|
userId |
Nom de ressource d'un utilisateur Chat. Format : users/{user}. |
displayName |
Nom à afficher d'un utilisateur Chat. |
email |
Adresse e-mail de l'utilisateur. Ce champ n'est renseigné que lorsque le type d'utilisateur est HUMAN. |
userType |
Type de l'utilisateur. |
ChatAttachmentMetadata
| Représentation JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Champs | |
|---|---|
attachmentId |
Nom de ressource de la pièce jointe. Format : spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Nom de la pièce jointe. |
mimeType |
Type de contenu (type MIME). |
source |
Source de la pièce jointe. |
driveFileId |
Uniquement en sortie. ID du fichier Google Drive. Ce champ n'est renseigné que si la source est DRIVE_FILE. À utiliser avec le MCP Google Drive. |
ReactionSummary
| Représentation JSON |
|---|
{ "emoji": string, "count": integer } |
| Champs | |
|---|---|
emoji |
Chaîne Unicode de l'emoji ou nom de l'emoji personnalisé. |
count |
Nombre total de réactions utilisant l'emoji associé. |
QuotedMessageMetadata
| Représentation JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Champs | |
|---|---|
messageId |
Uniquement en sortie. Nom de ressource du message d'origine cité ou transféré. Format : spaces/{space}/messages/{message} |
lastUpdateTime |
Uniquement en sortie. Code temporel de la création ou de la dernière mise à jour du message d'origine avant qu'il ne soit cité ou transféré. Format : code temporel ISO 8601. |
quoteType |
Uniquement en sortie. Type de devis. |
plaintextBody |
Uniquement en sortie. Instantané du corps du texte du message d'origine au moment de la citation ou du transfert. Formaté à l'aide de Markdown pour |
sender |
Uniquement en sortie. Nom à afficher de l'auteur du message d'origine. |
attachments[] |
Uniquement en sortie. Pièces jointes incluses dans le message d'origine. Renseigné uniquement pour le type de devis |
forwardedMetadata |
Uniquement en sortie. Métadonnées sur la conversation source du message transféré. Renseigné uniquement pour le type de devis |
ForwardedMetadata
| Représentation JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Champs | |
|---|---|
conversationId |
Uniquement en sortie. Nom de ressource de la conversation source. Format : spaces/{space} |
conversationDisplayName |
Uniquement en sortie. Nom à afficher de la conversation source au moment où le message a été transféré. Pour les espaces nommés, il s'agit du nom de l'espace. Pour les messages privés, il s'agit du nom de l'autre participant. Pour les chats de groupe sans nom, il s'agit d'un nom généré à partir des noms des membres. |
UserType
Type d'utilisateur Google Chat.
| Enums | |
|---|---|
USER_TYPE_UNSPECIFIED |
Non spécifié. |
HUMAN |
Utilisateur humain. |
APP |
Utilisateur de l'application. |
Source
Source de la pièce jointe.
| Enums | |
|---|---|
SOURCE_UNSPECIFIED |
Réservé. |
DRIVE_FILE |
Le fichier est un fichier Google Drive. |
UPLOADED_CONTENT |
Le fichier est importé dans Chat. |
QuoteType
Type de citation indiquant si le message est une réponse à une citation ou un message transféré.
| Enums | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Réservé. Type de devis non défini. |
REPLY |
Le message est une réponse citant un message d'origine dans le même fil de discussion. |
FORWARD |
Le message est transféré à partir d'un message d'origine dans une autre conversation ou d'un autre fil de discussion dans la même conversation. |
Annotations d'outils
Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients considèrent ces indications comme non fiables, mais elles peuvent être utilisées pour décider quand envoyer une invite de confirmation à un utilisateur.
En plus de la chaîne de titre, les indices booléens suivants sont définis comme suit :
readOnlyHint: si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".destructiveHint: si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".idempotentHint: si la valeur est "true", l'appel répété de l'outil avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".openWorldHint: si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche sur le Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Indice "Destructive" : ❌ | Indice "Idempotent" : ✅ | Indice "Read Only" : ✅ | Indice "Open World" : ❌
Champs d'application des autorisations
Nécessite l'un des champs d'application OAuth suivants :
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