Strumento: search_messages
Cerca messaggi di Google Chat utilizzando parole chiave e filtri e li restituisce in formato Markdown. Funziona in tutti gli spazi a cui l'utente ha accesso o può essere limitato a una conversazione specifica.
Segui queste indicazioni quando decidi di utilizzare search_messages rispetto ad altri strumenti di ricerca o lettura:
- Utilizza
search_messagesquando cerchi contenuti di messaggi specifici, parole chiave, menzioni, link, mittenti o messaggi non letti potenzialmente in più spazi o senza un ID conversazione noto. - Utilizza
list_messagesquando conosci l'ID spazio o thread specifico e vuoi leggere i messaggi in sequenza in ordine cronologico. - Utilizza
search_conversationsper trovare i metadati dello spazio, come gli ID conversazione, in base al nome visualizzato dello spazio o ai partecipanti (esegue la ricerca solo nei metadati, non nei contenuti dei messaggi).
Se searchParameters viene fornito senza filtri specifici, vengono restituiti i messaggi recenti nelle conversazioni accessibili all'utente.
Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP search_messages.
| 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": "search_messages", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Schema di input
SearchMessagesRequest
| Rappresentazione JSON |
|---|
{
"searchParameters": {
object ( |
| Campi | |
|---|---|
searchParameters |
Obbligatorio. I parametri di ricerca da utilizzare per la ricerca. |
pageSize |
Facoltativo. Il numero massimo di risultati da restituire (fino a 100). Se non specificato, vengono restituiti al massimo 25 risultati. |
pageToken |
Facoltativo. Un token di pagina ricevuto da una precedente chiamata |
SearchParameters
| Rappresentazione JSON |
|---|
{ "keywords": [ string ], "conversationId": string, "sender": string, "isUnread": boolean, "hasLink": boolean, "startTime": string, "endTime": string, "mentionsMe": boolean, "conversationIncludesUser": string, "spaceDisplayNames": [ string ] } |
| Campi | |
|---|---|
keywords[] |
Facoltativo. Un insieme di parole chiave utilizzate per filtrare i risultati. |
conversationId |
Facoltativo. Limita la ricerca a un identificatore di conversazione specifico, restituito dallo strumento search_conversations. Formato: |
sender |
Facoltativo. Filtra i messaggi di un utente specifico. Puoi utilizzare l'email o il nome della risorsa del mittente. I nomi delle risorse utente sono formattati come |
isUnread |
Facoltativo. Filtra i messaggi che non sono stati letti dall'utente chiamante. |
hasLink |
Facoltativo. Filtra i messaggi contenenti almeno un URL. |
startTime |
Facoltativo. Filtra i messaggi creati dopo questo orario. Formato: timestamp ISO 8601. |
endTime |
Facoltativo. Filtra i messaggi creati prima di questo orario. Formato: timestamp ISO 8601. |
mentionsMe |
Facoltativo. Filtra i messaggi che menzionano esplicitamente l'utente che chiama. |
conversationIncludesUser |
Facoltativo. Filtra i messaggi nei messaggi diretti e nelle chat di gruppo che includono l'email o l'ID utente specifico. |
spaceDisplayNames[] |
Facoltativo. Filtra in base a un elenco di nomi di spazi; i nomi visualizzati degli spazi vengono abbinati parzialmente. Nota: vengono restituite solo le prime 5 corrispondenze. |
Schema di output
Risposta alla ricerca di messaggi di Google Chat. Se next_page_token è compilato, SearchMessages può essere chiamato di nuovo con quel token per recuperare la pagina successiva dei risultati.
SearchMessagesResponse
| Rappresentazione JSON |
|---|
{
"messages": [
{
object ( |
| Campi | |
|---|---|
messages[] |
Elenco degli oggetti dei messaggi che corrispondono ai criteri di ricerca. |
nextPageToken |
Un token che può essere inviato come |
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 thread. Formato: spaces/{space}/threads/{thread} |
plaintextBody |
Corpo del messaggio utilizzando la formattazione Markdown. |
sender |
Il mittente del messaggio. |
createTime |
Solo output. Timestamp di creazione del messaggio. |
threadedReply |
Aware whether message is a thread reply. |
attachments[] |
Allegati inclusi nel messaggio. |
reactionSummaries[] |
Il riepilogo delle reazioni con emoji incluso nel messaggio. |
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 |
L'origine dell'allegato. |
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. |
UserType
Il tipo di utente di Google Chat.
| Enum | |
|---|---|
USER_TYPE_UNSPECIFIED |
Non specificato. |
HUMAN |
Utente umano. |
APP |
Utente dell'app. |
Origine
L'origine dell'allegato.
| Enum | |
|---|---|
SOURCE_UNSPECIFIED |
Riservato. |
DRIVE_FILE |
Il file è un file di Google Drive. |
UPLOADED_CONTENT |
Il file viene caricato su Chat. |
Annotazioni dello strumento
Le annotazioni dello strumento 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 a un utente una richiesta di conferma.
Oltre alla stringa del titolo, sono definiti i seguenti suggerimenti booleani:
readOnlyHint: se è true, lo strumento non modifica il suo ambiente. Valore predefinito: false.destructiveHint: se è true, lo strumento può eseguire azioni distruttive. Se il valore è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.idempotentHint: se è true, chiamare ripetutamente lo 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 le entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria no.
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.messages.readonlyhttps://www.googleapis.com/auth/chat.spaces.readonlyhttps://www.googleapis.com/auth/chat.memberships.readonlyhttps://www.googleapis.com/auth/chat.users.readstate.readonly