DOS AI/ Документация
ОтзывыВозможностиЦенаДля когоАгентствамОбучениеВойтиСтарт
← Документация/Руководство
↓ Скачать целиком
Старт
  • Что такое DOS AI
  • Как бот думает
  • Быстрый старт: первый бот за 30 минут
  • Карта кабинета (навигация)
  • Глоссарий
  • Как выбрать чат-бота для WhatsApp
Проект и бот
  • Создание проекта
  • Системный промпт (характер бота)
  • JSON-ответ бота (статусы, стадии, флаги)
  • Выбор AI-модели
  • Тестовый чат
  • Продвинутые настройки бота
  • Загрузить знания о бизнесе в бота (что куда)
Каналы
  • Каналы, где бот отвечает клиентам
  • Подключить WhatsApp (по QR)
  • Подключить Telegram-бота
  • Гигиена и антибан (WhatsApp)
  • Подключить Instagram
Инструменты бота
  • Функции (инструменты бота)
  • База знаний (RAG)
  • Медиа-библиотека
  • Дожимы (follow-up)
  • Правила и комментарии
  • Теги и сегментация
  • Уведомления владельцу (Telegram, WhatsApp и почта)
  • Запись на время (Calendar и движок окошек)
  • Бот выставляет счёт (Kaspi)
  • Письмо клиенту
  • Рассылки по базе контактов
  • Исходящие диалоги (бот пишет первым)
  • Подтверждение и напоминания о записи
Работа с клиентами
  • Диалоги, лента, перехват, «AI на паузе»
  • Лиды и их статусы
  • Стадии диалога (воронка)
  • Аналитика
  • Логи событий
  • Авто-отчёты владельцу (Telegram и почта)
Интеграции
  • Интеграции, что можно подключить
  • Google Таблицы
  • Google Календарь
  • Gmail
  • CRM, что бот делает в вашей CRM
  • Bitrix24
  • amoCRM и Kommo
  • АльфаCRM для учебных центров
  • МойСклад: наличие и цены в ответах бота
  • iiko для ресторанов
  • Вебхуки, события проекта на ваш адрес
Деньги
  • Биллинг проекта: токены, подписка, пополнение
  • Сколько стоит сообщение
  • Приём оплат от клиентов (Kaspi)
  • Промокоды и партнёрская программа
Команда и аккаунт
  • Роли и права (viewer / tester / editor / admin / owner)
  • Участники и приглашения
  • Профиль, пароль, безопасность
  • Уведомления и личные настройки
  • Удаление, передача, дублирование проекта
  • DOS AI в ChatGPT и Claude
Для разработчиков
  • Публичный API и ключи dos_sk_live_…
  • Своя интеграция по API
  • Язык выражений (expressions)
  • Формат данных и интеграция фронта
  • Подключить ИИ-агента: Claude Code, Codex, Cursor (MCP)
Решение проблем
  • Бот не отвечает, диагностика
  • Функция не вызывается / падает
  • Канал отвалился / WhatsApp забанили
  • Платёж не прошёл
  • Частые вопросы (FAQ)
  • Лиды из рекламы приходят с задержкой
Справочники
  • Каталог встроенных функций
  • Справочник настроек (agent_config)
  • Коды ошибок и состояния
  • Стадии, статусы лида, типы клиента
  • Лимиты и квоты
  • Переменные и хелперы выражений
  • Типы уведомлений

Документация › Для разработчиков › Подключить ИИ-агента

Подключить ИИ-агента (MCP)

Обновлено 4 октября 2026 г.

[для разработчиков] Подключите Claude Code, Codex или Cursor к DOS AI одной командой и управляйте проектами прямо из своего ИИ-инструмента: «покажи вчерашних лидов», «поправь промпт», «сколько потратили за неделю».

⏱ 7 мин · 👤 для разработчика и интегратора · 🟢 live

