Инструмент: 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 tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
ListChatMessagesRequest
| JSON-представление |
|---|
{ "conversationId": string, "threadId": string, "pageSize": integer, "pageToken": string, "startTime": string, "endTime": string } |
| Поля | |
|---|---|
conversationId | Обязательно. Идентификатор беседы. Беседа может быть пробелом, личным сообщением (DM) или групповым чатом/чатом. Формат: пробелы/{пробел} |
threadId | Необязательный параметр. Идентификатор конкретной ветки обсуждения. Если указан, будут возвращены только сообщения из этой ветки. Если опущен, будут учитываться сообщения из всех веток обсуждения. Формат: пробелы/{пробел}/ветки/{ветка} |
pageSize | Необязательный параметр. Максимальное количество возвращаемых сообщений. Сервис может вернуть меньше этого значения. Если параметр не указан, по умолчанию используется 20. Максимальное значение — 50. Если вы используете значение больше 50, оно автоматически изменяется на 50. |
pageToken | Необязательный параметр. Токен страницы, полученный из предыдущего вызова функции list_messages. Укажите его, чтобы получить следующую страницу. |
startTime | Необязательно. Метка времени ISO 8601 для фильтрации сообщений. Будут возвращены только сообщения, созданные после этого времени. |
endTime | Необязательно. Метка времени ISO 8601 для фильтрации сообщений. Будут возвращены только сообщения, созданные до этого времени. |
Схема вывода
Ответ, содержащий список сообщений из запрошенной беседы.
ListChatMessagesResponse
| JSON-представление |
|---|
{
"messages": [
{
object ( |
| Поля | |
|---|---|
messages[] | Список полученных сообщений в обратном хронологическом порядке (сначала самые новые). |
nextPageToken | Токен, который можно отправить в качестве |
Сообщение в чате
| JSON-представление |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Поля | |
|---|---|
messageId | Имя ресурса сообщения. Формат: пробелы/{пробел}/сообщения/{сообщение} |
threadId | Ветка обсуждения, к которой относится это сообщение. Если сообщение не относится к какой-либо ветке, это поле будет пустым. Формат: пробелы/{пробел}/ветки/{ветка} |
plaintextBody | Текст сообщения, оформленный в формате Markdown. |
sender | Отправитель сообщения. |
createTime | Только вывод. Отметка времени создания сообщения. |
threadedReply | Является ли сообщение ответом на сообщение в ветке обсуждения. |
attachments[] | Приложения, вложенные в сообщение. |
reactionSummaries[] | Сводка реакций с помощью эмодзи, включенная в сообщение. |
Пользователь
| JSON-представление |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Поля | |
|---|---|
userId | Имя ресурса пользователя чата. Формат: users/{user}. |
displayName | Отображаемое имя пользователя чата. |
email | Адрес электронной почты пользователя. Это поле заполняется только в том случае, если тип пользователя — HUMAN. |
userType | Тип пользователя. |
Метаданные вложения чата
| JSON-представление |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Поля | |
|---|---|
attachmentId | Имя ресурса вложения. Формат: пробелы/{пробел}/сообщения/{сообщение}/вложения/{вложение}. |
filename | Название вложенного файла. |
mimeType | Тип содержимого (MIME-тип). |
source | Источник вложения. |
РеакцияКраткое содержание
| JSON-представление |
|---|
{ "emoji": string, "count": integer } |
| Поля | |
|---|---|
emoji | Строка в формате Юникода для эмодзи или пользовательское имя эмодзи. |
count | Общее количество реакций с использованием соответствующего эмодзи. |
Тип пользователя
Тип пользователя Google Chat.
| Перечисления | |
|---|---|
USER_TYPE_UNSPECIFIED | Не указано. |
HUMAN | Пользователь-человек. |
APP | Пользователь приложения. |
Источник
Источник вложения.
| Перечисления | |
|---|---|
SOURCE_UNSPECIFIED | Сдержанный. |
DRIVE_FILE | Это файл из Google Диска. |
UPLOADED_CONTENT | Файл загружен в чат. |
Аннотации инструментов
Аннотации к инструментам отправляются клиентам MCP для описания основных рисков, связанных с данным инструментом. Большинство клиентов считают эти подсказки недостоверными, но они могут использоваться для определения момента отправки пользователю запроса на подтверждение.
Наряду со строкой заголовка, определены следующие логические подсказки:
-
readOnlyHint: Если true, инструмент не изменяет свою среду. По умолчанию: false. -
destructiveHint: Если true, то инструмент может выполнять деструктивные действия. Если false, то инструмент может выполнять только аддитивные действия. По умолчанию: true. -
idempotentHint: Если true, то многократный вызов инструмента с одними и теми же аргументами не окажет дополнительного влияния на его окружение. По умолчанию: false. -
openWorldHint: Если true, то инструмент может взаимодействовать с «открытым миром» внешних объектов. Если false, то инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет представлять собой открытый мир, а инструмент для работы с памятью — нет.
Подсказка о разрушительном эффекте: ❌ | Подсказка об идемпотентности: ✅ | Подсказка только для чтения: ✅ | Подсказка об открытом мире: ❌
Области полномочий
Требуется один из следующих диапазонов аутентификации OAuth:
-
https://www.googleapis.com/auth/chat.messages -
https://www.googleapis.com/auth/chat.messages.readonly