---
title: "Инструменты MCP tuk-tuk.online: 48 действий для нейросети"
nav_title: "Инструменты MCP"
url: https://docs.tuk-tuk.online/api/mcp-tools
markdown: https://docs.tuk-tuk.online/api/mcp-tools.md
section: "API для разработчиков"
description: "Полный справочник MCP-сервера TukTuk: 48 инструментов для нейросети. Отправка сообщений, контакты, история, файлы, рассылки, связки, воронки, ассистенты, задачи и события, параметры каждого инструмента и строка подключения."
keywords: ["MCP", "MCP сервер", "инструменты MCP", "нейросеть мессенджеры", "AI агент", "Claude MCP", "tuktuk mcp", "stdio", "подключить ИИ к мессенджерам"]
lang: ru
product: tuk-tuk.online
app: https://lk.tuk-tuk.online
api_base: https://back.tuk-tuk.online
---

> [!AI] Кратко
> MCP-сервер TukTuk версии 1.1.0: 48 инструментов для нейросети поверх публичного API, подключение одной строкой через npx, авторизация ключом TUKTUK_API_KEY.
>
> - Подключение: npx -y https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz, транспорт stdio, ключ в переменной TUKTUK_API_KEY.
> - Инструментов 48; видимость зависит от прав ключа.
> - Порядок работы: tuktuk_manifest → tuktuk_list_channels → поиск контакта → чтение истории → отправка.
> - tuktuk_manifest: Что умеет этот аккаунт TukTuk и что разрешено вашему ключу прямо сейчас. Вызовите первым, если не уверены, доступно ли нужное действие.
> - tuktuk_account: Баланс, тариф, лимиты и расход сообщений рабочего пространства. Лимиты приходят фактические, с учётом расширений, докупленных сверх тарифа; в subscription видно, из чего складывается счёт: цена тарифа плюс расширения. Полезно перед массовой отправкой: если canSend=false, отправка не пройдёт.
> - tuktuk_dashboard: Сводка рабочего стола за 30 дней одним запросом: деньги (расход по дням, прогноз), объёмы сообщений по дням и каналам, сегодняшний поток по часам, диалоги без ответа, пиковые час и день, сегментация обращений. Только цифры: текстов переписки здесь нет.
> - tuktuk_list_channels: Список подключённых каналов связи со статусом: Telegram, VK, Instagram, Авито, MAX, Email, SMS, чат-виджет. Отсюда берётся channelId для отправки. Секреты каналов не отдаются.
> - tuktuk_find_contact: Найти контакт по телефону или email. Возвращает карточку клиента или ошибку «не найден».
> - tuktuk_list_contacts: Список контактов с фильтрами: поиск по тексту, тег, канал, статус диалога, наличие телефона или email. Используйте, чтобы собрать аудиторию или найти нужного клиента.
> - tuktuk_get_contact: Карточка контакта целиком: имя, каналы, теги, произвольные поля, статус.
> - tuktuk_create_contact: Завести карточку клиента. Нужен, когда клиент пришёл извне: из формы, из CRM, из вашей базы. Для отправки создавать контакт заранее не обязательно, tuktuk_send_message сделает это сам.
> - tuktuk_update_contact: Обновить карточку: имя, телефон, email, теги, произвольные поля, статус диалога, архив. Установите chainsBlocked=true, если разговор ведёте вы и автоматические сценарии не должны вмешиваться.
> - tuktuk_add_note: Внутренняя заметка в карточке клиента. Клиенту не уходит, видна команде. Хорошее место для выводов, которые вы сделали о клиенте.
> - tuktuk_read_messages: История переписки с клиентом, свежие сверху. Содержит вложения и расшифровки голосовых. Читайте перед ответом, чтобы не повторять уже сказанное.
> - tuktuk_send_message: Отправить сообщение клиенту прямо сейчас: текст, картинку, голосовое, документ или письмо. Адресуйте по dialogId, либо по channelId вместе с phone, email или identifier: контакт найдётся или создастся. Отправка списывается с баланса рабочего пространства так же, как ответ оператора.
> - tuktuk_schedule_message: Поставить сообщение на конкретное время. Момент отправки держит платформа, поэтому вы можете завершиться сразу. Именно этот инструмент нужен для напоминаний, отложенных ответов и «напиши ему завтра в 9 утра».
> - tuktuk_list_scheduled: Что стоит в очереди и ещё не отправлено.
> - tuktuk_cancel_scheduled: Отменить отложенное сообщение до момента отправки. После отправки отменить уже нельзя.
> - tuktuk_upload_file: Положить файл по ссылке в постоянное хранилище TukTuk и получить URL, который не протухнет. Используйте перед отправкой вложения, если ваша ссылка временная или требует авторизации.
> - tuktuk_preview_audience: Посчитать, сколько человек попадёт под фильтр и кому нельзя написать в выбранном канале. Делайте это до запуска рассылки: так вы не потратите деньги впустую.
> - tuktuk_create_broadcast: Создать рассылку по сегменту клиентов. Создание не отправляет ничего: запуск отдельным вызовом tuktuk_start_broadcast. Темп задаётся delayMinSec и delayMaxSec, окно времени, windowFromMin и windowToMin.
> - tuktuk_start_broadcast: Запустить рассылку. Если задан scheduledAt в будущем, она встанет в расписание. Работает только для черновика и запланированной: паузу продолжают через tuktuk_stop_broadcast с mode=pause и обратный вызов resume, завершённую повторяют через tuktuk_duplicate_broadcast.
> - tuktuk_stop_broadcast: Остановить рассылку. mode=pause ставит на паузу, mode=cancel отменяет остаток без возможности продолжить.
> - tuktuk_duplicate_broadcast: Копия рассылки. Завершённую или остановленную рассылку нельзя запустить заново: те, кому уже отправили, получили бы сообщение дважды. Чтобы повторить, сделайте копию и запустите её.
> - tuktuk_list_broadcasts: Список рассылок с прогрессом: сколько отправлено, сколько не дошло.
> - tuktuk_broadcast_report: Отчёт доставки по каждому получателю: кому ушло, кому нет и по какой причине.
> - tuktuk_list_chains: Связки, это автоматические сценарии на входящее сообщение. Возвращает список с блоками и состоянием.
> - tuktuk_chain_block_types: Справочник типов блоков связки: что можно поставить в сценарий и ссылки на документацию.
> - tuktuk_chain_templates: Готовые сценарии связок: приветствие, автоответчик, дожим, вызов оператора и другие. Ключ шаблона отдайте в tuktuk_create_chain_from_template, чтобы не собирать блоки руками.
> - tuktuk_create_chain_from_template: Создать связку из готового шаблона. Блоки, триггер и условия запуска приходят собранными; дальше её можно править через tuktuk_save_chain.
> - tuktuk_save_chain: Создать или изменить связку. Без chainId создаётся новая. Блоки передаются массивом целиком, типы берите из tuktuk_chain_block_types.
> - tuktuk_toggle_chain: Включить или выключить связку. Выключенная связка не запускается на входящие сообщения, но сохраняет схему и историю запусков.
> - tuktuk_list_funnels: Воронки автопостинга: сторис и посты по расписанию, в том числе зациклённые.
> - tuktuk_run_funnel: Запустить или остановить воронку автопостинга. action=stop останавливает.
> - tuktuk_list_assistants: ИИ-ассистенты рабочего пространства: кто отвечает клиентам автоматически, со статистикой.
> - tuktuk_pause_assistant: Забрать конкретный диалог себе: ассистент не будет отвечать указанное число минут. Вызывайте перед тем, как вести переписку самостоятельно, иначе клиент получит два ответа.
> - tuktuk_resume_assistant: Вернуть диалог ИИ-ассистенту раньше срока паузы: он снова начнёт отвечать клиенту.
> - tuktuk_pause_all_assistants: Замолчать всем ассистентам на N минут: отвечать будут только люди. Настройки ассистентов сохраняются, по истечении срока они сами вернутся в работу.
> - tuktuk_resume_all_assistants: Вернуть всех ассистентов в работу до истечения паузы.
> - tuktuk_ai_catalog: Каталог нейросетей платформы: какие модели существуют, что умеют (текст, картинки, вызов функций), сколько примерно стоят и какие из них работают из России без VPN.
> - tuktuk_ai_providers: Нейросети, подключённые у клиента: модель по умолчанию, состояние ключа (работает / не принят) и список моделей, доступных именно по его ключу. Ключи наружу не отдаются.
> - tuktuk_ai_test_provider: Проверить ключ нейросети и обновить список её моделей. Вызывайте, если ассистент молчит или в журнале появились ошибки авторизации.
> - tuktuk_ai_search_knowledge: Найти в базе знаний клиента точный ответ: цены, сроки, условия, характеристики. Тот же поиск, которым пользуется ассистент: цифры берите отсюда, а не из головы.
> - tuktuk_ai_add_knowledge: Добавить в базу знаний файл, по которому будут отвечать ассистенты: прайс, условия доставки, ответы на частые вопросы. Текст режется на фрагменты и индексируется сразу.
> - tuktuk_ai_logs: Журнал обращений к нейросети: что спросил клиент, что ответил ассистент, какие действия он выполнил, сколько токенов ушло и с какой ошибкой всё упало. Первое место для разбора жалоб.
> - tuktuk_ai_chat: Разовый запрос к нейросети клиента, на его ключе и его тарифе. Полезно, когда нужно обработать текст в стиле компании, не заводя собственных ключей.
> - tuktuk_list_tasks: Задачи CRM: статус, приоритет, исполнитель, дедлайн, привязка к клиенту.
> - tuktuk_create_task: Поставить задачу человеку. Используйте, когда сами решить вопрос не можете: нужен звонок, документ, решение руководителя.
> - tuktuk_event_types: Каталог событий платформы, на которые можно подписаться: входящие сообщения, диалоги, связки, каналы, оплаты.
> - tuktuk_subscribe_events: Подписаться на события: входящие сообщения и другие изменения будут приходить на ваш URL. Секрет подписи возвращается один раз, сохраните его: им подписан заголовок X-Webhook-Signature.
> - tuktuk_list_subscriptions: Действующие подписки на события. Секреты не возвращаются.
>
> Связанные страницы: https://docs.tuk-tuk.online/api/agents, https://docs.tuk-tuk.online/api/reference, https://docs.tuk-tuk.online/api/recipes, https://docs.tuk-tuk.online/api/rest

