MCP Tools Reference: chatmcp.googleapis.com

Narzędzie: search_messages

Wyszukiwanie wiadomości w Google Chat za pomocą słów kluczowych i filtrów oraz zwracanie ich w formacie Markdown. Działa we wszystkich pokojach, do których użytkownik ma dostęp, lub może być ograniczony do konkretnej rozmowy.

Przy podejmowaniu decyzji o użyciu search_messages zamiast innych narzędzi do wyszukiwania lub czytania postępuj zgodnie z tymi wskazówkami:

  • Używaj search_messages, gdy szukasz konkretnej treści wiadomości, słów kluczowych, wzmianek, linków, nadawców lub nieprzeczytanych wiadomości, które mogą znajdować się w wielu pokojach lub nie mieć znanego identyfikatora rozmowy.
  • Użyj list_messages, jeśli znasz konkretny identyfikator pokoju lub wątku i chcesz czytać wiadomości w kolejności chronologicznej.
  • Użyj search_conversations, aby znaleźć metadane pokoju, takie jak identyfikatory rozmów, według nazwy wyświetlanej pokoju lub uczestników (wyszukiwanie obejmuje tylko metadane, a nie treść wiadomości).

Jeśli parametr searchParameters jest podany bez konkretnych filtrów, zwracane są ostatnie wiadomości z rozmów dostępnych dla użytkownika.

Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia search_messages MCP.

Żądanie 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
}'

Schemat danych wejściowych

SearchMessagesRequest

Zapis JSON
{
  "searchParameters": {
    object (SearchParameters)
  },
  "pageSize": integer,
  "pageToken": string
}
Pola
searchParameters

object (SearchParameters)

Wymagane. Parametry wyszukiwania, których chcesz użyć.

pageSize

integer

Opcjonalnie: Maksymalna liczba wyników do zwrócenia (maksymalnie 100). Jeśli nie podano tego argumentu, zwracanych jest maksymalnie 25 wyników.

pageToken

string

Opcjonalnie: Token strony otrzymany z poprzedniego wywołania search_messages. Podaj ten token, aby pobrać kolejną stronę.

SearchParameters

Zapis JSON
{
  "keywords": [
    string
  ],
  "conversationId": string,
  "sender": string,
  "isUnread": boolean,
  "hasLink": boolean,
  "startTime": string,
  "endTime": string,
  "mentionsMe": boolean,
  "conversationIncludesUser": string,
  "spaceDisplayNames": [
    string
  ],
  "conversationTypes": [
    enum (ConversationType)
  ]
}
Pola
keywords[]

string

Opcjonalnie: Zestaw słów kluczowych, które służą do filtrowania wyników.

conversationId

string

Opcjonalnie: Ogranicza wyszukiwanie do konkretnego identyfikatora rozmowy zwróconego przez narzędzie search_conversations. Format: spaces/{ID}.

sender

string

Opcjonalnie: Filtrowanie wiadomości od określonego użytkownika. Możesz użyć adresu e-mail lub nazwy zasobu nadawcy. Nazwy zasobów użytkownika mają format users/{ID}, gdzie {ID} może być identyfikatorem osoby lub jej adresem e-mail.

isUnread

boolean

Opcjonalnie: Filtruj wiadomości, które nie zostały przeczytane przez użytkownika dzwoniącego.

hasLink

boolean

Opcjonalnie: Filtruj wiadomości zawierające co najmniej 1 adres URL.

startTime

string

Opcjonalnie: Filtruj wiadomości utworzone po tym czasie. Format: sygnatura czasowa ISO 8601.

endTime

string

Opcjonalnie: Filtruj wiadomości utworzone przed tym czasem. Format: sygnatura czasowa ISO 8601.

mentionsMe

boolean

Opcjonalnie: Filtruj wiadomości, które wyraźnie wspominają o użytkowniku dzwoniącym.

conversationIncludesUser

string

Opcjonalnie: Filtruj wiadomości na czatach i czatach grupowych, które zawierają adres e-mail lub identyfikator konkretnego użytkownika.

spaceDisplayNames[]

string

Opcjonalnie: Filtruj według listy nazw pokoi. Wyświetlane nazwy pokoi są dopasowywane częściowo. Uwaga: zwracanych jest tylko 5 najlepszych dopasowań.

conversationTypes[]

enum (ConversationType)

Opcjonalnie: Filtruj według typu rozmowy.

ConversationType

Określa typ rozmowy.

