Strumento: send_message
Invia un messaggio chat di Google Chat a una conversazione con formattazione Markdown.
Questo strumento utilizza come input un ID conversazione, un ID thread facoltativo e un testo del messaggio.
Gli ID conversazione possono essere trovati utilizzando lo strumento search_conversations.
Restituisce il messaggio creato.
Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP send_message.
| Richiesta 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 }' |
Schema di input
SendMessageRequest
| Rappresentazione JSON |
|---|
{ "conversationId": string, "threadId": string, "messageText": string, "cards": [ { object } ], "inlineCitations": [ { object ( |
| Campi | |
|---|---|
conversationId |
Obbligatorio. L'ID della conversazione (ad es. "spaces/AAAA…") a cui inviare il messaggio. |
threadId |
Facoltativo. L'ID del thread (ad es. "spaces/AAAA…/threads/BBBB…") a cui inviare il messaggio. Se non viene impostato, il messaggio verrà inviato a un nuovo thread. |
messageText |
Obbligatorio. I contenuti principali del messaggio. La formattazione può essere aggiunta utilizzando il linguaggio Markdown standard (tieni presente che le tabelle NON sono supportate). È supportata la seguente formattazione:
|
cards[] |
Facoltativo. Schede allegate al messaggio. La dimensione massima è di 32 kB per tessera. Ogni scheda è rappresentata come una struttura JSON che segue il formato della scheda di Google Chat (scheda UIKit di Google Workspace/Cards v2). Per allegare schede a un messaggio, l'app di Chat deve essere un membro dello spazio. Le immagini nelle schede non sono supportate. Identificazione della carta:
|
inlineCitations[] |
Facoltativo. Citazioni in linea a cui viene fatto riferimento all'interno di |
footerCitedSources[] |
Facoltativo. Le fonti citate di primo livello vengono visualizzate come schede di riferimento nella parte inferiore (piè di pagina) del messaggio. In totale, sono consentite al massimo 50 fonti citate tra tutte le citazioni in linea e le fonti a piè di pagina di un messaggio. |
Struct
| Rappresentazione JSON |
|---|
{ "fields": { string: value, ... } } |
| Campi | |
|---|---|
fields |
Mappa non ordinata di valori con tipo dinamico. Un oggetto contenente un elenco di coppie |
FieldsEntry
| Rappresentazione JSON |
|---|
{ "key": string, "value": value } |
| Campi | |
|---|---|
key |
|
value |
|
Valore
| Rappresentazione JSON |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| Campi | |
|---|---|
Campo unione kind. Il tipo di valore. kind può essere solo uno dei seguenti tipi: |
|
nullValue |
Rappresenta un |
numberValue |
Rappresenta un numero JSON. Non deve essere |
stringValue |
Rappresenta una stringa JSON. |
boolValue |
Rappresentano un valore booleano JSON (valore letterale |
structValue |
Rappresenta un oggetto JSON. |
listValue |
Rappresenta un array JSON. |
ListValue
| Rappresentazione JSON |
|---|
{ "values": [ value ] } |
| Campi | |
|---|---|
values[] |
Campo ripetuto di valori con tipo dinamico. |
Citazione
| Rappresentazione JSON |
|---|
{
"id": string,
"citedSources": [
{
object ( |
| Campi | |
|---|---|
id |
Obbligatorio. Identificatore univoco corrispondente all'attributo |
citedSources[] |
Obbligatorio. Una o più fonti allegate a questa scheda popup della citazione. In totale, sono consentite al massimo 50 fonti citate tra tutte le citazioni in linea e le fonti a piè di pagina di un messaggio. |
CitedSource
| Rappresentazione JSON |
|---|
{ "title": string, "url": string, "snippet": string, "imageUrl": string, "footer": string } |
| Campi | |
|---|---|
title |
Obbligatorio. Titolo in testo normale della fonte (ad es. "Programma Anteprima per gli sviluppatori di Google Workspace"). La formattazione Markdown non è supportata nei titoli. |
url |
Obbligatorio. L'URL della risorsa citata (deve essere un URL http:// o https:// valido, ad esempio "https://developers.google.com/workspace/preview"). |
snippet |
Facoltativo. Un breve estratto o snippet direttamente dalla fonte. Visualizzato nella scheda popup o nel piè di pagina. Solo testo normale. La lunghezza massima è di 1000 caratteri. |
imageUrl |
Facoltativo. URL di una miniatura di anteprima dell'immagine (deve utilizzare un URL https://). |
footer |
Facoltativo. Testo dell'attribuzione aggiuntivo visualizzato nel piè di pagina della scheda (ad es. nome di dominio "developers.google.com" o nome dell'autore/dell'organizzazione). |
NullValue
Rappresenta un null JSON.
NullValue è un sentinel che utilizza un enum con un solo valore per rappresentare il valore null per l'unione di tipi Value.
Un campo di tipo NullValue con un valore diverso da 0 è considerato non valido. La maggior parte dei serializzatori ProtoJSON emetterà un Value con un null_value impostato come null JSON indipendentemente dal valore intero, quindi eseguirà un round trip a un valore 0.
| Enum | |
|---|---|
NULL_VALUE |
Valore null. |
Schema di output
Risposta all'invio di un messaggio a una conversazione di Google Chat.
SendMessageResponse
| Rappresentazione JSON |
|---|
{
"message": {
object ( |
| Campi | |
|---|---|
message |
Il messaggio inviato. |
ChatMessage
| Rappresentazione JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Campi | |
|---|---|
messageId |
Nome della risorsa del messaggio. Formato: spaces/{space}/messages/{message} |
threadId |
Il thread a cui appartiene questo messaggio. Questo campo sarà vuoto se il messaggio non è in un thread. Formato: spaces/{space}/threads/{thread} |
plaintextBody |
Corpo del testo del messaggio che utilizza la formattazione Markdown. |
sender |
Il mittente del messaggio. |
createTime |
Solo output. Timestamp della creazione del messaggio. Formato: timestamp ISO 8601. |
threadedReply |
Indica se il messaggio è una risposta a un thread. |
attachments[] |
Allegati inclusi nel messaggio. |
reactionSummaries[] |
Il riepilogo delle reazioni con emoji incluso nel messaggio. |
quotedMessageMetadata |
Solo output. Informazioni su un messaggio originale citato o inoltrato in questo messaggio. Nota: questo campo è in fase di sviluppo e potrebbe non essere ancora presente in tutti gli ambienti. |
Utente
| Rappresentazione JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Campi | |
|---|---|
userId |
Nome risorsa di un utente di Chat. Formato: users/{user}. |
displayName |
Il nome visualizzato di un utente di Chat. |
email |
L'indirizzo email dell'utente. Questo campo viene compilato solo quando il tipo di utente è HUMAN. |
userType |
Il tipo di utente. |
ChatAttachmentMetadata
| Rappresentazione JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Campi | |
|---|---|
attachmentId |
Nome della risorsa dell'allegato. Formato: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Nome dell'allegato. |
mimeType |
Tipo di contenuti (tipo MIME). |
source |
La fonte dell'allegato. |
driveFileId |
Solo output. L'ID del file di Google Drive. Compilato solo quando l'origine è DRIVE_FILE. Utilizzalo con l'MCP di Google Drive. |
ReactionSummary
| Rappresentazione JSON |
|---|
{ "emoji": string, "count": integer } |
| Campi | |
|---|---|
emoji |
La stringa Unicode dell'emoji o il nome dell'emoji personalizzata. |
count |
Il numero totale di reazioni che utilizzano l'emoji associata. |
QuotedMessageMetadata
| Rappresentazione JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Campi | |
|---|---|
messageId |
Solo output. Nome della risorsa del messaggio originale citato o inoltrato. Formato: spaces/{space}/messages/{message} |
lastUpdateTime |
Solo output. Timestamp della creazione o dell'ultimo aggiornamento del messaggio originale prima che venisse citato o inoltrato. Formato: timestamp ISO 8601. |
quoteType |
Solo output. Il tipo di citazione. |
plaintextBody |
Solo output. Istantanea del corpo del testo del messaggio originale al momento della citazione o dell'inoltro. Formattato utilizzando Markdown per |
sender |
Solo output. Il nome visualizzato dell'autore del messaggio originale. |
attachments[] |
Solo output. Gli allegati che facevano parte del messaggio originale. Compilato solo per il tipo di preventivo |
forwardedMetadata |
Solo output. Metadati relativi alla conversazione di origine del messaggio inoltrato. Compilato solo per il tipo di preventivo |
ForwardedMetadata
| Rappresentazione JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Campi | |
|---|---|
conversationId |
Solo output. Il nome della risorsa della conversazione di origine. Formato: spaces/{space} |
conversationDisplayName |
Solo output. Il nome visualizzato della conversazione di origine al momento dell'inoltro del messaggio. Per gli spazi con nome, si tratta del nome dello spazio. Per i messaggi diretti 1:1, si tratta del nome dell'altro partecipante. Per le chat di gruppo senza nome, si tratta di un nome generato in base ai nomi dei membri. |
UserType
Il tipo di utente di Google Chat.
| Enum | |
|---|---|
USER_TYPE_UNSPECIFIED |
Non specificato. |
HUMAN |
Utente umano. |
APP |
Utente dell'app. |
Origine
La fonte dell'allegato.
| Enum | |
|---|---|
SOURCE_UNSPECIFIED |
Riservato. |
DRIVE_FILE |
Il file è un file di Google Drive. |
UPLOADED_CONTENT |
Il file viene caricato in Chat. |
QuoteType
Il tipo di citazione che indica se il messaggio è una risposta con citazione o un messaggio inoltrato.
| Enum | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Riservato. Tipo di preventivo non definito. |
REPLY |
Il messaggio è una risposta con citazione a un messaggio originale nello stesso thread. |
FORWARD |
Il messaggio viene inoltrato da un messaggio originale in una conversazione diversa o da un thread diverso nella stessa conversazione. |
Annotazioni dello strumento
Le annotazioni degli strumenti vengono inviate ai client MCP per descrivere il rischio di base di un determinato strumento. La maggior parte dei client considera questi suggerimenti non attendibili, ma possono essere utilizzati per decidere quando inviare una richiesta di conferma a un utente.
Oltre alla stringa del titolo, i seguenti suggerimenti booleani sono definiti come segue:
readOnlyHint: se true, lo strumento non modifica il suo ambiente. Valore predefinito: false.destructiveHint: se true, lo strumento può eseguire azioni distruttive. Se è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.idempotentHint: se true, la chiamata ripetuta dello strumento con gli stessi argomenti non avrà alcun effetto aggiuntivo sul suo ambiente. Valore predefinito: false.openWorldHint: se true, lo strumento può interagire con un "open world" di entità esterne. Se false, lo strumento può interagire solo con entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria non lo sarebbe.
Suggerimento distruttivo: ❌ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ✅
Ambiti di autorizzazione
Richiede uno dei seguenti ambiti OAuth:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create