# Инструменты MCP

MCP-сервер TukTuk отдаёт нейросети 48 инструментов: по одному на действие публичного API. Список собран из самого сервера, поэтому совпадает с тем, что агент увидит после подключения.

> [!NOTE] Инструменты фильтруются по правам ключа: то, на что прав нет, агенту не показывается, и ход на заведомый отказ не тратится. Из 48 инструментов 47 требуют отдельного права, остальные доступны любому валидному ключу.

## Подключение за одну строку

Сервер запускается через stdio и требует только ключ API. Ключ выпускается в кабинете: **Настройки проекта → API**.

```json
{
  "mcpServers": {
    "tuktuk": {
      "command": "npx",
      "args": [
        "-y",
        "https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz"
      ],
      "env": {
        "TUKTUK_API_KEY": "tuk_sk_…"
      }
    }
  }
}
```

| Клиент | Куда положить |
|---|---|
| Claude Desktop | `claude_desktop_config.json` → раздел `mcpServers` |
| Claude Code | `claude mcp add tuktuk --env TUKTUK_API_KEY=tuk_sk_… -- npx -y https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz` |
| Cursor, Windsurf, Cline | `mcp.json` рабочего пространства, тот же блок `mcpServers` |
| Свой агент | запустите `npx -y https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz` и говорите с ним по stdio |

