MCP Tools Reference: chatmcp.googleapis.com

Outil : send_message

Envoie un message Google Chat à une conversation avec une mise en forme Markdown.

Cet outil utilise un ID de conversation, un ID de fil de discussion facultatif et un texte de message comme entrées.

Vous pouvez trouver les ID de conversation à l'aide de l'outil search_conversations.

Elle renvoie le message créé.

L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP send_message.

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": "send_message",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schéma d'entrée

SendMessageRequest

Représentation JSON
{
  "conversationId": string,
  "threadId": string,
  "messageText": string,
  "cards": [
    {
      object
    }
  ],
  "inlineCitations": [
    {
      object (Citation)
    }
  ],
  "footerCitedSources": [
    {
      object (CitedSource)
    }
  ]
}
Champs
conversationId

string

Obligatoire. ID de la conversation (par exemple, "spaces/AAAA...") à laquelle envoyer le message.

threadId

string

Facultatif. ID du fil de discussion (par exemple, "spaces/AAAA.../threads/BBBB...") auquel envoyer le message. Si ce champ n'est pas défini, le message sera envoyé à un nouveau fil de discussion.

messageText

string

Obligatoire. Contenu principal du message. Vous pouvez ajouter une mise en forme à l'aide du format Markdown standard (notez que les tableaux ne sont PAS acceptés). Les formats suivants sont acceptés :

  • Gras : **text**
  • Italique : *text* ou _text_
  • Barrer : ~~text~~
  • Monospace : text
  • Bloc à espacement fixe :
```
line 1
line 2
```
  • Liste à puces :
* item 1
* item 2
  • Liste numérotée :
1. item 1
2. item 2
  • Citation longue : > quoted text
  • Lien hypertexte : [label](url)
  • Mentionner un utilisateur : utilisez une balise HTML à fermeture automatique chat-user avec les attributs data-email="user@example.com" ou data-user="users/USER_ID". Utilisez de préférence l'attribut data-user avec USER_ID s'il est connu, et l'attribut data-email avec l'adresse e-mail de l'utilisateur dans le cas contraire. Si vous utilisez l'attribut data-user, veillez à inclure le préfixe "users/" que l'on retrouve dans les valeurs renvoyées par d'autres outils. Remarque : Vous pouvez ajouter jusqu'à 10 mentions par message. Il est strictement interdit de mentionner tous les utilisateurs (par exemple, en utilisant @all ou une balise HTML avec users/all).
  • Emoji personnalisé : utilisez une balise HTML à fermeture automatique chat-emoji avec les attributs data-custom-emoji="customEmojis/abc" ou data-emoji-name=":xyz:".
  • Citation : encapsulez le texte cité dans une balise HTML chat-citation avec l'attribut data-id correspondant à l'ID de la citation. Si une balise chat-citation comporte un data-id qui ne correspond à aucun Citation.id, la balise est ignorée et le texte encapsulé est affiché en texte brut. Remarque : Vous pouvez inclure jusqu'à 20 citations intégrées par message.
cards[]

object (Struct format)

Facultatif. Cartes jointes au message. La taille maximale est de 32 Ko par fiche. Chaque fiche est représentée sous la forme d'une structure JSON au format de fiche Google Chat (fiche Google Workspace UIKit/Fiches v2). Pour joindre des fiches à un message, l'application Chat doit être membre de l'espace.

Identification de la carte :

  • Le champ de chaîne name de premier niveau de chaque fiche sert d'identifiant.
  • Si plusieurs fiches sont associées à un message, chacune d'elles DOIT spécifier un name unique et non vide.
inlineCitations[]

object (Citation)

Facultatif. Citations intégrées référencées dans message_text via des balises chat-citation. Vous pouvez inclure jusqu'à 20 citations intégrées par message. Les citations intégrées non référencées (celles qui n'ont pas de balise chat-citation correspondante dans message_text) sont ignorées et ne provoquent pas d'erreur de validation.

footerCitedSources[]

object (CitedSource)

Facultatif. Les sources citées de premier niveau s'affichent sous forme de fiches de référence en bas (pied de page) du message. Vous pouvez citer jusqu'à 50 sources au total dans toutes les citations intégrées et sources en pied de page d'un message.

Struct

Représentation JSON
{
  "fields": {
    string: value,
    ...
  }
}
Champs
fields

map (key: string, value: value (Value format))

Mappage non ordonné de valeurs saisies de manière dynamique.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Représentation JSON
{
  "key": string,
  "value": value
}
Champs
key

string

value

value (Value format)

Valeur

Représentation JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Champs
Champ d'union kind. Type de valeur. kind ne peut être qu'un des éléments suivants :
nullValue

null

Représente un null JSON.

numberValue

number

Représente un nombre JSON. Ne doit pas être NaN, Infinity ni -Infinity, car ces valeurs ne sont pas acceptées en JSON. Il ne peut pas non plus représenter de grandes valeurs Int64, car le format JSON ne les accepte généralement pas dans son type de nombre.

stringValue

string

Représente une chaîne JSON.

boolValue

boolean

Représente une valeur booléenne JSON (littéral true ou false en JSON).

structValue

object (Struct format)

Représente un objet JSON.

listValue

array (ListValue format)

Représente un tableau JSON.

ListValue

Représentation JSON
{
  "values": [
    value
  ]
}
Champs
values[]

value (Value format)

Champ répété de valeurs saisies de manière dynamique.

