MCP Tools Reference: chatmcp.googleapis.com

Инструмент: list_messages

Извлекает сообщения из указанного чата Google Chat (чат-группы, прямой переписки или групповой прямой переписки) в формате Markdown. Позволяет фильтровать по цепочке, диапазону дат и количеству сообщений. Кроме того, для получения дополнительного контекста можно извлечь следующую страницу сообщений. Личные сообщения (сообщения, видимые только одному пользователю) отфильтровываются.

В примере кода ниже показано, как использовать curl для вызова инструмента MCP list_messages.

Запрос 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
}'

Схема ввода

ListChatMessagesRequest

JSON-представление
{
  "conversationId": string,
  "threadId": string,
  "pageSize": integer,
  "pageToken": string,
  "startTime": string,
  "endTime": string
}
Поля
conversationId

string

Обязательно. Идентификатор чата. Чат может быть чат-группой, прямой перепиской или групповым чатом. Формат: spaces/{space}

threadId

string

Необязательное поле. Идентификатор определенной цепочки в чате. Если указан, будут возвращены только сообщения из этой цепочки. Если этот параметр не указан, учитываются сообщения из всех цепочек в чате. Формат: spaces/{space}/threads/{thread}

pageSize

integer

Необязательное поле. Максимальное количество сообщений, которое нужно вернуть. Сервис может вернуть меньше результатов, чем указано в этом значении. Если не указано, по умолчанию используется 20. Максимальное значение – 50. Если вы укажете значение больше 50, оно будет автоматически изменено на 50.

pageToken

string

Необязательное поле. Токен страницы, полученный из предыдущего вызова list_messages. Укажите его, чтобы получить следующую страницу.

startTime

string

Необязательное поле. Временная метка ISO 8601 для фильтрации сообщений. Будут возвращены только сообщения, созданные после этого времени.

endTime

string

Необязательное поле. Временная метка ISO 8601 для фильтрации сообщений. Будут возвращены только сообщения, созданные до этого времени.

Схема вывода

Ответ, содержащий список сообщений из запрошенного разговора.

ListChatMessagesResponse

JSON-представление
{
  "messages": [
    {
      object (ChatMessage)
    }
  ],
  "nextPageToken": string
}
Поля
messages[]

object (ChatMessage)

Список полученных сообщений в обратном хронологическом порядке (сначала самые новые).

nextPageToken

string

Токен, который можно отправить как page_token в последующем запросе ListMessagesRequest, чтобы получить следующую страницу сообщений. Если это поле пустое, значит, других страниц нет.

ChatMessage

JSON-представление
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
Поля
messageId

string

Название ресурса сообщения. Формат: spaces/{space}/messages/{message}

threadId

string

Цепочка, к которой относится это сообщение. Если сообщение не входит в цепочку, это поле будет пустым. Формат: spaces/{space}/threads/{thread}

plaintextBody

string

Текст сообщения с форматированием Markdown.

sender

object (User)

Отправитель сообщения.

createTime

string

Только для вывода. Временная метка создания сообщения. Формат: временная метка ISO 8601.

threadedReply

boolean

Является ли сообщение ответом в цепочке.

attachments[]

object (ChatAttachmentMetadata)

Прикрепленные файлы.

reactionSummaries[]

object (ReactionSummary)

Сводка реакций с эмодзи, включенная в сообщение.

quotedMessageMetadata

object (QuotedMessageMetadata)

Только для вывода. Информация об исходном письме, которое цитируется или пересылается в этом письме. Примечание. Это поле находится на стадии разработки и может быть доступно не во всех средах.

Пользователь

JSON-представление
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
Поля
userId

string

Название ресурса пользователя Chat. Формат: users/{user}.

displayName

string

Отображаемое имя пользователя Chat.

email

string

Адрес электронной почты пользователя. Это поле заполняется, только если тип пользователя – HUMAN.

userType

enum (UserType)

Тип пользователя.

ChatAttachmentMetadata

JSON-представление
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
Поля
attachmentId

string

