OpenQR
официальныйГенерируйте QR-коды и управляйте динамическими (редактируемыми) QR-кодами с аналитикой сканирований через размещённый MCP-сервер (17 инструментов) и бесплатный REST API.
Что можно делать с OpenQR MCP?
- Генерация статических QR-кодов — Запросите QR-код из любого текста или URL-адреса; получите вывод в формате PNG или SVG через
generate_qr. - Создание и управление динамическими QR-кодами — Создавайте редактируемые коды, меняйте назначения, просматривайте список или удаляйте их с помощью
create_dynamic_qr,update_dynamic_qrиdelete_dynamic_qr. - Отслеживание аналитики сканирований — Запросите статистику сканирований для динамического кода, чтобы увидеть эффективность через
get_scans. - Организация с помощью папок и тем — Создавайте папки и переиспользуемые пресеты стилей, чтобы поддерживать порядок и брендирование кодов с помощью
create_folderиcreate_theme. - Массовая генерация для печатных кампаний — Создавайте до 200 динамических кодов одновременно для крупномасштабных проектов с помощью
bulk_create_dynamic_qr.
Документация
OpenQR
Бесплатный генератор QR-кодов с открытым исходным кодом, без водяных знаков. Работает полностью в вашем браузере — без отслеживания, без регистрации, без ограничений.
Большинство онлайн-генераторов QR-кодов заманивают вас словом «бесплатно», а затем добавляют водяной знак, ограничивают размер загрузки, прячут экспорт в векторных форматах за платным доступом или пропускают ваш код через свои серверы, так что он перестаёт работать, когда вы перестаёте платить. QR-код — это просто открытый стандарт (ISO/IEC 18004), генерация которого ничего не стоит. OpenQR сохраняет этот принцип.
Этот репозиторий — базовый инструмент генератора — эталонная реализация с открытым исходным кодом. Он намеренно небольшой и его легко форкнуть.
Если OpenQR вам полезен, звезда на репозитории поможет другим людям найти его. Это вся просьба.
Хостинговая версия: бесплатный API, MCP-сервер и редактируемые коды
Всё в этом репозитории бесплатно и останется бесплатным, без водяных знаков и без срока действия. Хостинговая сборка на openqr.uk добавляет необязательный уровень аккаунта для тех, кому нужны редактируемые коды и автоматизация:
- Динамические / редактируемые QR-коды с аналитикой сканирований. Меняйте назначение после печати. 1 бесплатный на бесплатном аккаунте (7 дней статистики по странам); 25 редактируемых кодов на Pro за £9/месяц или £90/год, что также открывает окно аналитики на 90 дней, детализацию по городам и регионам, разбивку по устройствам и реферерам с экспортом в CSV, фирменный поддомен и коды с паролем. Существующие подписчики сохраняют свой текущий тариф и цену.
- Бесплатный REST API. Генерируйте коды и управляйте динамическими кодами программно. Спецификация OpenAPI на
/openapi.json; интерактивная документация на openqr.uk/api. - Хостинговый MCP-сервер на
https://openqr.uk/mcp(Streamable HTTP). Генерируйте и управляйте QR-кодами напрямую из Claude, Cursor или любого MCP-клиента. Внесён в официальный реестр MCP. Клиенты с поддержкой удалённого подключения подключаются к этому URL напрямую; клиенты только со stdio могут использовать мост черезnpx -y @open-qr/mcpиOPENQR_API_KEY(подробности).
Статический генератор в этом репозитории никогда не обращается к этим сервисам. Он остаётся на 100% клиентским (см. Конфиденциальность), и ни один из них не требуется для использования или самостоятельного хостинга генератора.
Подключение MCP-клиента
Получите бесплатный ключ на openqr.uk/api, затем укажите клиенту сервер с ключом в заголовке авторизации.
Claude Code:
claude mcp add --transport http openqr https://openqr.uk/mcp \
--header "Authorization: Bearer oqr_YOUR_KEY"
Cursor (~/.cursor/mcp.json) и любой другой клиент, поддерживающий Streamable HTTP:
{
"mcpServers": {
"openqr": {
"url": "https://openqr.uk/mcp",
"headers": {
"Authorization": "Bearer oqr_YOUR_KEY"
}
}
}
}
Инструменты
Хостинговый MCP-сервер на https://openqr.uk/mcp предоставляет следующие инструменты (запустите tools/list для актуального списка). Каждый инструмент требует бесплатный API-ключ — создайте его на openqr.uk/api и передайте как Authorization: Bearer oqr_... при подключении MCP.
| Инструмент | Что делает |
|---|---|
generate_qr | Генерирует статический QR-код из любого текста или URL. Возвращает PNG-изображение или SVG-разметку. |
create_dynamic_qr | Создаёт редактируемый QR-код, назначение которого можно изменить позже без перепечатки. |
update_dynamic_qr | Изменяет назначение динамического кода, метку, пользовательскую короткую ссылку, теги или папку. |
get_dynamic_qr | Получает полные сведения о коде: назначение, короткую ссылку, метку, тип, теги, папку, статус, дату создания. |
get_scans | Статистика сканирований для динамического кода. |
list_dynamic_qr | Список ваших динамических кодов с id, коротким URL, назначением, меткой и статусом. |
delete_dynamic_qr | Навсегда удаляет динамический код. Его короткая ссылка перестаёт работать. |
bulk_create_dynamic_qr | Создаёт до 200 динамических кодов за раз. |
list_folders | Список ваших папок. |
create_folder | Создаёт папку для организации кодов. |
delete_folder | Удаляет папку. Её коды не удаляются, а остаются без папки. |
list_themes | Список сохранённых тем оформления. Примените одну, передав её id или имя как theme. |
create_theme | Сохраняет переиспользуемую тему оформления (цвета, стили точек и углов). |
delete_theme | Удаляет сохранённую тему. Коды, уже оформленные ею, сохраняют свой вид. |
get_subdomain | Показывает фирменный поддомен на аккаунте и приостановлен ли он. |
set_subdomain | Заявляет или изменяет фирменный поддомен, чтобы коды также открывались на {name}.oqr.to. Только для Pro. |
clear_subdomain | Освобождает фирменный поддомен. Коды остаются доступными по обычной короткой ссылке. |
Также предоставляются 5 ресурсов и 4 промпта:
- Ресурсы — встроенные пресеты стилей QR на
openqr://preset/classic,/teal,/high-contrast,/dotsи/classy. Прочитайте один и передайте его стиль вcreate_theme. - Промпты — это
create_tracked_qr,bulk_qr_for_print,brand_a_qrиqr_scan_report.
Возможности
- Без водяных знаков, без ограничений размера, без регистрации — каждая функция бесплатна
- Приватность по дизайну — коды генерируются полностью в вашем браузере; содержимое никогда не попадает на сервер
- Экспорт куда угодно — PNG / WebP до 4096px, а также настоящий векторный SVG и PDF
- Полное оформление — цвета, градиенты, стили точек и углов, встраивание логотипа, рамки «Сканируй меня»
- Умный ввод — вставьте ссылку или текст, и тип определится автоматически
- Богатые полезные нагрузки — URL, текст, email, телефон, SMS, WhatsApp, Wi-Fi и картографический выбор местоположения
- Копирование в один клик, общие ссылки на дизайн, светлая/тёмная тема, адаптивность, доступность с клавиатуры
Быстрый старт
pnpm install
pnpm dev # http://localhost:3011
Сборка и самостоятельный хостинг
pnpm build
pnpm start # serves on :3011 (standalone output)
Это стандартное приложение Next.js — размещайте его где угодно (VPS, Raspberry Pi, Cloudflare, за любым обратным прокси). Для запуска не требуются переменные окружения, база данных или секреты. Скрипты dev/start выше используют порт 3011; Docker-образ ниже работает на 3000. Единственная конфигурация в любом случае — это PORT.
Развёртывание (Docker-образ)
Мультиархитектурный образ (linux/amd64, linux/arm64) публикуется в GHCR при каждом релизном теге:
docker run -d --name openqr --restart unless-stopped -p 3000:3000 ghcr.io/open-qr/openqr:latest
Или с docker-compose.yml:
docker compose up -d # update later: docker compose pull && docker compose up -d
В продакшене зафиксируйте версионный тег (ghcr.io/open-qr/openqr:1.0.1); latest обновляется с каждым релизом. Контейнер — это предварительно собранный, не-root автономный сервер с проверкой работоспособности, и он содержит LICENSE и NOTICE внутри образа.
Развёртывание в один клик
| Хостинг | Ссылка | Примечания |
|---|---|---|
| DigitalOcean App Platform | Кнопка 1-click | Читает .do/deploy.template.yaml; минимальный инстанс, порт 3000 |
| Render | Кнопка Blueprint | Читает render.yaml; предполагает платный инстанс (бесплатный тариф Render засыпает) |
| Koyeb | Развёртывание из образа | Любой публичный тег ghcr.io/open-qr/openqr, без сборки репозитория |
Развёртывание через любой из этих сервисов не добавляет условий помимо AGPL-3.0: исходный код — это данный репозиторий, а образ содержит лицензию и уведомления о сторонних компонентах.
Встраивание
Компонент <Generator/> самодостаточен и настраиваем:
import { Generator } from "@/components/generator/generator";
// Full page (default OpenQR logo header):
<Generator />
// Embedded widget, your own branding, no default header:
<Generator embedded header={<MyLogo />} />
// Inject your own post-download call-to-action:
<Generator renderSuccess={(variant) => <MySupportCluster variant={variant} />} />
Инструмент поставляется без какой-либо аналитики. Если вы хотите анонимные события интерфейса (например, какой формат экспорта использовался — никогда содержимое QR), подключите обработчик:
import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));
Конфиденциальность
Генерация QR-кодов происходит на 100% в вашем браузере. Единственные необязательные исходящие вызовы — в инструменте Местоположение: тайлы карт от CARTO и поиск адресов через Nominatim от OpenStreetMap. Больше ничего не покидает устройство.
Технологический стек
Next.js 16 (App Router) · React 19 · TypeScript (строгий режим) · Tailwind v4 ·
qr-code-styling · Leaflet · pnpm.
Участие в разработке
См. CONTRIBUTING.md. Держите проект простым, доступным, клиентским и бесплатным — ни одна функция не должна требовать оплаты за удаление водяного знака или разблокировку формата.
Лицензия
AGPL-3.0 © 2026 Sam Moreton.
Вы можете свободно использовать, изучать, изменять, размещать самостоятельно и распространять OpenQR в соответствии с AGPL-3.0. Если вы запускаете изменённую версию как сетевой сервис, AGPL требует предоставить ваш исходный код под той же лицензией. Если это не подходит для вашего сценария, доступна коммерческая лицензия — см. NOTICE.