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