Инструмент: search_conversations
Поиск диалогов в Google Chat (именованные пространства, личные сообщения или групповые чаты) по отображаемому имени или участникам для определения идентификаторов диалогов.
Этот инструмент ищет метаданные переписки, а НЕ содержимое сообщений. Для поиска в истории сообщений или поиска сообщений по ключевому слову/отправителю/временной метке используйте search_messages или participants для поиска идентификаторов переписки.
Этот инструмент ищет метаданные переписки, а НЕ содержимое сообщений. Для поиска в истории сообщений или поиска сообщений по ключевому слову/отправителю/временной метке используйте search_messages .
Если указаны только participants , этот инструмент находит прямые сообщения один на один (если указан один участник) или групповые чаты (если указано несколько участников), в которых участвуют указанные участники и вызывающий пользователь.
Если указан только query , этот инструмент ищет беседы, в которых запрос представляет собой подстроку отображаемого имени беседы без учета регистра.
Если указаны и participants , и query , этот инструмент находит беседы по участникам, а затем фильтрует их по отображаемому имени.
Если ни participants , ни query не указаны, этот инструмент отображает список всех разговоров, в которых участвует вызывающий пользователь.
Этот инструмент отображает только те беседы, в которых участвует вызывающий пользователь.
Возвращает список объектов диалогов, содержащих идентификаторы диалогов (формат: пробелы/{пробел}), отображаемые имена и типы диалогов.
Возвращает список объектов диалогов, содержащих идентификаторы диалогов (формат: spaces/{space} ), отображаемые имена и типы диалогов.
ВАЖНО: Пустой список conversations не означает, что результатов больше нет. Если присутствует next_page_token , можно получить доступ к дополнительным страницам. Если список пуст, но next_page_token присутствует, спросите пользователя, следует ли продолжить поиск.
Приведённый ниже пример кода демонстрирует, как использовать curl для вызова инструмента MCP search_conversations .
| Запрос 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": "search_conversations", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
SearchConversationsRequest
| JSON-представление |
|---|
{ "spaceNameQuery": string, "pageSize": integer, "pageToken": string, "participants": [ string ] } |
| Поля | |
|---|---|
spaceNameQuery | Необязательно. Текст для поиска в отображаемых именах в пространстве (совпадение подстрок без учета регистра). |
pageSize | Необязательный параметр. Максимальное количество возвращаемых символов. Сервис может вернуть меньше этого значения. Если параметр не указан, будет возвращено не более 20 символов. Максимальное значение — 1000; значения выше 1000 будут преобразованы в 1000. |
pageToken | Необязательный параметр. Токен страницы, полученный из предыдущего вызова |
participants[] | Необязательно. Список адресов электронной почты участников для фильтрации разговоров, исключая звонившего. |
Схема вывода
Ответ, содержащий список соответствующих диалогов.
SearchConversationsResponse
| JSON-представление |
|---|
{
"conversations": [
{
object ( |
| Поля | |
|---|---|
conversations[] | Список объектов диалога, соответствующих критериям поиска. Каждый диалог включает в себя conversation_id (формат: пробелы/{пробел}), display_name, conversation_type и last_active_timestamp. |
nextPageToken | Токен, который можно отправить в качестве Заполняется только в том случае, если запрос отфильтрован по |
Беседа
| JSON-представление |
|---|
{
"conversationId": string,
"displayName": string,
"conversationType": enum ( |
| Поля | |
|---|---|
conversationId | Идентификатор беседы (например, "spaces/AAAAAAAAAA"). |
displayName | Отображаемое имя беседы. |
conversationType | Тип беседы (DIRECT_MESSAGE, GROUP_CHAT или NAMED_SPACE). |
lastActiveTimestamp | Время последней активности разговора в формате ISO 8601. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: |
Отметка времени
| JSON-представление |
|---|
{ "seconds": string, "nanos": integer } |
| Поля | |
|---|---|
seconds | Обозначает количество секунд UTC-времени с начала эпохи Unix 1970-01-01T00:00:00Z. Должно находиться в диапазоне от -62135596800 до 253402300799 включительно (что соответствует периоду с 0001-01-01T00:00:00Z по 9999-12-31T23:59:59Z). |
nanos | Неотрицательные доли секунды с разрешением в наносекунды. Это поле представляет собой наносекундную часть длительности, а не альтернативу секундам. Отрицательные значения секунд с дробными долями должны по-прежнему иметь неотрицательные значения в наносекундах, отсчитываемые вперед во времени. Должны быть в диапазоне от 0 до 999 999 999 включительно. |
ConversationType
Определяет тип разговора.
| Перечисления | |
|---|---|
CONVERSATION_TYPE_UNSPECIFIED | Не указано. |
NAMED_SPACE | Названное пространство. |
GROUP_CHAT | Групповой чат с участием 3 или более человек. |
DIRECT_MESSAGE | Прямое сообщение между двумя людьми или между человеком и приложением для чата. |
Аннотации инструментов
Аннотации к инструментам отправляются клиентам MCP для описания основных рисков, связанных с данным инструментом. Большинство клиентов считают эти подсказки недостоверными, но они могут использоваться для определения момента отправки пользователю запроса на подтверждение.
Наряду со строкой заголовка, определены следующие логические подсказки:
-
readOnlyHint: Если true, инструмент не изменяет свою среду. По умолчанию: false. -
destructiveHint: Если true, то инструмент может выполнять деструктивные действия. Если false, то инструмент может выполнять только аддитивные действия. По умолчанию: true. -
idempotentHint: Если true, то многократный вызов инструмента с одними и теми же аргументами не окажет дополнительного влияния на его окружение. По умолчанию: false. -
openWorldHint: Если true, то инструмент может взаимодействовать с «открытым миром» внешних объектов. Если false, то инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет представлять собой открытый мир, а инструмент для работы с памятью — нет.
Подсказка о разрушительном эффекте: ❌ | Подсказка об идемпотентности: ✅ | Подсказка только для чтения: ✅ | Подсказка об открытом мире: ❌
Области полномочий
Требуется один из следующих диапазонов аутентификации OAuth:
-
https://www.googleapis.com/auth/chat.memberships.readonly -
https://www.googleapis.com/auth/chat.spaces -
https://www.googleapis.com/auth/chat.spaces.readonly