За 30 секунд:
  • Адрес сервера: https://dosai.pro/api/mcp, авторизация тем же ключом dos_sk_live_…, что и у API, либо кнопкой «Разрешить» (ChatGPT, claude.ai, Claude Code) без ключа.
  • В Claude Code подключается одной командой, в Codex и Cursor через конфиг.
  • Агент получает 79 инструментов: создание проекта и сборка бота с нуля, подключение Telegram, чек-лист готовности, здоровье проекта, настройки бота, рабочие часы и тест-чат, база знаний, функции и уведомления о заявках, диалоги и заметки, лиды, статусы и напоминания, дожимы и правила, записи, рассылки (просмотр), аналитика, отчёты, деньги по дням и расход на рекламу, руководство.
  • Удалять проекты и проводить платежи агент не может: этого нет в наборе инструментов намеренно.
  • Готовые команды с подставленным ключом лежат в кабинете: раздел для разработчиков.

Что это даёт

Обычный API нужно программировать. MCP (Model Context Protocol) это стандартный «разъём», через который ИИ-инструмент видит платформу как набор понятных действий и вызывает их сам, по просьбе на человеческом языке.

Практический смысл для интегратора, который ведёт несколько клиентов:

  • «Покажи все проекты, где вчера не было ни одного лида», вместо обхода кабинетов руками.
  • «Прочитай промпт барбершопа, добавь правило про запись на выходные, сохрани»: правка без переключения окон.
  • «Сколько диалогов и лидов у стоматологии за июль, какая конверсия»: сводка в одном ответе.
  • «Открой последний диалог и ответь клиенту, что мастер перезвонит в 10:00»: ответ оператором из терминала.

Шаг 1. Выпустить ключ

Ключ выпускается в кабинете, раздел для разработчиков (/developers). Подробно про права и область действия написано в статье Публичный API.

Что важно выбрать правильно:

ВыборКогдаЧто сможет агент
Только чтениеАналитика, отчёты, разбор диалоговСмотреть, но ничего не менять
Чтение и записьПравка промпта, ответы клиентамЕщё и менять промпт, статусы лидов, отправлять сообщения
Один проектРабота по одному клиентуТолько этот проект. dosai_list_projects вернёт ровно его, остальные недоступны
Весь аккаунтВедёте несколько проектовВсе проекты аккаунта
🔑 Ключ показывается один раз. Скопируйте сразу; потеряли, отзовите и выпустите новый.

Шаг 2. Подключить свой инструмент

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

Claude Code

claude mcp add --transport http dosai https://dosai.pro/api/mcp \
  --header "Authorization: Bearer dos_sk_live_ВАШ_КЛЮЧ"

Проверка: claude mcp list, сервер dosai должен быть в списке. Дальше просто просите словами: «покажи мои проекты в DOS AI».

Codex

В ~/.codex/config.toml:

[mcp_servers.dosai]
url = "https://dosai.pro/api/mcp"
bearer_token_env_var = "DOSAI_KEY"

И ключ в профиль оболочки (~/.zshrc или ~/.bashrc):

export DOSAI_KEY="dos_sk_live_ВАШ_КЛЮЧ"

Так ключ не лежит в конфиге, который легко утащить в репозиторий или синхронизировать между машинами. Если ваш Codex ругается на поле url, он старый: обновите его, поддержка удалённых серверов там встроенная.

Cursor

В ~/.cursor/mcp.json:

{
  "mcpServers": {
    "dosai": {
      "url": "https://dosai.pro/api/mcp",
      "headers": { "Authorization": "Bearer dos_sk_live_ВАШ_КЛЮЧ" }
    }
  }
}

Cursor умеет подставлять переменные окружения, так что ключ тоже можно не держать в файле: "Authorization": "Bearer ${env:DOSAI_KEY}".

Любой другой инструмент

MCP это открытый стандарт, а не список из трёх программ. Клиенты, которые умеют искать серверы сами, найдут нас в официальном реестре MCP под именем pro.dosai/dos-ai (домен подтверждён, запись активна). Проверить можно так:

curl "https://registry.modelcontextprotocol.io/v0/servers?search=dosai"

