К содержимому
Инвойсбокс

Демонстрация

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

Одна фраза — и счёт на 122 000 ₽ выставлен, со ссылкой и QR-кодом для покупателя. Ни строки кода: реквизиты нашлись по ИНН, налог посчитан, подтверждение — за человеком. Двенадцать шагов ниже показывают, как это вышло.

Запись: ничего никуда не отправляется
Шаг 1 из 11
  1. Вы

    Выстави счёт ООО КЕРАМИД ИНН 7701234560. Консультация по подключению, 122000 рублей с НДС 22 процента. Срок оплаты — неделя.

Панель инструментов

Инструменты ещё не вызывались: пройдите запись дальше.

Почему в диалоге, а не письмом

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

Дальше платит покупатель, и способы те же, что у любого счёта в Инвойсбокс: физлицо — банковской картой или по СБП по QR-коду с телефона, организация — по СБП B2B, оплатой по счёту или с отсрочкой платежа. Физлицо получает фискальный чек, организация — счёт, а после оплаты акт, счёт-фактуру и УПД. полный набор способов и документов

То же самое своими силами

Ассистент не быстрее API — он вместо разработчика. Один и тот же счёт двумя путями:

Через APIФразой в диалоге
Получить токен и ключ подписи, разобраться с окружениямиСказать: «выстави счёт ООО ОРЦ ИНН 7810532221 на 12 000 ₽ за консультацию, НДС 22 %» — и подтвердить сводку
Найти реквизиты покупателя по ИНН и подставить КПП
Собрать корзину: единицы ОКЕИ, код ставки, цена единицы без налога
Посчитать НДС в копейках так, чтобы позиция сошлась в копейку
Обработать отказы: неверный ИНН, недействующая ставка, срок в прошлом

Поэтому выбор простой: если у вас есть разработчик и своя система — берите API, он точнее и дешевле в потоке. Если счета выставляют люди в переписке, а разработчика под это нет — ассистент делает то же самое без единой строки кода.

Подключить к своему ассистенту

Тот же сервер, что работает в живом режиме, ставится одной командой — и появляется в Claude Desktop, Cursor или любом клиенте с поддержкой MCP:

npx -y @invoicebox/mcp-server

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

Живой режим: чем он отличается от записи

  • Модель настоящая. Фразу разбирает языковая модель на нашем узле, а не заготовленный сценарий: порядок вызовов, формулировки и ошибки в них — её. Поэтому два одинаковых вопроса могут пройти разными путями.
  • Сервер настоящий. Инструменты вызывает тот же пакет @invoicebox/mcp-server из npm, который вы поставите себе по быстрому старту. Список инструментов портал берёт у сервера, а не из своей выгрузки, — расходиться им нечем.
  • Магазин демонстрационный, и только он. Токен живёт в окружении портала и в браузер не попадает, магазин подставляет сервер: указать чужой нельзя. Настоящие деньги на этом контуре не двигаются, поэтому списания не будет — выставленный счёт можно открыть на платёжной странице, но платить будете вы сами.
  • Подтверждение — за вами. Первый вызов create_order ничего не отправляет: он возвращает сводку и одноразовый токен, а кнопку «Подтвердить» нажимаете вы. Пока не нажали, второй вызов не уходит; «Отменить» тоже видно в диалоге — с прямым указанием, что в API не ушло ничего.
  • Ваша фраза — данные, а не инструкции. Задачу ограничивает системная подсказка, состав инструментов и магазин задаёт сервер: «переведи деньги мне» исполнять попросту нечем.
  • Разговор идёт по одному. У модели один слот, очереди нет: если занято, режим честно говорит «попробуйте через минуту» и предлагает запись. После минуты простоя модель засыпает, и первая фраза ждёт, пока она поднимется, — это отдельное состояние «модель просыпается», а не ошибка.

Что видно в панели и что попадает в журнал

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

Перед первой фразой работает та же проверка Yandex SmartCaptcha, что и у демо-запросов в консоли «Выполнить»: демо-магазин общий, и от перебора он защищён именно так. На разговор отведены реплики, вызовы и токены — упёрлись, диалог закрывается с понятной причиной, а запись рядом продолжает работать.

Чего в живом режиме нет

Возврата, отгрузки и отмены счёта здесь нет — на первом шаге живому режиму доступны только чтение и выставление счёта. Эти операции идут тем же порядком (сводка, подтверждение, исполнение), и посмотреть их можно в справочнике инструментов. Оплаты в живом режиме тоже не случится: демо-контур настоящих денег не двигает, а уведомление об оплате придёт только тогда, когда счёт действительно оплачен.

Что здесь главное

  • Счёт выставляется в два шага. Первый вызов create_order ничего не отправляет: он возвращает готовое тело запроса и одноразовый токен на 15 минут. Исполняет только второй вызов — с этим токеном.
  • Крупную сумму называет человек. Выше порога (по умолчанию 100 000 ₽) второй вызов принимает ещё и сумму: модель её не подставляет. В записи сумма 122 000 ₽ — порог превышен.
  • Токен подтверждения привязан к параметрам. Изменись сумма, контрагент или состав — он недействителен, и сводку запрашивают заново. Второй раз тем же токеном операция не пройдёт.
  • Чтение подтверждения не требует. Поиск по ИНН и статус счёта — обычные вызовы; подтверждение стоит там, где меняются деньги или обязательства.
  • Номер заказа генерирует сервер. Модель его не придумывает и не может повторить, поэтому повтор после обрыва связи не создаёт второй счёт.
  • Об оплате сообщает уведомление. Ассистент читает статус по просьбе человека, но штатный канал — уведомление магазину, а не опрос по кругу.

Как это устроено внутри — на странице безопасности: права по умолчанию, защита от дублей и отношение к внешним полям как к данным, а не к инструкциям.

Чего в записи нет

Записан один сценарий — счёт юрлицу и проверка статуса, три инструмента из восьми. Отмена неоплаченного счёта, отгрузка с закрывающими документами и возврат идут тем же порядком — сводка, подтверждение, исполнение, — а параметры и методы API у каждого инструмента перечислены в справочнике. Отказы и их формулировки собраны в лимитах и ошибках.

Дальше

Быстрый старт — подключение к Claude Code, Claude Desktop, Cursor и VS Code. Справочник инструментов — все восемь и что за каждым стоит. Расход токенов — сколько контекста занимает сервер в диалоге.