MCP Tools Reference: chatmcp.googleapis.com

Ferramenta: search_conversations

Pesquisa conversas do Google Chat para encontrar IDs de conversa. Os espaços nomeados são encontrados pelo nome de exibição (space_name_query). As mensagens diretas (DMs) e os grupos de chat são encontrados apenas pelos endereços de e-mail dos participantes (participants).

Essa ferramenta pesquisa metadados de conversas, NÃO o conteúdo das mensagens. Para pesquisar no histórico de mensagens ou encontrar mensagens por palavra-chave/remetente/carimbo de data/hora, use search_messages.

Se apenas participants forem fornecidos, essa ferramenta vai encontrar mensagens diretas individuais (se um participante for fornecido) ou grupos de chat (se vários participantes forem fornecidos) que incluam os participantes especificados e o usuário que está fazendo a chamada. Os espaços com nome não são retornados.

Se apenas um space_name_query for fornecido, essa ferramenta vai pesquisar APENAS espaços com nome em que a consulta é uma substring que não diferencia maiúsculas de minúsculas do nome de exibição do espaço. As mensagens diretas e os grupos de chat nunca são retornados. Portanto, NÃO transmita o nome de uma pessoa como space_name_query para encontrar uma mensagem direta com ela. Em vez disso, procure o endereço de e-mail dela e transmita-o em participants.

Se participants e space_name_query forem fornecidos, essa ferramenta vai encontrar mensagens diretas ou grupos de chat por participantes e, em seguida, filtrá-los por nome de exibição.

Se nem participants nem space_name_query forem fornecidos, essa ferramenta vai listar os espaços nomeados em que o usuário que fez a chamada é participante (as mensagens diretas e os grupos de chat não estão incluídos).

Essa ferramenta só lista as conversas em que o usuário que está ligando é membro.

Retorna uma lista de objetos de conversa que contêm IDs de conversa (formato: spaces/{space}), nomes de exibição e tipos de conversa.

IMPORTANTE: uma lista conversations vazia não significa que não há mais resultados. Se next_page_token estiver presente, mais páginas poderão ser buscadas. Se você receber uma lista vazia, mas um next_page_token, pergunte ao usuário se deve continuar a pesquisa.

O exemplo de código a seguir mostra como usar curl para chamar a ferramenta MCP search_conversations.

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

Esquema de entrada

SearchConversationsRequest

Representação JSON
{
  "spaceNameQuery": string,
  "pageSize": integer,
  "pageToken": string,
  "participants": [
    string
  ]
}
Campos
spaceNameQuery

string

Opcional. O texto a ser pesquisado nos nomes de exibição da conversa (correspondência de substring que não diferencia maiúsculas de minúsculas).

Se participants estiver vazio, apenas os espaços nomeados serão pesquisados, e as mensagens diretas (DMs) e os grupos de chat nunca serão retornados. Portanto, pesquisar o nome de uma pessoa aqui não vai encontrar uma DM com ela. Para encontrar uma DM ou um grupo de chat, informe os endereços de e-mail dos participantes em participants. Se participants estiver definido, essa consulta vai filtrar ainda mais as mensagens diretas ou os grupos de chat correspondentes por nome de exibição.

pageSize

integer

Opcional. O número máximo de espaços a serem retornados. O serviço pode retornar um valor inferior a este. Se não for especificado, no máximo 20 espaços serão retornados. O valor máximo é 1.000. Valores maiores serão convertidos para 1.000.

pageToken

string

Opcional. Um token de página recebido de uma chamada search_conversations anterior. Forneça isso para recuperar a página subsequente.

participants[]

string

Opcional. Lista de endereços de e-mail dos participantes para filtrar as conversas, exceto o autor da chamada. Use isso para encontrar mensagens diretas (DMs) e grupos de chat: um único participante retorna a DM individual com essa pessoa, e vários participantes retornam grupos de chat que contêm todos eles. Os espaços com nome não são retornados quando esse campo é definido.

Esquema de saída

Resposta que contém a lista de conversas correspondentes.

SearchConversationsResponse

Representação JSON
{
  "conversations": [
    {
      object (Conversation)
    }
  ],
  "nextPageToken": string
}
Campos
conversations[]

object (Conversation)

Lista de objetos de conversa que correspondem aos critérios de pesquisa. Cada conversa inclui o conversation_id (formato: spaces/{space}), display_name, conversation_type e last_active_timestamp.

nextPageToken

string

Um token que pode ser enviado como page_token para recuperar a próxima página. Se esse campo for omitido, não haverá páginas subsequentes.

Preenchido apenas se a solicitação for filtrada por participants.

Conversa

Representação JSON
{
  "conversationId": string,
  "displayName": string,
  "conversationType": enum (ConversationType),
  "lastActiveTimestamp": string
}
Campos
conversationId

string

O ID da conversa (por exemplo, "spaces/AAAAAAAAA").

displayName

string

O nome de exibição da conversa. Para espaços com nome, é o nome do espaço. Nas mensagens diretas individuais, é o nome do outro participante. Para grupos de chat sem nome, esse é um nome gerado com base nos nomes dos participantes.

conversationType

enum (ConversationType)

O tipo de conversa (DIRECT_MESSAGE, GROUP_CHAT ou NAMED_SPACE).

lastActiveTimestamp

string (Timestamp format)

O horário da última atividade da conversa no formato ISO 8601.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

Carimbo de data/hora

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799, inclusive (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999.

ConversationType

Define o tipo de conversa.

Tipos enumerados
CONVERSATION_TYPE_UNSPECIFIED Não especificado.
NAMED_SPACE Um espaço com nome.
GROUP_CHAT Um grupo de chat com 3 ou mais pessoas.
DIRECT_MESSAGE Uma mensagem direta entre dois humanos ou um humano e um app do Chat.

Anotações de ferramentas

As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando uma solicitação de confirmação pode ser enviada a um usuário.

Além da string de título, as seguintes dicas booleanas são definidas:

  • readOnlyHint: se for verdadeiro, a ferramenta não vai modificar o ambiente. (Padrão: falso).
  • destructiveHint: se for verdadeiro, a ferramenta poderá realizar ações destrutivas. Se for falso, a ferramenta só poderá realizar ações aditivas. Padrão: verdadeiro.
  • idempotentHint: se for verdadeiro, chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente. (Padrão: falso).
  • openWorldHint: se for verdadeiro, a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for falso, a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.

Dica destrutiva: ❌ | Dica idempotente: ✅ | Dica somente leitura: ✅ | Dica de jogos de mundo aberto: ❌

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

  • https://www.googleapis.com/auth/chat.memberships.readonly
  • https://www.googleapis.com/auth/chat.spaces
  • https://www.googleapis.com/auth/chat.spaces.readonly