Всем остальным нужны всего две вещи:

ЧтоЗначение
Адрес сервераhttps://dosai.pro/api/mcp (транспорт streamable HTTP)
ЗаголовокAuthorization: Bearer dos_sk_live_ВАШ_КЛЮЧ

Большинство инструментов настраиваются файлом такого вида:

{
  "mcpServers": {
    "dosai": {
      "url": "https://dosai.pro/api/mcp",
      "headers": { "Authorization": "Bearer dos_sk_live_ВАШ_КЛЮЧ" }
    }
  }
}

Проверить связь до настройки инструмента можно одной командой: в ответ придёт список инструментов.

curl -s https://dosai.pro/api/mcp \
  -H "Authorization: Bearer dos_sk_live_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Если инструмент вообще не умеет MCP, остаётся обычный путь: публичный REST API с тем же ключом.

ChatGPT и Claude на сайте: без ключа

Веб-версии ChatGPT и claude.ai ключ не принимают, они входят по кнопке «Разрешить» (OAuth 2.1). С 27.09.2026 это работает: в коннекторе указывается только адрес https://dosai.pro/api/mcp, дальше открывается страница DOS AI, человек входит, отмечает права и жмёт «Разрешить». Пошагово для владельца: DOS AI в ChatGPT и Claude.

Как устроено для интегратора:

  • Без входа сервер отвечает 401 с заголовком WWW-Authenticate: Bearer resource_metadata="https://dosai.pro/.well-known/oauth-protected-resource/api/mcp". По этим метаданным клиент находит сервер входа (Supabase Auth, OAuth 2.1 с динамической регистрацией клиентов) и сам регистрируется.
  • Права решает страница согласия, а не пропуск: смотреть всегда, менять настройки и писать клиентам отдельными галочками, плюс все проекты или один свой. Ассистент без права записи не видит инструментов записи в tools/list; без права «писать клиентам» dosai_send_operator_message отвечает понятным отказом.
  • Отключение на странице «ИИ-ассистенты» снимает доступ сразу; следующий вызов получит 401 с error="invalid_token", и клиент предложит войти заново.
  • Claude Code тоже умеет этот вход: claude mcp add --transport http dosai https://dosai.pro/api/mcp без заголовка откроет браузер со страницей «Разрешить». Ключ по-прежнему работает, если он вам удобнее.

Что умеет агент