Wartości w polu enum
CONVERSATION_TYPE_UNSPECIFIED Nie określono.
NAMED_SPACE nazwany pokój,
GROUP_CHAT czat grupowy z co najmniej 3 osobami;
DIRECT_MESSAGE Czat między 2 osobami lub między osobą a aplikacją w Google Chat.

Schemat wyjściowy

Odpowiedź na wyszukiwanie wiadomości w Google Chat. Jeśli pole next_page_token jest wypełnione, można ponownie wywołać funkcję SearchMessages z tym tokenem, aby pobrać następną stronę wyników.

SearchMessagesResponse

Zapis JSON
{
  "messages": [
    {
      object (ChatMessage)
    }
  ],
  "nextPageToken": string
}
Pola
messages[]

object (ChatMessage)

Lista obiektów wiadomości spełniających kryteria wyszukiwania.

nextPageToken

string

Token, który można wysłać jako page_token, aby pobrać następną stronę. Jeśli pominiesz to pole, nie będzie kolejnych stron.

ChatMessage

Zapis JSON
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ]
}
Pola
messageId

string

Nazwa zasobu wiadomości. Format: spaces/{space}/messages/{message}

threadId

string

Wątek, do którego należy ta wiadomość. Jeśli wiadomość nie jest częścią wątku, to pole będzie puste. Format: spaces/{space}/threads/{thread}

plaintextBody

string

Treść wiadomości w formacie Markdown.

sender

object (User)

Nadawca wiadomości.

createTime

string

Tylko dane wyjściowe. Sygnatura czasowa utworzenia wiadomości.

threadedReply

boolean

Określa, czy wiadomość jest odpowiedzią w wątku.

attachments[]

object (ChatAttachmentMetadata)

Załączniki uwzględnione w wiadomości.

reactionSummaries[]

object (ReactionSummary)

Podsumowanie reakcji emotikonami zawarte w wiadomości.

Użytkownik

Zapis JSON
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
Pola
userId

string

Nazwa zasobu użytkownika Google Chat. Format: users/{user}.

displayName

string

Wyświetlana nazwa użytkownika Google Chat.

email

string

Adres e-mail użytkownika. To pole jest wypełniane tylko wtedy, gdy typ użytkownika to HUMAN.

userType

enum (UserType)

Typ użytkownika.

ChatAttachmentMetadata

Zapis JSON
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source)
}
Pola
attachmentId

string

Nazwa zasobu załącznika. Format: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Nazwa załącznika.

mimeType

string

Typ treści (typ MIME).

source

enum (Source)

Źródło załącznika.

ReactionSummary

Zapis JSON
{
  "emoji": string,
  "count": integer
}
Pola
emoji

string

Ciąg znaków Unicode emotikona lub nazwa emotikona niestandardowego.

count

integer

Łączna liczba reakcji z użyciem powiązanego emotikona.

UserType

Typ użytkownika Google Chat.

Wartości w polu enum
USER_TYPE_UNSPECIFIED Nie określono.
HUMAN użytkownik.
APP użytkownik aplikacji,

Źródło

Źródło załącznika.

Wartości w polu enum
SOURCE_UNSPECIFIED Zarezerwowane.
DRIVE_FILE Plik pochodzi z Dysku Google.
UPLOADED_CONTENT Plik zostanie przesłany do Google Chat.

Adnotacje narzędzi

Adnotacje narzędzia są wysyłane do klientów MCP, aby opisać podstawowe ryzyko związane z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich używać do określania, kiedy użytkownikowi może zostać wysłany monit o potwierdzenie.

Oprócz ciągu znaków tytułu zdefiniowano te wskazówki logiczne:

  • readOnlyHint: jeśli wartość jest prawdziwa, narzędzie nie modyfikuje swojego środowiska. Wartość domyślna: fałsz.
  • destructiveHint: jeśli ma wartość Prawda, narzędzie może wykonywać działania destrukcyjne. Jeśli ma wartość „false”, narzędzie może wykonywać tylko działania addytywne. Wartość domyślna: true.
  • idempotentHint: jeśli wartość to „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: fałsz.
  • openWorldHint: jeśli wartość to „true”, narzędzie może wchodzić w interakcje z „otwartym światem” podmiotów zewnętrznych. Jeśli wartość jest fałszywa, narzędzie może wchodzić w interakcje tylko z podmiotami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie byłoby narzędziem typu otwarty świat, a narzędzie do zapamiętywania nie.

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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