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 |
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 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 |
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 |
Opcjonalnie. Token strony otrzymany z poprzedniego wywołania list_messages. Podaj ten token, aby pobrać kolejną stronę. |
startTime |
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 |
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 ( |
| Pola | |
|---|---|
messages[] |
Lista pobranych wiadomości w odwrotnej kolejności chronologicznej (od najnowszych do najstarszych). |
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. |
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. |
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. |
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. |
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.messageshttps://www.googleapis.com/auth/chat.messages.readonly