| Переменная | Обязательна | Значение |
|---|---|---|
| `TUKTUK_API_KEY` | да | Ключ публичного API, формат `tuk_sk_…` |
| `TUKTUK_API_URL` | нет | Базовый адрес API, по умолчанию `https://back.tuk-tuk.online/api/v1` |

Без ключа сервер всё равно запустится и объяснит агенту, как ключ получить. Это лучше, чем молчаливый отказ на первом же вызове.

## С чего начать агенту

1. `tuktuk_manifest`: что доступно этому ключу прямо сейчас.
2. `tuktuk_list_channels`: через какой канал вы вообще можете говорить.
3. `tuktuk_find_contact` или `tuktuk_list_contacts`: найти собеседника.
4. `tuktuk_read_messages`: прочитать переписку перед ответом.
5. `tuktuk_send_message`: ответить.

Полный разбор сценариев: [Сценарии для агента](https://docs.tuk-tuk.online/api/recipes).

## Все инструменты

| Инструмент | Что делает | Право |
|---|---|---|
| [`tuktuk_manifest`](#tuktuk-manifest) | Что умеет этот аккаунт TukTuk и что разрешено вашему ключу прямо сейчас. Вызовите первым, если не уверены, доступно ли нужное действие. | любой ключ |
| [`tuktuk_account`](#tuktuk-account) | Баланс, тариф, лимиты и расход сообщений рабочего пространства. Лимиты приходят фактические, с учётом расширений, докупленных сверх тарифа; в subscription видно, из чего складывается счёт: цена тарифа плюс расширения. Полезно перед массовой отправкой: если canSend=false, отправка не пройдёт. | `account:read` |
| [`tuktuk_dashboard`](#tuktuk-dashboard) | Сводка рабочего стола за 30 дней одним запросом: деньги (расход по дням, прогноз), объёмы сообщений по дням и каналам, сегодняшний поток по часам, диалоги без ответа, пиковые час и день, сегментация обращений. Только цифры: текстов переписки здесь нет. | `account:read` |
| [`tuktuk_list_channels`](#tuktuk-list-channels) | Список подключённых каналов связи со статусом: Telegram, VK, Instagram, Авито, MAX, Email, SMS, чат-виджет. Отсюда берётся channelId для отправки. Секреты каналов не отдаются. | `messengers:read` |
| [`tuktuk_find_contact`](#tuktuk-find-contact) | Найти контакт по телефону или email. Возвращает карточку клиента или ошибку «не найден». | `contacts:read` |
| [`tuktuk_list_contacts`](#tuktuk-list-contacts) | Список контактов с фильтрами: поиск по тексту, тег, канал, статус диалога, наличие телефона или email. Используйте, чтобы собрать аудиторию или найти нужного клиента. | `contacts:read` |
| [`tuktuk_get_contact`](#tuktuk-get-contact) | Карточка контакта целиком: имя, каналы, теги, произвольные поля, статус. | `contacts:read` |
| [`tuktuk_create_contact`](#tuktuk-create-contact) | Завести карточку клиента. Нужен, когда клиент пришёл извне: из формы, из CRM, из вашей базы. Для отправки создавать контакт заранее не обязательно, tuktuk_send_message сделает это сам. | `contacts:write` |
| [`tuktuk_update_contact`](#tuktuk-update-contact) | Обновить карточку: имя, телефон, email, теги, произвольные поля, статус диалога, архив. Установите chainsBlocked=true, если разговор ведёте вы и автоматические сценарии не должны вмешиваться. | `contacts:write` |
| [`tuktuk_add_note`](#tuktuk-add-note) | Внутренняя заметка в карточке клиента. Клиенту не уходит, видна команде. Хорошее место для выводов, которые вы сделали о клиенте. | `contacts:write` |
| [`tuktuk_read_messages`](#tuktuk-read-messages) | История переписки с клиентом, свежие сверху. Содержит вложения и расшифровки голосовых. Читайте перед ответом, чтобы не повторять уже сказанное. | `messages:read` |
| [`tuktuk_send_message`](#tuktuk-send-message) | Отправить сообщение клиенту прямо сейчас: текст, картинку, голосовое, документ или письмо. Адресуйте по dialogId, либо по channelId вместе с phone, email или identifier: контакт найдётся или создастся. Отправка списывается с баланса рабочего пространства так же, как ответ оператора. | `messages:send` |
| [`tuktuk_schedule_message`](#tuktuk-schedule-message) | Поставить сообщение на конкретное время. Момент отправки держит платформа, поэтому вы можете завершиться сразу. Именно этот инструмент нужен для напоминаний, отложенных ответов и «напиши ему завтра в 9 утра». | `messages:send` |
| [`tuktuk_list_scheduled`](#tuktuk-list-scheduled) | Что стоит в очереди и ещё не отправлено. | `messages:send` |
| [`tuktuk_cancel_scheduled`](#tuktuk-cancel-scheduled) | Отменить отложенное сообщение до момента отправки. После отправки отменить уже нельзя. | `messages:send` |
| [`tuktuk_upload_file`](#tuktuk-upload-file) | Положить файл по ссылке в постоянное хранилище TukTuk и получить URL, который не протухнет. Используйте перед отправкой вложения, если ваша ссылка временная или требует авторизации. | `files:write` |
| [`tuktuk_preview_audience`](#tuktuk-preview-audience) | Посчитать, сколько человек попадёт под фильтр и кому нельзя написать в выбранном канале. Делайте это до запуска рассылки: так вы не потратите деньги впустую. | `broadcasts:read` |
| [`tuktuk_create_broadcast`](#tuktuk-create-broadcast) | Создать рассылку по сегменту клиентов. Создание не отправляет ничего: запуск отдельным вызовом tuktuk_start_broadcast. Темп задаётся delayMinSec и delayMaxSec, окно времени, windowFromMin и windowToMin. | `broadcasts:write` |
| [`tuktuk_start_broadcast`](#tuktuk-start-broadcast) | Запустить рассылку. Если задан scheduledAt в будущем, она встанет в расписание. Работает только для черновика и запланированной: паузу продолжают через tuktuk_stop_broadcast с mode=pause и обратный вызов resume, завершённую повторяют через tuktuk_duplicate_broadcast. | `broadcasts:write` |
| [`tuktuk_stop_broadcast`](#tuktuk-stop-broadcast) | Остановить рассылку. mode=pause ставит на паузу, mode=cancel отменяет остаток без возможности продолжить. | `broadcasts:write` |
| [`tuktuk_duplicate_broadcast`](#tuktuk-duplicate-broadcast) | Копия рассылки. Завершённую или остановленную рассылку нельзя запустить заново: те, кому уже отправили, получили бы сообщение дважды. Чтобы повторить, сделайте копию и запустите её. | `broadcasts:write` |
| [`tuktuk_list_broadcasts`](#tuktuk-list-broadcasts) | Список рассылок с прогрессом: сколько отправлено, сколько не дошло. | `broadcasts:read` |
| [`tuktuk_broadcast_report`](#tuktuk-broadcast-report) | Отчёт доставки по каждому получателю: кому ушло, кому нет и по какой причине. | `broadcasts:read` |
| [`tuktuk_list_chains`](#tuktuk-list-chains) | Связки, это автоматические сценарии на входящее сообщение. Возвращает список с блоками и состоянием. | `chains:read` |
| [`tuktuk_chain_block_types`](#tuktuk-chain-block-types) | Справочник типов блоков связки: что можно поставить в сценарий и ссылки на документацию. | `chains:read` |
| [`tuktuk_chain_templates`](#tuktuk-chain-templates) | Готовые сценарии связок: приветствие, автоответчик, дожим, вызов оператора и другие. Ключ шаблона отдайте в tuktuk_create_chain_from_template, чтобы не собирать блоки руками. | `chains:read` |
| [`tuktuk_create_chain_from_template`](#tuktuk-create-chain-from-template) | Создать связку из готового шаблона. Блоки, триггер и условия запуска приходят собранными; дальше её можно править через tuktuk_save_chain. | `chains:write` |
| [`tuktuk_save_chain`](#tuktuk-save-chain) | Создать или изменить связку. Без chainId создаётся новая. Блоки передаются массивом целиком, типы берите из tuktuk_chain_block_types. | `chains:write` |
| [`tuktuk_toggle_chain`](#tuktuk-toggle-chain) | Включить или выключить связку. Выключенная связка не запускается на входящие сообщения, но сохраняет схему и историю запусков. | `chains:write` |
| [`tuktuk_list_funnels`](#tuktuk-list-funnels) | Воронки автопостинга: сторис и посты по расписанию, в том числе зациклённые. | `funnels:read` |
| [`tuktuk_run_funnel`](#tuktuk-run-funnel) | Запустить или остановить воронку автопостинга. action=stop останавливает. | `funnels:write` |
| [`tuktuk_list_assistants`](#tuktuk-list-assistants) | ИИ-ассистенты рабочего пространства: кто отвечает клиентам автоматически, со статистикой. | `assistants:read` |
| [`tuktuk_pause_assistant`](#tuktuk-pause-assistant) | Забрать конкретный диалог себе: ассистент не будет отвечать указанное число минут. Вызывайте перед тем, как вести переписку самостоятельно, иначе клиент получит два ответа. | `assistants:write` |
| [`tuktuk_resume_assistant`](#tuktuk-resume-assistant) | Вернуть диалог ИИ-ассистенту раньше срока паузы: он снова начнёт отвечать клиенту. | `assistants:write` |
| [`tuktuk_pause_all_assistants`](#tuktuk-pause-all-assistants) | Замолчать всем ассистентам на N минут: отвечать будут только люди. Настройки ассистентов сохраняются, по истечении срока они сами вернутся в работу. | `assistants:write` |
| [`tuktuk_resume_all_assistants`](#tuktuk-resume-all-assistants) | Вернуть всех ассистентов в работу до истечения паузы. | `assistants:write` |
| [`tuktuk_ai_catalog`](#tuktuk-ai-catalog) | Каталог нейросетей платформы: какие модели существуют, что умеют (текст, картинки, вызов функций), сколько примерно стоят и какие из них работают из России без VPN. | `ai:read` |
| [`tuktuk_ai_providers`](#tuktuk-ai-providers) | Нейросети, подключённые у клиента: модель по умолчанию, состояние ключа (работает / не принят) и список моделей, доступных именно по его ключу. Ключи наружу не отдаются. | `ai:read` |
| [`tuktuk_ai_test_provider`](#tuktuk-ai-test-provider) | Проверить ключ нейросети и обновить список её моделей. Вызывайте, если ассистент молчит или в журнале появились ошибки авторизации. | `ai:write` |
| [`tuktuk_ai_search_knowledge`](#tuktuk-ai-search-knowledge) | Найти в базе знаний клиента точный ответ: цены, сроки, условия, характеристики. Тот же поиск, которым пользуется ассистент: цифры берите отсюда, а не из головы. | `ai:read` |
| [`tuktuk_ai_add_knowledge`](#tuktuk-ai-add-knowledge) | Добавить в базу знаний файл, по которому будут отвечать ассистенты: прайс, условия доставки, ответы на частые вопросы. Текст режется на фрагменты и индексируется сразу. | `ai:write` |
| [`tuktuk_ai_logs`](#tuktuk-ai-logs) | Журнал обращений к нейросети: что спросил клиент, что ответил ассистент, какие действия он выполнил, сколько токенов ушло и с какой ошибкой всё упало. Первое место для разбора жалоб. | `ai:read` |
| [`tuktuk_ai_chat`](#tuktuk-ai-chat) | Разовый запрос к нейросети клиента, на его ключе и его тарифе. Полезно, когда нужно обработать текст в стиле компании, не заводя собственных ключей. | `ai:write` |
| [`tuktuk_list_tasks`](#tuktuk-list-tasks) | Задачи CRM: статус, приоритет, исполнитель, дедлайн, привязка к клиенту. | `tasks:read` |
| [`tuktuk_create_task`](#tuktuk-create-task) | Поставить задачу человеку. Используйте, когда сами решить вопрос не можете: нужен звонок, документ, решение руководителя. | `tasks:write` |
| [`tuktuk_event_types`](#tuktuk-event-types) | Каталог событий платформы, на которые можно подписаться: входящие сообщения, диалоги, связки, каналы, оплаты. | `webhooks:manage` |
| [`tuktuk_subscribe_events`](#tuktuk-subscribe-events) | Подписаться на события: входящие сообщения и другие изменения будут приходить на ваш URL. Секрет подписи возвращается один раз, сохраните его: им подписан заголовок X-Webhook-Signature. | `webhooks:manage` |
| [`tuktuk_list_subscriptions`](#tuktuk-list-subscriptions) | Действующие подписки на события. Секреты не возвращаются. | `webhooks:manage` |

## Параметры

### `tuktuk_manifest`

Что умеет этот аккаунт TukTuk и что разрешено вашему ключу прямо сейчас. Вызовите первым, если не уверены, доступно ли нужное действие.

Право: достаточно валидного ключа.

Параметров нет.

### `tuktuk_account`

Баланс, тариф, лимиты и расход сообщений рабочего пространства. Лимиты приходят фактические, с учётом расширений, докупленных сверх тарифа; в subscription видно, из чего складывается счёт: цена тарифа плюс расширения. Полезно перед массовой отправкой: если canSend=false, отправка не пройдёт.

Право: `account:read`.

Параметров нет.

### `tuktuk_dashboard`

Сводка рабочего стола за 30 дней одним запросом: деньги (расход по дням, прогноз), объёмы сообщений по дням и каналам, сегодняшний поток по часам, диалоги без ответа, пиковые час и день, сегментация обращений. Только цифры: текстов переписки здесь нет.

Право: `account:read`.

Параметров нет.

### `tuktuk_list_channels`

Список подключённых каналов связи со статусом: Telegram, VK, Instagram, Авито, MAX, Email, SMS, чат-виджет. Отсюда берётся channelId для отправки. Секреты каналов не отдаются.

Право: `messengers:read`.

Параметров нет.

### `tuktuk_find_contact`

Найти контакт по телефону или email. Возвращает карточку клиента или ошибку «не найден».

Право: `contacts:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `phone` | string | нет | Телефон получателя в международном формате, например +79991234567. |
| `email` | string | нет | Email получателя. |

### `tuktuk_list_contacts`

Список контактов с фильтрами: поиск по тексту, тег, канал, статус диалога, наличие телефона или email. Используйте, чтобы собрать аудиторию или найти нужного клиента.

Право: `contacts:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `search` | string | нет | Поиск по имени, телефону, email и тексту последнего сообщения. |
| `tag` | string | нет | Только контакты с этим тегом. |
| `channelId` | string | нет | Только контакты этого канала. |
| `status` | `NEW` · `IN_PROGRESS` · `WAITING_CLIENT` · `CLOSED` | нет |  |
| `hasPhone` | boolean | нет |  |
| `hasEmail` | boolean | нет |  |
| `limit` | integer | нет | От 1 до 100, по умолчанию 30. |
| `offset` | integer | нет |  |

### `tuktuk_get_contact`

Карточка контакта целиком: имя, каналы, теги, произвольные поля, статус.

Право: `contacts:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `contactId` | string | да |  |

### `tuktuk_create_contact`

Завести карточку клиента. Нужен, когда клиент пришёл извне: из формы, из CRM, из вашей базы. Для отправки создавать контакт заранее не обязательно, tuktuk_send_message сделает это сам.

Право: `contacts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `name` | string | да | Имя клиента. |
| `phone` | string | нет | Телефон получателя в международном формате, например +79991234567. |
| `email` | string | нет | Email получателя. |
| `identifier` | string | нет | Идентификатор клиента в канале: chat id, username и подобное. |
| `channelId` | string | нет | ID канала отправки. Обязателен, если адресуете по телефону, email или identifier. |
| `source` | string | нет | Откуда пришёл клиент. |
| `tags` | array | нет |  |
| `customFields` | object | нет | Произвольные поля карточки, например {"город":"Москва"}. |

### `tuktuk_update_contact`

Обновить карточку: имя, телефон, email, теги, произвольные поля, статус диалога, архив. Установите chainsBlocked=true, если разговор ведёте вы и автоматические сценарии не должны вмешиваться.

Право: `contacts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `contactId` | string | да |  |
| `name` | string | нет |  |
| `phone` | string | нет | Телефон получателя в международном формате, например +79991234567. |
| `email` | string | нет | Email получателя. |
| `tags` | array | нет | Полная замена набора тегов. |
| `customFields` | object | нет | Полная замена произвольных полей. |
| `status` | `NEW` · `IN_PROGRESS` · `WAITING_CLIENT` · `CLOSED` | нет |  |
| `archived` | boolean | нет |  |
| `chainsBlocked` | boolean | нет |  |

### `tuktuk_add_note`

Внутренняя заметка в карточке клиента. Клиенту не уходит, видна команде. Хорошее место для выводов, которые вы сделали о клиенте.

Право: `contacts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `contactId` | string | да |  |
| `text` | string | да |  |
| `expiresInMinutes` | integer | нет | Через сколько минут заметка удалится сама. |

### `tuktuk_read_messages`

История переписки с клиентом, свежие сверху. Содержит вложения и расшифровки голосовых. Читайте перед ответом, чтобы не повторять уже сказанное.

Право: `messages:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `contactId` | string | да |  |
| `limit` | integer | нет | От 1 до 100, по умолчанию 30. |
| `offset` | integer | нет |  |

### `tuktuk_send_message`

Отправить сообщение клиенту прямо сейчас: текст, картинку, голосовое, документ или письмо. Адресуйте по dialogId, либо по channelId вместе с phone, email или identifier: контакт найдётся или создастся. Отправка списывается с баланса рабочего пространства так же, как ответ оператора.

Право: `messages:send`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `dialogId` | string | нет | ID контакта в TukTuk. Самый надёжный способ адресации. |
| `channelId` | string | нет | ID канала отправки. Обязателен, если адресуете по телефону, email или identifier. |
| `phone` | string | нет | Телефон получателя в международном формате, например +79991234567. |
| `email` | string | нет | Email получателя. |
| `identifier` | string | нет | Идентификатор клиента в канале: chat id, username и подобное. |
| `name` | string | нет | Имя, под которым завести контакт, если его ещё нет. |
| `text` | string | нет | Текст сообщения. Можно опустить, если передаёте mediaUrl. |
| `mediaUrl` | string | нет | Абсолютная ссылка на вложение. Если ссылка временная, сначала положите файл через tuktuk_upload_file. |
| `mediaType` | `photo` · `voice` · `audio` · `video` · `video_note` · `document` · `sticker` | нет | Тип вложения. Для голосового сообщения используйте voice. |
| `subject` | string | нет | Тема письма. Только для email-канала. |
| `transactional` | boolean | нет | Только для email: письмо служебное, то есть чек, счёт, доступ к покупке, код входа или уведомление владельцу. Отписка от рассылки такие письма не глушит. Для рассылок и промо не ставьте: отправка отписавшемуся вернёт 422. |

### `tuktuk_schedule_message`

Поставить сообщение на конкретное время. Момент отправки держит платформа, поэтому вы можете завершиться сразу. Именно этот инструмент нужен для напоминаний, отложенных ответов и «напиши ему завтра в 9 утра».

Право: `messages:send`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `dialogId` | string | нет | ID контакта в TukTuk. Самый надёжный способ адресации. |
| `channelId` | string | нет | ID канала отправки. Обязателен, если адресуете по телефону, email или identifier. |
| `phone` | string | нет | Телефон получателя в международном формате, например +79991234567. |
| `email` | string | нет | Email получателя. |
| `identifier` | string | нет | Идентификатор клиента в канале: chat id, username и подобное. |
| `name` | string | нет | Имя, под которым завести контакт, если его ещё нет. |
| `text` | string | нет | Текст сообщения. Можно опустить, если передаёте mediaUrl. |
| `mediaUrl` | string | нет | Абсолютная ссылка на вложение. Если ссылка временная, сначала положите файл через tuktuk_upload_file. |
| `mediaType` | `photo` · `voice` · `audio` · `video` · `video_note` · `document` · `sticker` | нет | Тип вложения. Для голосового сообщения используйте voice. |
| `subject` | string | нет | Тема письма. Только для email-канала. |
| `transactional` | boolean | нет | Только для email: письмо служебное, то есть чек, счёт, доступ к покупке, код входа или уведомление владельцу. Отписка от рассылки такие письма не глушит. Для рассылок и промо не ставьте: отправка отписавшемуся вернёт 422. |
| `sendAt` | string | да | Время отправки в ISO-8601, минимум на 30 секунд в будущем. Например 2026-09-10T09:00:00Z. |
| `label` | string | нет | Метка для списка отложенных. |

### `tuktuk_list_scheduled`

Что стоит в очереди и ещё не отправлено.

Право: `messages:send`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `includeBroadcasts` | boolean | нет | Добавить в выдачу отложенные рассылки. |

### `tuktuk_cancel_scheduled`

Отменить отложенное сообщение до момента отправки. После отправки отменить уже нельзя.

Право: `messages:send`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `scheduleId` | string | да |  |

### `tuktuk_upload_file`

Положить файл по ссылке в постоянное хранилище TukTuk и получить URL, который не протухнет. Используйте перед отправкой вложения, если ваша ссылка временная или требует авторизации.

Право: `files:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `url` | string | да | Абсолютная ссылка http(s) на файл, до 50 МБ. |
| `filename` | string | нет | Имя, под которым файл будет виден в разделе «Файлы». |

### `tuktuk_preview_audience`

Посчитать, сколько человек попадёт под фильтр и кому нельзя написать в выбранном канале. Делайте это до запуска рассылки: так вы не потратите деньги впустую.

Право: `broadcasts:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `channelId` | string | нет |  |
| `audience` | object | нет | Фильтр: tags, tagsMode, excludeTags, statuses, channelIds, activeWithinDays, silentOverDays. |

### `tuktuk_create_broadcast`

Создать рассылку по сегменту клиентов. Создание не отправляет ничего: запуск отдельным вызовом tuktuk_start_broadcast. Темп задаётся delayMinSec и delayMaxSec, окно времени, windowFromMin и windowToMin.

Право: `broadcasts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `name` | string | нет |  |
| `channelId` | string | нет |  |
| `text` | string | нет |  |
| `mediaUrl` | string | нет | Абсолютная ссылка на вложение. Если ссылка временная, сначала положите файл через tuktuk_upload_file. |
| `mediaType` | `photo` · `voice` · `audio` · `video` · `video_note` · `document` · `sticker` | нет | Тип вложения. Для голосового сообщения используйте voice. |
| `subject` | string | нет | Тема письма. Только для email-канала. |
| `audience` | object | нет | Фильтр аудитории либо {"mode":"manual","dialogIds":["…"]}. |
| `delayMinSec` | integer | нет |  |
| `delayMaxSec` | integer | нет |  |
| `windowFromMin` | integer | нет | Начало окна отправки в минутах от полуночи. |
| `windowToMin` | integer | нет |  |
| `dailyLimit` | integer | нет |  |
| `scheduledAt` | string | нет | Когда запустить, ISO-8601. |

### `tuktuk_start_broadcast`

Запустить рассылку. Если задан scheduledAt в будущем, она встанет в расписание. Работает только для черновика и запланированной: паузу продолжают через tuktuk_stop_broadcast с mode=pause и обратный вызов resume, завершённую повторяют через tuktuk_duplicate_broadcast.

Право: `broadcasts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `broadcastId` | string | да |  |

### `tuktuk_stop_broadcast`

Остановить рассылку. mode=pause ставит на паузу, mode=cancel отменяет остаток без возможности продолжить.

Право: `broadcasts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `broadcastId` | string | да |  |
| `mode` | `pause` · `cancel` | нет | По умолчанию pause. |

### `tuktuk_duplicate_broadcast`

Копия рассылки. Завершённую или остановленную рассылку нельзя запустить заново: те, кому уже отправили, получили бы сообщение дважды. Чтобы повторить, сделайте копию и запустите её.

Право: `broadcasts:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `broadcastId` | string | да |  |

### `tuktuk_list_broadcasts`

Список рассылок с прогрессом: сколько отправлено, сколько не дошло.

Право: `broadcasts:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `status` | `DRAFT` · `SCHEDULED` · `RUNNING` · `PAUSED` · `DONE` · `CANCELED` | нет |  |

### `tuktuk_broadcast_report`

Отчёт доставки по каждому получателю: кому ушло, кому нет и по какой причине.

Право: `broadcasts:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `broadcastId` | string | да |  |
| `status` | `PENDING` · `SENT` · `FAILED` · `SKIPPED` | нет |  |
| `limit` | integer | нет |  |
| `offset` | integer | нет |  |

### `tuktuk_list_chains`

Связки, это автоматические сценарии на входящее сообщение. Возвращает список с блоками и состоянием.

Право: `chains:read`.

Параметров нет.

### `tuktuk_chain_block_types`

Справочник типов блоков связки: что можно поставить в сценарий и ссылки на документацию.

Право: `chains:read`.

Параметров нет.

### `tuktuk_chain_templates`

Готовые сценарии связок: приветствие, автоответчик, дожим, вызов оператора и другие. Ключ шаблона отдайте в tuktuk_create_chain_from_template, чтобы не собирать блоки руками.

Право: `chains:read`.

Параметров нет.

### `tuktuk_create_chain_from_template`

Создать связку из готового шаблона. Блоки, триггер и условия запуска приходят собранными; дальше её можно править через tuktuk_save_chain.

Право: `chains:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `templateKey` | string | да | Ключ из tuktuk_chain_templates. |
| `name` | string | нет | Своё название вместо названия шаблона. |
| `triggerChannelIds` | array | нет | Пустой массив, значит все каналы. |
| `sendChannelId` | string | нет | Канал для блоков отправки шаблона. |
| `aiInstructionId` | string | нет | ИИ-инструкция для AI-блоков шаблона. |

### `tuktuk_save_chain`

Создать или изменить связку. Без chainId создаётся новая. Блоки передаются массивом целиком, типы берите из tuktuk_chain_block_types.

Право: `chains:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `chainId` | string | нет | Пусто, если создаёте новую связку. |
| `name` | string | нет |  |
| `description` | string | нет |  |
| `blocks` | array | нет | Схема блоков целиком: [{ id, type, config, next, x, y }]. У блока SEND_MESSAGE получатель задаётся config.recipientMode: "client" (по умолчанию, клиент связки), "dialog" (другой клиент базы, его id из tuktuk_find_contact или tuktuk_list_contacts кладите в config.recipientDialogId) или "external" (адрес в config.recipientIdentifier: Telegram chat ID оператора, телефон, почта; переменные работают). config.includeDialogLink=true добавляет ссылку на диалог с клиентом, чтобы оператор вошёл в переписку. |
| `runMode` | `EVERY_MESSAGE` · `ONCE_PER_CLIENT` · `MANUAL` | нет |  |
| `triggerChannelIds` | array | нет | Пустой массив, значит все каналы. |
| `trigger` | object | нет | Условие запуска: {"type":"keyword","value":"цена"}. |
| `launchConditions` | object | нет | Ограничения запуска. Ключи: noReplyMinutes (клиент молчал столько минут перед сообщением), minDialogMessages, maxRunsPerClient, maxStepsPerClient, cooldownMinutes (перерыв между запусками), activeHoursFrom и activeHoursTo ("09:00" и "18:00", часы по поясу аккаунта, окно через полночь тоже можно), preventConcurrentRuns. Ключ отсутствует, значит ограничения нет. |
| `autoStopConditions` | object | нет | Автоостановка запущенной связки: stopOnClientReply (клиент ответил) и stopOnTags (список стоп-тегов клиента). |
| `isActive` | boolean | нет |  |

### `tuktuk_toggle_chain`

Включить или выключить связку. Выключенная связка не запускается на входящие сообщения, но сохраняет схему и историю запусков.

Право: `chains:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `chainId` | string | да |  |

### `tuktuk_list_funnels`

Воронки автопостинга: сторис и посты по расписанию, в том числе зациклённые.

Право: `funnels:read`.

Параметров нет.

### `tuktuk_run_funnel`

Запустить или остановить воронку автопостинга. action=stop останавливает.

Право: `funnels:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `funnelId` | string | да |  |
| `action` | `run` · `stop` | нет | По умолчанию run. |

### `tuktuk_list_assistants`

ИИ-ассистенты рабочего пространства: кто отвечает клиентам автоматически, со статистикой.

Право: `assistants:read`.

Параметров нет.

### `tuktuk_pause_assistant`

Забрать конкретный диалог себе: ассистент не будет отвечать указанное число минут. Вызывайте перед тем, как вести переписку самостоятельно, иначе клиент получит два ответа.

Право: `assistants:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `dialogId` | string | да |  |
| `minutes` | integer | да | На сколько минут отдать диалог, от 1 до 10080. |

### `tuktuk_resume_assistant`

Вернуть диалог ИИ-ассистенту раньше срока паузы: он снова начнёт отвечать клиенту.

Право: `assistants:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `dialogId` | string | да |  |

### `tuktuk_pause_all_assistants`

Замолчать всем ассистентам на N минут: отвечать будут только люди. Настройки ассистентов сохраняются, по истечении срока они сами вернутся в работу.

Право: `assistants:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `minutes` | integer | нет | На сколько минут, по умолчанию 60. |

### `tuktuk_resume_all_assistants`

Вернуть всех ассистентов в работу до истечения паузы.

Право: `assistants:write`.

Параметров нет.

### `tuktuk_ai_catalog`

Каталог нейросетей платформы: какие модели существуют, что умеют (текст, картинки, вызов функций), сколько примерно стоят и какие из них работают из России без VPN.

Право: `ai:read`.

Параметров нет.

### `tuktuk_ai_providers`

Нейросети, подключённые у клиента: модель по умолчанию, состояние ключа (работает / не принят) и список моделей, доступных именно по его ключу. Ключи наружу не отдаются.

Право: `ai:read`.

Параметров нет.

### `tuktuk_ai_test_provider`

Проверить ключ нейросети и обновить список её моделей. Вызывайте, если ассистент молчит или в журнале появились ошибки авторизации.

Право: `ai:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `providerId` | string | да |  |

### `tuktuk_ai_search_knowledge`

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

Право: `ai:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `query` | string | да | Ключевые слова вопроса на русском. |

### `tuktuk_ai_add_knowledge`

Добавить в базу знаний файл, по которому будут отвечать ассистенты: прайс, условия доставки, ответы на частые вопросы. Текст режется на фрагменты и индексируется сразу.

Право: `ai:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `name` | string | да | Название файла: «Прайс-лист», «Условия доставки». |
| `content` | string | да | Текст. Разделяйте темы пустой строкой. |

### `tuktuk_ai_logs`

Журнал обращений к нейросети: что спросил клиент, что ответил ассистент, какие действия он выполнил, сколько токенов ушло и с какой ошибкой всё упало. Первое место для разбора жалоб.

Право: `ai:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `limit` | integer | нет | Сколько записей вернуть, по умолчанию 50. |
| `assistantId` | string | нет |  |
| `onlyErrors` | boolean | нет | true, чтобы показать только сбои. |

### `tuktuk_ai_chat`

Разовый запрос к нейросети клиента, на его ключе и его тарифе. Полезно, когда нужно обработать текст в стиле компании, не заводя собственных ключей.

Право: `ai:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `message` | string | да |  |
| `instructionId` | string | нет | Настройка готового ассистента, если нужен его стиль. |
| `providerId` | string | нет | Нейросеть, если запрос без ассистента. |
| `system` | string | нет | Системная инструкция для запроса без ассистента. |

### `tuktuk_list_tasks`

Задачи CRM: статус, приоритет, исполнитель, дедлайн, привязка к клиенту.

Право: `tasks:read`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `status` | `BACKLOG` · `TODO` · `IN_PROGRESS` · `REVIEW` · `DONE` | нет |  |
| `dialogId` | string | нет | Только задачи по этому контакту. |

### `tuktuk_create_task`

Поставить задачу человеку. Используйте, когда сами решить вопрос не можете: нужен звонок, документ, решение руководителя.

Право: `tasks:write`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `title` | string | да |  |
| `description` | string | нет |  |
| `status` | `BACKLOG` · `TODO` · `IN_PROGRESS` · `REVIEW` · `DONE` | нет |  |
| `priority` | `LOW` · `MEDIUM` · `HIGH` · `URGENT` | нет |  |
| `dialogId` | string | нет | К какому контакту привязать. |
| `assigneeId` | string | нет |  |
| `dueDate` | string | нет | Срок в ISO-8601. |

### `tuktuk_event_types`

Каталог событий платформы, на которые можно подписаться: входящие сообщения, диалоги, связки, каналы, оплаты.

Право: `webhooks:manage`.

Параметров нет.

### `tuktuk_subscribe_events`

Подписаться на события: входящие сообщения и другие изменения будут приходить на ваш URL. Секрет подписи возвращается один раз, сохраните его: им подписан заголовок X-Webhook-Signature.

Право: `webhooks:manage`.

| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
| `name` | string | да |  |
| `url` | string | да | Куда слать события. |
| `events` | array | да | Например ["message.inbound","dialog.created"]. |

### `tuktuk_list_subscriptions`

Действующие подписки на события. Секреты не возвращаются.

Право: `webhooks:manage`.

Параметров нет.