ИнструментЧто делаетПрава ключа
dosai_list_projectsСписок проектов, у каждого видно, работает ли WhatsApp-каналчтение
dosai_get_projectНастройки проекта: статус, канал и работает ли он сейчас (whatsapp_channel: online, offline, banned когда WhatsApp ограничил номер, not_connected, unknown), модель, балансчтение
dosai_get_promptПрочитать системный промптчтение (роль админа или владельца)
dosai_update_promptЗаменить системный промптзапись (роль админа или владельца)
dosai_list_functionsСписок функций ассистентачтение
dosai_list_leadsЛиды постранично, с фильтром по статусу (none, potential, qualified, hot, converted, reserve, lost)чтение
dosai_get_leadПолная карточка лида с ответами анкетычтение
dosai_update_leadСтатус лида, имя, телефон, почтазапись
dosai_list_bookingsЗаписи клиентов (бот, функции, ваша система) и что платформа им отправит: подтверждение, напоминания, и почему что-то не уйдётчтение
dosai_upsert_bookingСообщить о записи из вашей CRM: платформа подтвердит её клиенту и напомнит перед визитом. Тот же external_id обновляет, status: "cancelled" отменяетзапись
dosai_list_conversationsДиалоги, с фильтром по статусу (open, resolved, closed) и включением архивныхчтение
dosai_get_messagesПереписка одного диалогачтение
dosai_send_operator_messageНаписать клиенту от лица операторазапись
dosai_get_analyticsДиалоги, лиды, конверсия, время ответа, воронка, источники и расход за период (без указания дат: последние 7 дней)чтение
dosai_get_balanceОстаток и расходчтение
dosai_get_overviewНеделя против прошлой: диалоги, лиды, % изменения, лиды по статусам, минуты с последней активностичтение
dosai_get_whatsapp_status · dosai_get_telegram_statusПодключён ли канал, последняя ошибка связи (QR привязки не отдаётся никогда)чтение
dosai_count_paused_conversationsСколько диалогов бот сейчас не ведётчтение
dosai_get_bot_settings · dosai_update_bot_settingsНастройки бота: вкл/выкл, кому отвечает, пояс, буфер, пауза оператора, автовозобновление, дожимы, глубина размышления, память. Выдуманное поле возвращается ошибкой, а не молчаливым «сохранено»чтение · запись (админ)
dosai_list_prompt_versionsИстория версий промпта (дата и начало текста)чтение
dosai_test_botСпросить бота в тест-чате как клиент и получить настоящий ответ; живым клиентам ничего не уходит, с баланса списывается как обычный ответзапись
dosai_list_knowledge · dosai_read_knowledge_documentДокументы базы знаний и текст документа кускамичтение
dosai_add_knowledge_text · dosai_update_knowledge_documentДобавить текстовый документ; включить, выключить, переименовать. Удаления нет: устаревший документ выключаетсязапись
dosai_list_mediaМедиатекачтение
dosai_get_function · dosai_set_function_activeОдна функция (секреты замаскированы); включить или выключитьчтение · запись
dosai_list_function_runs · dosai_get_functions_healthПоследние вызовы функции; успехи и ошибки по всем функциямчтение
dosai_get_conversation · dosai_update_conversationКарточка диалога; статус, теги, имя, архив, закрепление, отложитьчтение · запись
dosai_toggle_bot_in_conversationПереключить бота в одном диалоге (сначала прочитать ai_on)запись
dosai_list_conversation_notes · dosai_add_conversation_noteВнутренние заметки к диалогучтение · запись
dosai_list_scheduled_messages · dosai_schedule_messageОтложенные сообщения клиенту; запланировать (уходит живому клиенту)чтение · запись
dosai_search_conversationПоиск по словам в одном диалогечтение
dosai_get_lead_statuses · dosai_get_lead_history · dosai_list_tagsСтатусы воронки, история лида, тегичтение
dosai_list_lead_reminders · dosai_add_lead_reminderНапоминания по лидучтение · запись
dosai_list_followups · dosai_get_followup_statsКлиенты в дожимах и результаты дожимовчтение
dosai_list_rules · dosai_set_rule_active · dosai_list_rule_runsПравила «когда, если, то», включить или выключить, лента срабатыванийчтение · запись
dosai_get_booking_settingsПодтверждение и напоминания о записичтение
dosai_list_broadcastsРассылки и их итоги (запуск только в кабинете)чтение
dosai_get_funnel · dosai_list_logs · dosai_list_report_settingsВоронка за период, журнал событий, отчёты по расписаниючтение
dosai_list_balance_history · dosai_list_invoicesИстория баланса; счета клиентам бизнеса (только просмотр)чтение
dosai_list_help_articlesОглавление этого руководства: ассистент отвечает на «как сделать» ссылкой на статьючтение
dosai_create_projectСоздать проект (нового бота). Только при подключении ко всем проектамзапись
dosai_compose_bot_descriptionСобрать промпт бота из трёх ответов владельца, как кнопка в кабинете. Платно (30 центов с баланса проекта, только при успехе), заменяет прежний промпт, он остаётся в историизапись (админ)
dosai_connect_telegram_botПодключить Telegram-бота по ключу от @BotFatherзапись (админ)
dosai_get_setup_checklistЧто ещё не готово: промпт, канал, баланс, проверка, и чем это сделать. Тот же чек-лист, что на обзоре проектачтение
dosai_get_cabinet_linkСсылка на нужную страницу кабинета для того, что делает только владелец: QR WhatsApp, пополнение, команда, рассылка, удалениечтение
dosai_set_model · dosai_set_notify_emailМодель бота; почта владельца для уведомлений и отчётовзапись (админ)
dosai_update_bot_settings (schedule)Рабочие часы: все семь дней Пн…Вс, время ЧЧ:ММ, начало равно концу = круглосуточнозапись (админ)
dosai_edit_knowledge_document · dosai_search_knowledgeПоправить текст документа базы знаний по кускам; что бот найдёт по вопросу (доли цента)запись
dosai_list_followup_steps · dosai_add_followup_step · dosai_update_followup_stepЦепочка дожимов: тексты, паузы, время, включить или выключить шагчтение · запись
dosai_add_keyword_replyПравило «клиент написал слово, платформа отвечает этим текстом без ИИ»запись
dosai_add_lead_notificationСообщать владельцу о новой заявке на почту или в WhatsApp (функция из каталога)запись
dosai_set_lead_statusesСтатусы воронки: переименовать, добавить, убрать (статус с заявками не удалится)запись
dosai_update_report · dosai_send_report_nowОтчёт по расписанию: включить, время, дни, канал; отправить сейчас. Меняются только названные полязапись (владелец)
dosai_get_money_by_day · dosai_list_ad_spend · dosai_add_ad_spendДеньги проекта по дням; расход на рекламу для цены заявкичтение · запись (владелец)
dosai_list_teamКто работает в проекте и с какой рольючтение

