MCP Tools Reference: chatmcp.googleapis.com

Narzędzie: list_messages

Pobiera wiadomości z określonej rozmowy w Google Chat (pokoju, czatu lub czatu grupowego) w formacie Markdown. Umożliwia filtrowanie według wątku, zakresu czasu i liczby wiadomości. Dodatkowo można pobrać następną stronę wiadomości, aby uzyskać więcej kontekstu. Wiadomości prywatne (widoczne tylko dla jednego użytkownika) są odfiltrowywane.

Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia list_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": "list_messages",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schemat danych wejściowych

ListChatMessagesRequest

Zapis JSON
{
  "conversationId": string,
  "threadId": string,
  "pageSize": integer,
  "pageToken": string,
  "startTime": string,
  "endTime": string
}
Pola
conversationId

string

Wymagane. Identyfikator rozmowy. Rozmowa może być pokojem, czatem lub czatem grupowym. Format: spaces/{space}

threadId

string

Opcjonalnie. Identyfikator konkretnego wątku w rozmowie. Jeśli zostanie podany, zwracane będą tylko wiadomości z tego wątku. Jeśli ten parametr zostanie pominięty, brane pod uwagę będą wiadomości ze wszystkich wątków w rozmowie. Format: spaces/{space}/threads/{thread}

pageSize

integer

Opcjonalnie. Maksymalna liczba wiadomości do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli nie podasz żadnej wartości, domyślnie zostanie użyta wartość 20. Maksymalna wartość to 50. Jeśli użyjesz wartości większej niż 50, zostanie ona automatycznie zmieniona na 50.

pageToken

string

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

startTime

string

Opcjonalnie. Sygnatura czasowa w formacie ISO 8601 służąca do filtrowania wiadomości. Wyświetlane będą tylko wiadomości utworzone po tym czasie.

endTime

string

Opcjonalnie. Sygnatura czasowa w formacie ISO 8601 służąca do filtrowania wiadomości. Wyświetlane będą tylko wiadomości utworzone przed tym czasem.

Schemat wyjściowy

Odpowiedź zawierająca listę wiadomości z wybranej rozmowy.

ListChatMessagesResponse

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

object (ChatMessage)

Lista pobranych wiadomości w odwrotnej kolejności chronologicznej (od najnowszych do najstarszych).

nextPageToken

string

Token, który można wysłać jako page_token w kolejnym żądaniu ListMessagesRequest, aby pobrać następną stronę wiadomości. Jeśli to pole jest puste, nie ma więcej 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 dołączone do 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 niestandardowego emotikona.

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 Zarezerwowano.
DRIVE_FILE Plik pochodzi z Dysku Google.
UPLOADED_CONTENT 와일드카드 문자를 사용하여 검색할 수 있습니다.

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
  • https://www.googleapis.com/auth/chat.messages.readonly