Citation

Représentation JSON
{
  "id": string,
  "citedSources": [
    {
      object (CitedSource)
    }
  ]
}
Champs
id

string

Obligatoire. Identifiant unique correspondant à l'attribut data-id dans la balise chat-citation (par exemple, encapsuler le texte cité avec chat-citation et l'attribut data-id="ID") dans message_text. Il ne doit comporter que des lettres ASCII, des chiffres, des traits de soulignement ou des traits d'union (entre 1 et 63 caractères). Doit être unique parmi toutes les citations du message.

citedSources[]

object (CitedSource)

Obligatoire. Une ou plusieurs sources associées à cette fiche de citation. Vous pouvez citer jusqu'à 50 sources au total dans toutes les citations intégrées et sources en pied de page d'un message.

CitedSource

Représentation JSON
{
  "title": string,
  "url": string,
  "snippet": string,
  "imageUrl": string,
  "footer": string
}
Champs
title

string

Obligatoire. Titre en texte brut de la source (par exemple, "Programme Preview développeur Google Workspace"). Le format Markdown n'est pas compatible avec les titres.

url

string

Obligatoire. URL de la ressource citée (doit être une URL http:// ou https:// valide, par exemple "https://developers.google.com/workspace/preview").

snippet

string

Facultatif. Un court extrait provenant directement de la source. Affiché dans la fiche informative ou le pied de page. Texte brut uniquement. La longueur ne doit pas dépasser 1 000 caractères.

imageUrl

string

Facultatif. URL d'une vignette d'aperçu d'image (doit utiliser une URL https://).

footer

string

Facultatif. Texte d'attribution supplémentaire affiché dans le pied de page de la fiche (par exemple, le nom de domaine "developers.google.com" ou le nom de l'auteur/de l'organisation).

NullValue

Représente un null JSON.

NullValue est une sentinelle qui utilise une énumération avec une seule valeur pour représenter la valeur nulle pour l'union de types Value.

Un champ de type NullValue avec une valeur autre que 0 est considéré comme non valide. La plupart des sérialiseurs ProtoJSON émettent un Value avec un null_value défini comme un null JSON, quelle que soit la valeur entière, et effectuent donc un aller-retour vers une valeur 0.

Enums
NULL_VALUE Valeur nulle.

Schéma de sortie

Réponse à l'envoi d'un message à une conversation Google Chat.

SendMessageResponse

Représentation JSON
{
  "message": {
    object (ChatMessage)
  }
}
Champs
message

object (ChatMessage)

Message envoyé.

ChatMessage

Représentation JSON
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
Champs
messageId

string

Nom de ressource du message. Format : spaces/{space}/messages/{message}

threadId

string

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

string

Corps du message au format Markdown.

sender

object (User)

L'expéditeur du message.

createTime

string

Uniquement en sortie. Horodatage de la création du message. Format : code temporel ISO 8601.

threadedReply

boolean

Indique si le message est une réponse à un fil de discussion.

attachments[]

object (ChatAttachmentMetadata)

Pièces jointes incluses dans le message.

reactionSummaries[]

object (ReactionSummary)

Résumé des réactions emoji incluses dans le message.

quotedMessageMetadata

object (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 (UserType)
}
Champs
userId

string

Nom de ressource d'un utilisateur Chat. Format : users/{user}.

displayName

string

Nom à afficher d'un utilisateur Chat.

email

string

Adresse e-mail de l'utilisateur. Ce champ n'est renseigné que lorsque le type d'utilisateur est HUMAN.

userType

enum (UserType)

Type de l'utilisateur.

ChatAttachmentMetadata

Représentation JSON
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
Champs
attachmentId

string

Nom de ressource de la pièce jointe. Format : spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Nom de la pièce jointe.

mimeType

string

Type de contenu (type MIME).

source

enum (Source)

Source de la pièce jointe.

driveFileId

string

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

string

Chaîne Unicode de l'emoji ou nom de l'emoji personnalisé.

count

integer

Nombre total de réactions utilisant l'emoji associé.

QuotedMessageMetadata

Représentation JSON
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
Champs
messageId

string

Uniquement en sortie. Nom de ressource du message d'origine cité ou transféré. Format : spaces/{space}/messages/{message}

lastUpdateTime

string

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

enum (QuoteType)

Uniquement en sortie. Type de devis.

plaintextBody

string

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 FORWARD et de texte brut pour REPLY.

sender

string

Uniquement en sortie. Nom à afficher de l'auteur du message d'origine.

attachments[]

object (ChatAttachmentMetadata)

Uniquement en sortie. Pièces jointes incluses dans le message d'origine. Renseigné uniquement pour le type de devis FORWARD.

forwardedMetadata

object (ForwardedMetadata)

Uniquement en sortie. Métadonnées sur la conversation source du message transféré. Renseigné uniquement pour le type de devis FORWARD.

ForwardedMetadata

Représentation JSON
{
  "conversationId": string,
  "conversationDisplayName": string
}
Champs
conversationId

string

Uniquement en sortie. Nom de ressource de la conversation source. Format : spaces/{space}

conversationDisplayName

string

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 "Destructeur" : ❌ | Indice "Idempotent" : ❌ | Indice "Lecture seule" : ❌ | Indice "Monde ouvert" : ✅

Champs d'application des autorisations

Nécessite l'un des champs d'application OAuth suivants :

  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.create