Для ИИ-агентов

QRTap внутри вашего ИИ-ассистента

Подключите QRTap к Claude Desktop, Claude Code или любому MCP-совместимому ассистенту — и печатные материалы клиента можно вести словами: «создай QR на меню и пришли картинку», «переведи код на новый адрес», «разбери новые отзывы». Двадцать инструментов, один блок конфигурации, никаких SDK.

Подключить20 инструментовЧто сказать ассистентуREST API

Что такое MCP — простыми словами

Языковая модель сама по себе умеет только разговаривать. MCP (Model Context Protocol) — открытый стандарт, по которому ассистенту выдают инструменты: небольшой список действий с понятными названиями и параметрами. Ассистент видит этот список, сам решает, какой инструмент вызвать, и получает ответ обратно в диалог. Примерно как розетка: приложение не нужно переписывать под каждую модель — достаточно один раз воткнуть сервер.

MCP-сервер QRTap — маленькая программа, которая запускается на вашей машине рядом с ассистентом и общается с нашим REST API v1 по вашему ключу. Никакого отдельного доступа: те же права, те же лимиты, та же организация. Ассистент не видит ваш ключ как текст — он лежит в переменной окружения, а сервер подставляет его в заголовок сам.

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

Понадобится ключ API: владелец рабочего пространства выпускает его в кабинете на app.qrtap.kg/workspace/api — бесплатно и сразу, платить, чтобы попробовать, не нужно (бесплатный тариф: один ключ, 100 запросов в сутки). Ключ показывается один раз. И Node.js 20 или новее.

Поставить в один клик

Если вы пользуетесь одним из этих клиентов, ссылка откроет его и подставит настройки. Ключ в ссылке стоит подстановочный: замените qrt_live_XXXX на свой после установки.

  • Добавить в Cursor — спросит подтверждение перед установкой
  • Добавить в VS Code — попросит подтвердить запуск сервера
  • Добавить в LM Studio — нужна версия 0.3.17 или новее

Клиент запускает сервер у вас на машине, поэтому подтверждение он спросит сам. Это правильно: любой MCP-сервер выполняет код локально, и ставить их стоит только из источников, которым вы доверяете.

Claude Desktop

Настройки → Developer → Edit Config, добавьте блок в claude_desktop_config.json и перезапустите приложение:

{
  "mcpServers": {
    "qrtap": {
      "command": "npx",
      "args": ["-y", "qrtap-mcp"],
      "env": {
        "QRTAP_API_KEY": "qrt_live_XXXX",
        "QRTAP_API_URL": "https://app.qrtap.kg"
      }
    }
  }
}

Claude Code

claude mcp add qrtap --env QRTAP_API_KEY=qrt_live_XXXX -- npx -y qrtap-mcp

Тот же блок mcpServers можно положить в .mcp.json в корне проекта — тогда конфигурация уедет в репозиторий вместе с кодом (ключ в неё, разумеется, не кладут: оставьте подстановку из окружения).

Другие MCP-клиенты и запуск из клона

Сервер говорит по MCP на stdin/stdout и пишет логи только в stderr, поэтому подходит любому stdio-клиенту. Если в вашем окружении npx ещё не находит пакет qrtap-mcp, запустите его из клона репозитория платформы:

{
  "mcpServers": {
    "qrtap": {
      "command": "node",
      "args": ["/path/to/mozart-qr-platform/packages/mcp-server/bin/qrtap-mcp.mjs"],
      "env": {
        "QRTAP_API_KEY": "qrt_live_XXXX",
        "QRTAP_API_URL": "https://app.qrtap.kg"
      }
    }
  }
}

Переменные окружения всего две: QRTAP_API_KEY — обязательная, QRTAP_API_URL — база API, по умолчанию https://app.qrtap.kg.

Двадцать инструментов

