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. Można też 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 MCP list_messages.
| Żą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 MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schemat wejściowy
ListChatMessagesRequest
| Zapis JSON |
|---|
{ "conversationId": string, "threadId": string, "pageSize": integer, "pageToken": string, "startTime": string, "endTime": string } |
| Pola | |
|---|---|
conversationId |
Wymagane. Identyfikator rozmowy. Rozmowa może być pokojem, czatem lub czatem grupowym. Format: spaces/{space} |
threadId |
Opcjonalnie: Identyfikator konkretnego wątku w rozmowie. Jeśli zostanie podany, zwracane będą tylko wiadomości z tego wątku. Jeśli nie zostanie podany, brane pod uwagę będą wiadomości ze wszystkich wątków w rozmowie. Format: spaces/{space}/threads/{thread} |
pageSize |
Opcjonalnie: Maksymalna liczba wiadomości do zwrócenia. Usługa może zwrócić mniejszą liczbę wyników. Jeśli nie określono inaczej, domyślnie jest to 20. Maksymalna wartość to 50. Jeśli użyjesz wartości większej niż 50, zostanie ona automatycznie zmieniona na 50. |
pageToken |
Opcjonalnie: Token strony otrzymany z poprzedniego wywołania list_messages. Podaj go, aby pobrać kolejną stronę. |
startTime |
Opcjonalnie: Sygnatura czasowa ISO 8601 do filtrowania wiadomości. Zwracane będą tylko wiadomości utworzone po tym czasie. |
endTime |
Opcjonalnie: Sygnatura czasowa ISO 8601 do filtrowania wiadomości. Zwracane będą tylko wiadomości utworzone przed tym czasem. |
Schemat wyjściowy
Odpowiedź zawierająca listę wiadomości z żądanej rozmowy.
ListChatMessagesResponse
| Zapis JSON |
|---|
{
"messages": [
{
object ( |
| Pola | |
|---|---|
messages[] |
Lista pobranych wiadomości w odwrotnym porządku chronologicznym (od najnowszych). |
nextPageToken |
Token, który można wysłać jako |
ChatMessage
| Zapis JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Pola | |
|---|---|
messageId |
Nazwa zasobu wiadomości. Format: spaces/{space}/messages/{message} |
threadId |
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 |
Treść wiadomości w formacie Markdown. |
sender |
Nadawca wiadomości. |
createTime |
Tylko dane wyjściowe. Sygnatura czasowa utworzenia wiadomości. Format: sygnatura czasowa ISO 8601. |
threadedReply |
Określa, czy wiadomość jest odpowiedzią w wątku. |
attachments[] |
Załączniki dołączone do wiadomości. |
reactionSummaries[] |
Podsumowanie reakcji emotikonami zawarte w wiadomości. |
quotedMessageMetadata |
Tylko dane wyjściowe. Informacje o oryginalnej wiadomości, która jest cytowana lub przekazywana w tej wiadomości. Uwaga: to pole jest w trakcie opracowywania i może nie być jeszcze dostępne we wszystkich środowiskach. |
Użytkownik
| Zapis JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Pola | |
|---|---|
userId |
Nazwa zasobu użytkownika Google Chat. Format: users/{user}. |
displayName |
Wyświetlana nazwa użytkownika Google Chat. |
email |
Adres e-mail użytkownika. To pole jest wypełniane tylko wtedy, gdy typ użytkownika to HUMAN. |
userType |
Typ użytkownika. |
ChatAttachmentMetadata
| Zapis JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Pola | |
|---|---|
attachmentId |
Nazwa zasobu załącznika. Format: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Nazwa załącznika. |
mimeType |
Typ treści (typ MIME). |
source |
Źródło załącznika. |
driveFileId |
Tylko dane wyjściowe. Identyfikator pliku na Dysku Google. Wypełniane tylko wtedy, gdy źródłem jest DRIVE_FILE. Używaj z MCP Dysku Google. |
ReactionSummary
| Zapis JSON |
|---|
{ "emoji": string, "count": integer } |
| Pola | |
|---|---|
emoji |
Ciąg znaków unicode emotikona lub nazwa niestandardowego emotikona. |
count |
Łączna liczba reakcji z użyciem powiązanego emotikona. |
QuotedMessageMetadata
| Zapis JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Pola | |
|---|---|
messageId |
Tylko dane wyjściowe. Nazwa zasobu oryginalnej wiadomości, która jest cytowana lub przekazywana dalej. Format: spaces/{space}/messages/{message} |
lastUpdateTime |
Tylko dane wyjściowe. Sygnatura czasowa określająca, kiedy oryginalna wiadomość została utworzona lub ostatnio zaktualizowana przed jej zacytowaniem lub przekazaniem dalej. Format: sygnatura czasowa ISO 8601. |
quoteType |
Tylko dane wyjściowe. Typ cytatu. |
plaintextBody |
Tylko dane wyjściowe. Zrzut treści oryginalnej wiadomości w momencie cytowania lub przekazywania. Sformatowane za pomocą Markdown w przypadku |
sender |
Tylko dane wyjściowe. Wyświetlana nazwa autora oryginalnej wiadomości. |
attachments[] |
Tylko dane wyjściowe. załączniki, które były częścią oryginalnej wiadomości; Wartość podawana tylko w przypadku typu wyceny |
forwardedMetadata |
Tylko dane wyjściowe. Metadane dotyczące rozmowy źródłowej przekazanej wiadomości. Wartość podawana tylko w przypadku typu wyceny |
ForwardedMetadata
| Zapis JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Pola | |
|---|---|
conversationId |
Tylko dane wyjściowe. Nazwa zasobu rozmowy źródłowej. Format: spaces/{space} |
conversationDisplayName |
Tylko dane wyjściowe. Wyświetlana nazwa rozmowy źródłowej w momencie przekazania wiadomości. W przypadku nazwanych pokoi jest to nazwa pokoju. W przypadku czatów indywidualnych jest to nazwa drugiego uczestnika. W przypadku czatów grupowych bez nazwy jest to nazwa wygenerowana na podstawie nazw użytkowników. |
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 jest plikiem z Dysku Google. |
UPLOADED_CONTENT |
Plik zostanie przesłany do Google Chat. |
QuoteType
Typ cytatu wskazujący, czy wiadomość jest odpowiedzią z cytatem czy przekazaną wiadomością.
| Wartości w polu enum | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Zarezerwowane. Niezdefiniowany typ cytatu. |
REPLY |
Wiadomość jest odpowiedzią z cytatem na oryginalną wiadomość w tym samym wątku. |
FORWARD |
Wiadomość została przekazana z oryginalnej wiadomości w innej rozmowie lub z innego wątku w tej samej rozmowie. |
Adnotacje dotyczące narzędzi
Adnotacje narzędzi 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żyć do określenia, kiedy wysłać użytkownikowi prośbę o potwierdzenie.
Oprócz ciągu tytułu zdefiniowane są te wskazówki logiczne:
readOnlyHint: jeśli ma wartość „true”, narzędzie nie modyfikuje swojego środowiska. Wartość domyślna: false.destructiveHint: jeśli ma wartość „true”, narzędzie może wykonywać działania destrukcyjne. Jeśli ma wartość false, narzędzie może wykonywać tylko działania dodawania. Wartość domyślna: true.idempotentHint: jeśli ma wartość „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: false.openWorldHint: jeśli ma wartość true, narzędzie może wchodzić w interakcje z „otwartym światem” elementów zewnętrznych. Jeśli ma wartość false, narzędzie może wchodzić w interakcje tylko z encjami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie jest narzędziem typu Otwarty świat, ale narzędzie do zapamiętywania już nie.
Wskazówka dotycząca niszczenia: ❌ | Wskazówka dotycząca idempotencji: ✅ | Wskazówka dotycząca tylko do odczytu: ✅ | Wskazówka dotycząca otwartego świata: ❌
Zakresy autoryzacji
Wymaga jednego z tych zakresów OAuth:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.readonly