Outil : search_messages
Recherchez des messages Google Chat à l'aide de mots clés et de filtres, et renvoyez-les 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 du contenu de message spécifique, des mots clés, des mentions, des liens, des expéditeurs ou des messages non lus 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 trouver des métadonnées d'espace telles que les ID de conversation par nom à afficher de l'espace ou par participants (la recherche ne porte que sur les métadonnées, et non 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 (100 maximum). Si aucune valeur n'est spécifiée, 25 éléments 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. Limitez la recherche à un identifiant de conversation spécifique, tel qu'il est 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. Filtrez 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 heure. Format : code temporel ISO 8601. |
endTime |
Facultatif. Filtrez les messages créés avant cette heure. Format : code temporel ISO 8601. |
mentionsMe |
Facultatif. Filtrez les messages qui mentionnent explicitement l'utilisateur appelant. |
conversationIncludesUser |
Facultatif. Filtrez les messages dans les MP et les discussions de groupe qui incluent l'adresse e-mail ou l'ID de l'utilisateur spécifique. |
spaceDisplayNames[] |
Facultatif. Filtrer par une liste de noms d'espaces ; les noms d'affichage des espaces sont partiellement mis en correspondance. Remarque : Seuls les cinq premiers résultats sont renvoyés. |
conversationTypes[] |
Facultatif. Filtrez par type de conversation. |
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é, l'appel SearchMessages peut être effectué à 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 appartient ce message. Il sera vide si le message n'est pas associé à un fil de discussion. Format : spaces/{space}/threads/{thread} |
plaintextBody |
Corps du message au format Markdown. |
sender |
Expéditeur du message. |
createTime |
Uniquement en sortie. Code temporel de création du message. |
threadedReply |
Indique si le message est une réponse dans un fil de discussion. |
attachments[] |
Pièces jointes incluses dans le message. |
reactionSummaries[] |
Récapitulatif des réactions emoji inclus dans le message. |
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 d'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. |
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 avec l'emoji associé. |
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. |
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 traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.
En plus de la chaîne de titre, les indications booléennes suivantes sont définies 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", appeler l'outil à plusieurs reprises 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 Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Indication destructive : ❌ | Indication d'idempotence : ✅ | Indication de lecture seule : ✅ | Indication de monde ouvert : ❌
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