Инструмент: send_message
Отправляет сообщение из Google Chat в диалог с использованием формата Markdown.
Этот инструмент использует в качестве входных данных идентификатор беседы, необязательный идентификатор ветки обсуждения и текст сообщения.
Идентификаторы диалогов можно найти с помощью инструмента search_conversations .
Возвращает созданное сообщение.
Приведённый ниже пример кода демонстрирует, как использовать curl для вызова инструмента MCP send_message .
| Запрос 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": "send_message", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
SendMessageRequest
| JSON-представление |
|---|
{ "conversationId": string, "threadId": string, "messageText": string } |
| Поля | |
|---|---|
conversationId | Обязательно. Идентификатор беседы (например, 'spaces/AAAA...'), на которую нужно отправить сообщение. |
threadId | Необязательный параметр. Идентификатор ветки обсуждения (например, 'spaces/AAAA.../threads/BBBB...'), в которую будет отправлено сообщение. Если не указан, сообщение будет отправлено в новую ветку обсуждения. |
messageText | Обязательно. Основное содержимое сообщения. Форматирование можно добавить с помощью стандартного Markdown (обратите внимание, что таблицы НЕ поддерживаются). Поддерживается следующее форматирование:
|
Схема вывода
Ответ на отправку сообщения в чате Google.
Отправить сообщениеОтвет
| JSON-представление |
|---|
{
"message": {
object ( |
| Поля | |
|---|---|
message | Отправленное сообщение. |
Сообщение в чате
| 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.create