Инструмент: 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 |
Обязательно. Идентификатор чата. Чат может быть чат-группой, прямой перепиской или групповым чатом. Формат: spaces/{space} |
threadId |
Необязательное поле. Идентификатор определенной цепочки в чате. Если указан, будут возвращены только сообщения из этой цепочки. Если этот параметр не указан, учитываются сообщения из всех цепочек в чате. Формат: spaces/{space}/threads/{thread} |
pageSize |
Необязательное поле. Максимальное количество сообщений, которое нужно вернуть. Сервис может вернуть меньше результатов, чем указано в этом значении. Если не указано, по умолчанию используется 20. Максимальное значение – 50. Если вы укажете значение больше 50, оно будет автоматически изменено на 50. |
pageToken |
Необязательное поле. Токен страницы, полученный из предыдущего вызова list_messages. Укажите его, чтобы получить следующую страницу. |
startTime |
Необязательное поле. Временная метка ISO 8601 для фильтрации сообщений. Будут возвращены только сообщения, созданные после этого времени. |
endTime |
Необязательное поле. Временная метка ISO 8601 для фильтрации сообщений. Будут возвращены только сообщения, созданные до этого времени. |
Схема вывода
Ответ, содержащий список сообщений из запрошенного разговора.
ListChatMessagesResponse
| JSON-представление |
|---|
{
"messages": [
{
object ( |
| Поля | |
|---|---|
messages[] |
Список полученных сообщений в обратном хронологическом порядке (сначала самые новые). |
nextPageToken |
Токен, который можно отправить как |
ChatMessage
| JSON-представление |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Поля | |
|---|---|
messageId |
Название ресурса сообщения. Формат: spaces/{space}/messages/{message} |
threadId |
Цепочка, к которой относится это сообщение. Если сообщение не входит в цепочку, это поле будет пустым. Формат: spaces/{space}/threads/{thread} |
plaintextBody |
Текст сообщения с форматированием Markdown. |
sender |
Отправитель сообщения. |
createTime |
Только для вывода. Временная метка создания сообщения. Формат: временная метка ISO 8601. |
threadedReply |
Является ли сообщение ответом в цепочке. |
attachments[] |
Прикрепленные файлы. |
reactionSummaries[] |
Сводка реакций с эмодзи, включенная в сообщение. |
quotedMessageMetadata |
Только для вывода. Информация об исходном письме, которое цитируется или пересылается в этом письме. Примечание. Это поле находится на стадии разработки и может быть доступно не во всех средах. |
Пользователь
| JSON-представление |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Поля | |
|---|---|
userId |
Название ресурса пользователя Chat. Формат: users/{user}. |
displayName |
Отображаемое имя пользователя Chat. |
email |
Адрес электронной почты пользователя. Это поле заполняется, только если тип пользователя – HUMAN. |
userType |
Тип пользователя. |
ChatAttachmentMetadata
| JSON-представление |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Поля | |
|---|---|
attachmentId |
Название ресурса прикрепленного файла. Формат: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Название прикрепленного файла. |
mimeType |
Тип контента (MIME-тип). |
source |
Источник прикрепленного файла. |
driveFileId |
Только для вывода. Идентификатор файла на Google Диске. Заполняется, только если источником является DRIVE_FILE. Используйте с MCP Google Диска. |
ReactionSummary
| JSON-представление |
|---|
{ "emoji": string, "count": integer } |
| Поля | |
|---|---|
emoji |
Строка Unicode для эмодзи или название пользовательского эмодзи. |
count |
Общее количество реакций с использованием связанного эмодзи. |
QuotedMessageMetadata
| JSON-представление |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Поля | |
|---|---|
messageId |
Только для вывода. Название ресурса исходного сообщения, которое цитируется или пересылается. Формат: spaces/{space}/messages/{message} |
lastUpdateTime |
Только для вывода. Временная метка создания или последнего обновления исходного сообщения до того, как оно было процитировано или переслано. Формат: временная метка ISO 8601. |
quoteType |
Только для вывода. Тип цитаты. |
plaintextBody |
Только для вывода. Снимок текстового тела исходного сообщения на момент цитирования или пересылки. Форматирование с помощью Markdown для |
sender |
Только для вывода. Отображаемое имя автора исходного сообщения. |
attachments[] |
Только для вывода. Прикрепленные файлы, которые были частью исходного сообщения. Заполняется только для типа цены |
forwardedMetadata |
Только для вывода. Метаданные об исходном чате пересланного сообщения. Заполняется только для типа цены |
ForwardedMetadata
| JSON-представление |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Поля | |
|---|---|
conversationId |
Только для вывода. Название ресурса исходного чата. Формат: spaces/{space} |
conversationDisplayName |
Только для вывода. Отображаемое название исходного чата на момент пересылки сообщения. Для именованных чат-групп это название группы. Для прямой переписки это имя другого участника. Для групповых чатов без названия это сгенерированное название на основе имен участников. |
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.messageshttps://www.googleapis.com/auth/chat.messages.readonly