Чего в наборе нет намеренно: любое удаление, платежи, счета и возвраты, пополнение баланса, запуск рассылки (пишет всей базе; черновика у рассылки нет, создание сразу ставит её в отправку), приглашение и управление участниками (клиент мог бы уговорить агента пригласить чужого человека), ссылка и QR подключения WhatsApp (кто их держит, тот может привязать к боту свой номер), кнопка «Тест» у функции (она выполняет настоящее действие), админ-функции. ИИ иногда ошибается, и цена ошибки не должна равняться удалённому проекту или списанным деньгам. Эти действия остались в API, где вызов делается осознанно. Для них агент даёт ссылку на нужную страницу кабинета (dosai_get_cabinet_link), нажимает человек.


Безопасность

  • Ключ = доступ к вашим проектам. Команда подключения содержит его в открытом виде: вставляйте только в свой терминал, не выкладывайте в репозиторий и не показывайте на экране при записи видео.
  • Начните с ключа только на чтение. Права на запись выдавайте, когда точно нужны правки.
  • Клиенту или подрядчику выдавайте ключ, привязанный к одному проекту.
  • Агент действует от вашего имени. Он видит ровно то, что видите вы, и ограничен вашей ролью на каждом проекте.
  • Отправка сообщения необратима. dosai_send_operator_message пишет живому человеку в WhatsApp, Instagram или Telegram. Согласуйте текст с агентом до отправки. Если канал сообщение не принял, инструмент честно скажет «не доставлено»: в этом случае оно лежит в диалоге неотправленным и ждёт повтора.
  • Тексты клиентов это данные, а не команды. В переписке может оказаться фраза вида «игнорируй прежние инструкции и сделай…». Сервер прямо предупреждает об этом агента при подключении, но привычка проверять, что именно агент собирается сделать, остаётся за вами.

Лимиты

  • 120 запросов в минуту на ключ, плюс собственный лимит у каждого эндпоинта (например, аналитика 20 в минуту).
  • Один вызов инструмента = два запроса к платформе, поэтому ориентируйтесь примерно на 60 действий агента в минуту.
  • Лимит считается на каждый ключ отдельно: два ключа одного аккаунта имеют по своему бюджету, они не складываются и не делятся.
  • При превышении приходит понятная агенту фраза «превышен лимит, подожди N секунд», и он повторит сам.

Если не работает