Каждый инструмент — это один вызов REST API v1 под вашим ключом. Ничего сверх того, что вы можете сделать сами: ассистент просто избавляет от написания запросов.

  • qrtap_create_codePOST /api/v1/codes

    Создать управляемый QR-код: в ответе постоянная short_url и адреса PNG/SVG для печати.

  • qrtap_create_codes_bulkPOST /api/v1/codes/bulk

    Создать до 500 кодов одним запросом: тираж наклеек, по коду на стол, филиал или партнёра. Ошибка в одном адресе не рушит всю пачку. Платный тариф.

  • qrtap_list_codesGET /api/v1/codes

    Показать коды организации, новые сверху; можно отфильтровать и сразу получить счётчик сканов.

  • qrtap_get_codeGET /api/v1/codes/{id}

    Прочитать один код: куда ведёт сейчас, метка, группа, постоянная short_url. Шаг перед сменой адреса.

  • qrtap_change_destinationPATCH /api/v1/codes/{id}

    Перевести код на новый адрес. Напечатанный QR и short_url не меняются.

  • qrtap_code_historyGET /api/v1/codes/{id}/history

    Все адреса, на которые код когда-либо вёл, новые сверху: версия, причина, дата. Чтобы вернуть прошлый адрес после неверной правки.

  • qrtap_code_statsGET /api/v1/codes/{id}/stats

    Анонимная статистика сканов одного кода: всего, по дням, по устройствам.

  • qrtap_group_statsGET /api/v1/groups/{group}/stats

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

  • qrtap_create_short_linkPOST /api/v1/codes

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

  • qrtap_list_design_templatesGET /api/v1/design-templates

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

  • qrtap_create_pagePOST /api/v1/pages

    Собрать и опубликовать клиенту страницу-визитку; в ответе public_url для QR-кода.

  • qrtap_update_pagePATCH /api/v1/pages/{slug}

    Заменить содержимое страницы по её slug. Slug и напечатанные коды остаются прежними.

  • qrtap_get_pageGET /api/v1/pages/{slug}

    Прочитать страницу целиком вместе с content. Обязательный шаг перед правкой: обновление переписывает содержимое целиком.

  • qrtap_list_pagesGET /api/v1/pages

    Список страниц: slug, сегмент, тема, версия, public_url — чтобы найти нужную перед правкой.

  • qrtap_list_reviewsGET /api/v1/reviews

    Отзывы гостей. По умолчанию pending — очередь модерации, которую ещё никто не видел.

  • qrtap_moderate_reviewPOST /api/v1/reviews/{id}/moderate

    Опубликовать или скрыть один отзыв. Решение видно гостям сразу.

  • qrtap_list_bookingsGET /api/v1/bookings

    Заявки на запись: услуга, желаемое время словами гостя, имя, телефон, статус.

  • qrtap_set_booking_statusPOST /api/v1/bookings/{id}/status

    Подтвердить или отклонить заявку. Гостю платформа не пишет — звонить придётся самим.

  • qrtap_get_smart_rulesGET /api/v1/codes/{id}/smart-rules

    Прочитать умные правила кода. Пустой список значит, что код всегда ведёт на основной адрес. Шаг перед заменой правил.

  • qrtap_set_smart_rulesPUT /api/v1/codes/{id}/smart-rules

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

Остальная поверхность API — пакетное создание до 500 кодов, статистика по группам, шаблоны дизайна, вебхуки сканов, артефакты PDF — доступна обычными HTTP-запросами: см. документацию и спеку OpenAPI. Ассистент, умеющий делать HTTP-вызовы, справится и без MCP.

Что можно просто сказать ассистенту

«Создай QR-код на наше меню example.com/menu и пришли картинку»

Вызовет qrtap_create_code и вернёт ссылку на PNG из png_url — файл сразу годится в печать.

«Меню переехало на новый адрес — переведи туда код со столов»

qrtap_change_destination: короткая ссылка в коде остаётся прежней, тираж перепечатывать не нужно.

«Сколько сканов у кода со стола №5 за июль? Разбей по дням»

qrtap_code_stats вернёт общее число сканов, разбивку по дням и по устройствам. Боты в счёт не идут.

«Собери визитку мастеру: имя, телефон, часы, услуги — и сделай на неё QR»

qrtap_create_page соберёт страницу и вернёт public_url, затем qrtap_create_code наведёт на неё код.

«Покажи новые отзывы и скажи, какие стоит опубликовать»

qrtap_list_reviews покажет очередь pending. Публикация — отдельным подтверждённым шагом.

«Какие заявки на запись пришли и на какие ещё не ответили?»

qrtap_list_bookings со статусом new — это и есть входящий ящик заявок.

«Сделай, чтобы с айфона код вёл в App Store, а с андроида — в Google Play»

qrtap_set_smart_rules: два правила по устройству, остальные попадают на основное назначение кода.

«Сделай короткую ссылку на эту акцию и посчитай переходы»

qrtap_create_short_link — тот же управляемый объект, что и код, с постоянным адресом и счётчиком.

Границы: где ассистент обязан спросить

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

  • Ключ = организация. Инструменты видят только ваши коды, страницы, отзывы и заявки. Чужой идентификатор неотличим от несуществующего — 404.
  • Печать не ломается. Короткая ссылка в коде постоянна; неверный набор умных правил деградирует к основному назначению, а не к ошибке.
  • Лимиты общие с API. Минутный тормоз — 429 с scope: "minute": подождать retry_after секунд и продолжить. Исчерпанная суточная квота — 429 с scope: "day": ждать до полуночи UTC бессмысленно, нужен тариф выше. Суточная квота считается на всё рабочее пространство и обнуляется в полночь UTC. Сервер отдаёт агенту тело отказа дословно, чтобы тот понял разницу, а не долбил в цикле.
  • Умные правила — платный тариф. qrtap_set_smart_rules на бесплатном ответит 402 plan_required. Остальные двенадцать инструментов работают и на бесплатном, в пределах 100 запросов в сутки на всё рабочее пространство.
  • Персональных данных нет. Статистика анонимная и агрегированная: IP и user-agent посетителей не сохраняются вовсе.
  • Гостю платформа не пишет. Подтверждённая заявка — это отметка в вашем ящике, а не сообщение клиенту: звонить по телефону из заявки нужно самим.

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

Модель, у которой есть только доступ в интернет, тоже разберётся: мы держим машиночитаемое описание сервиса по фиксированным адресам — /llms.txt (короткий индекс), /llms-full.txt (полное описание возможностей) и /openapi.json (спека OpenAPI 3.1, из которой генерируется клиент на любом языке).

Использование инструментов подчиняется тем же правилам, что и прямые вызовы API: Условия использования API, оферта и политика конфиденциальности. За содержимое ссылок, на которые ведут ваши коды, отвечаете вы — в том числе когда их создал агент.

На главную · API · Интеграции · OpenAPI · Поддержка · Условия API