Название ресурса прикрепленного файла. Формат: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Название прикрепленного файла.

mimeType

string

Тип контента (MIME-тип).

source

enum (Source)

Источник прикрепленного файла.

driveFileId

string

Только для вывода. Идентификатор файла на Google Диске. Заполняется, только если источником является DRIVE_FILE. Используйте с MCP Google Диска.

ReactionSummary

JSON-представление
{
  "emoji": string,
  "count": integer
}
Поля
emoji

string

Строка Unicode для эмодзи или название пользовательского эмодзи.

count

integer

Общее количество реакций с использованием связанного эмодзи.

QuotedMessageMetadata

JSON-представление
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
Поля
messageId

string

Только для вывода. Название ресурса исходного сообщения, которое цитируется или пересылается. Формат: spaces/{space}/messages/{message}

lastUpdateTime

string

Только для вывода. Временная метка создания или последнего обновления исходного сообщения до того, как оно было процитировано или переслано. Формат: временная метка ISO 8601.

quoteType

enum (QuoteType)

Только для вывода. Тип цитаты.

plaintextBody

string

Только для вывода. Снимок текстового тела исходного сообщения на момент цитирования или пересылки. Форматирование с помощью Markdown для FORWARD и обычного текста для REPLY.

sender

string

Только для вывода. Отображаемое имя автора исходного сообщения.

attachments[]

object (ChatAttachmentMetadata)

Только для вывода. Прикрепленные файлы, которые были частью исходного сообщения. Заполняется только для типа цены FORWARD.

forwardedMetadata

object (ForwardedMetadata)

Только для вывода. Метаданные об исходном чате пересланного сообщения. Заполняется только для типа цены FORWARD.

ForwardedMetadata

JSON-представление
{
  "conversationId": string,
  "conversationDisplayName": string
}
Поля
conversationId

string

Только для вывода. Название ресурса исходного чата. Формат: spaces/{space}

conversationDisplayName

string

Только для вывода. Отображаемое название исходного чата на момент пересылки сообщения. Для именованных чат-групп это название группы. Для прямой переписки это имя другого участника. Для групповых чатов без названия это сгенерированное название на основе имен участников.

UserType

Тип пользователя Google Chat.

Перечисления
USER_TYPE_UNSPECIFIED Не указано.
HUMAN Пользователь-человек.
APP Пользователь приложения.

Источник

Источник прикрепленного файла.

Перечисления
SOURCE_UNSPECIFIED Зарезервировано.
DRIVE_FILE Файл хранится на Google Диске.
UPLOADED_CONTENT Файл загружен в Chat.

QuoteType

Тип цитаты, указывающий, является ли сообщение ответом с цитатой или пересланным сообщением.

Перечисления
QUOTE_TYPE_UNSPECIFIED Зарезервировано. Неопределенный тип цитаты.
REPLY Сообщение является ответом с цитированием на исходное сообщение в той же цепочке.
FORWARD Сообщение переслано из другого чата или из другой цепочки в том же чате.

Аннотации инструментов

Аннотации инструментов отправляются клиентам MCP, чтобы описать базовый риск, связанный с определенным инструментом. Большинство клиентов считают эти подсказки ненадежными, но их можно использовать, чтобы решить, когда пользователю может быть отправлен запрос на подтверждение.

Помимо строки заголовка, определены следующие логические подсказки:

  • readOnlyHint: если задано значение true, инструмент не изменяет свою среду. Значение по умолчанию – false.
  • destructiveHint: если задано значение True, инструмент может выполнять деструктивные действия. Если задано значение false, инструмент может выполнять только действия по добавлению. Значение по умолчанию: true.
  • idempotentHint. Если задано значение True, повторный вызов инструмента с теми же аргументами не будет иметь дополнительного эффекта в его среде. Значение по умолчанию – false.
  • openWorldHint: если задано значение true, инструмент может взаимодействовать с открытым миром внешних объектов. Если false, то инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.

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

Области авторизации

Требует одной из следующих областей применения OAuth:

  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.readonly