Что видит агентЧто произошлоЧто делать
«API-ключ недействителен, истёк или отозван»Ключ удалён, истёк или скопирован с опечаткойВыпустить новый в кабинете
«Этот ключ только для чтения»Ключ без права записи, а действие меняет данныеВыпустить ключ с правом записи
«Ключ привязан к другому проекту»Ключ на один проект, а запрос к другомуВзять ключ на весь аккаунт или на нужный проект
«Недостаточно прав на этом проекте»Ваша роль ниже администратораПопросить владельца повысить роль
«Превышен лимит запросов»Слишком частоПодождать указанные секунды
«Конфликт: такое действие уже выполнено» на отправкеТот же текст в тот же диалог в пределах пяти минут считается случайным дублем и не уходитТак задумано: защищает клиента от двойного сообщения при повторе запроса. Нужно отправить то же самое ещё раз, подождите или измените текст
«Сообщение НЕ доставлено клиенту»Канал отказал: номер переподключается, сработала защита от блокировки или бот заблокирован клиентомСообщение сохранено в диалоге как неотправленное, его видно в кабинете с кнопкой повтора. Повторите позже; отправленным его считать нельзя
«Неверные аргументы. Unrecognized key»Агент передал поле, которого у инструмента нетНичего не делать: в ответе названо лишнее поле, агент исправится сам. Так сделано нарочно, чтобы выдуманный параметр не поменял смысл ответа молча
Сервер не появился в спискеОпечатка в адресе или заголовкеПроверить https://dosai.pro/api/mcp и формат Bearer dos_sk_live_…
401 Unauthorized на initializeЗапрос пришёл без ключа и без входаПередать Authorization: Bearer dos_sk_live_… или пройти вход кнопкой «Разрешить» (клиенты с OAuth делают это сами)
«Владелец отключил этого ассистента»Подключение к ChatGPT или Claude отключено на странице «ИИ-ассистенты»Подключить заново, откроется страница «Разрешить»

Под капотом

Сервер работает по streamable HTTP и не хранит сессий: каждый вызов самодостаточен, поэтому переключение серверов между двумя запросами агента ничего не ломает.

Каждый инструмент внутри вызывает тот же публичный REST-эндпоинт, что и обычная интеграция. Это сделано намеренно: права, лимиты, проверки и запись в журнал живут в одном месте, и агент получает ровно те же ответы, что получил бы curl. Отдельной «агентской» логики доступа не существует, поэтому она не может разойтись с основной.

Ответы инструментов подрезаются: списки отдаются постранично, длинный системный промпт не приезжает вместе со списком проектов, аналитика сворачивается до цифр (без превью рекламных креативов и почасовой карты), а слишком большой ответ обрезается с подсказкой сузить запрос. Причина простая: результат вызова попадает в контекст модели, и один неаккуратный запрос иначе вытеснит всё, над чем вы работали. Там, где данные свёрнуты, инструмент прямо перечисляет, что именно осталось за кадром: иначе «этого у меня нет под рукой» легко превращается в «таких данных не существует».

Машиночитаемое описание REST-части лежит на https://dosai.pro/api/openapi.json, краткая памятка для агентов на https://dosai.pro/llms.txt.


Простыми словами

Обычно, чтобы связать программу с платформой, нужен программист: он пишет код, который ходит по адресам и разбирает ответы. MCP убирает этот шаг для ИИ-инструментов. Вы один раз даёте своему ИИ-помощнику адрес и ключ, и дальше говорите обычными словами: «сколько заявок пришло вчера», «поправь промпт у бота стоматологии», «ответь этому клиенту, что перезвоним в десять». Помощник сам понимает, какое действие вызвать.

Ключ это пароль: он даёт помощнику ровно те же возможности, что есть у вас в кабинете, не больше. Если хотите, чтобы помощник только смотрел и ничего не менял, выпустите ключ «только чтение». Если работаете с одним клиентом, выпустите ключ на один проект: до остальных помощник не дотянется.

И главное, что мы решили заранее: помощник не умеет удалять проекты и трогать деньги. Даже если он что-то неправильно поймёт, худшее, что произойдёт, это изменённый текст промпта или одно лишнее сообщение клиенту. Всё это видно и поправимо.


Дальше: → Кастомные вебхуки
Связано: Публичный API · Роли и права
Не получилось? → напиши в саппорт