OpenQR
resmiBuat kode QR dan kelola kode QR dinamis (yang dapat diedit) dengan analitik pemindaian melalui server MCP yang dihosting (17 alat) dan REST API gratis
Apa yang bisa Anda lakukan dengan OpenQR MCP?
- Buat kode QR statis — Minta kode QR dari teks atau URL apa pun; dapatkan output PNG atau SVG melalui
generate_qr. - Buat dan kelola kode QR dinamis — Buat kode yang dapat diedit, ubah tujuan, daftarkan, atau hapus dengan
create_dynamic_qr,update_dynamic_qr, dandelete_dynamic_qr. - Lacak analitik pemindaian — Minta statistik pemindaian untuk kode dinamis untuk melihat kinerja melalui
get_scans. - Atur dengan folder dan tema — Buat folder dan preset gaya yang dapat digunakan kembali untuk menjaga kode tetap rapi dan bermerek menggunakan
create_folderdancreate_theme. - Buat massal untuk kampanye cetak — Buat hingga 200 kode dinamis sekaligus untuk proyek skala besar dengan
bulk_create_dynamic_qr.
Dokumentasi
OpenQR
Generator kode QR gratis, sumber terbuka, tanpa tanda air. Berjalan sepenuhnya di peramban Anda — tanpa pelacakan, tanpa pendaftaran, tanpa batasan.
Kebanyakan generator QR online memancing Anda dengan "gratis" lalu menambahkan tanda air, membatasi ukuran unduhan, menyembunyikan ekspor vektor di balik paywall, atau mengarahkan kode Anda melalui server mereka sehingga mati saat Anda berhenti membayar. Kode QR hanyalah standar terbuka (ISO/IEC 18004) yang tidak memerlukan biaya untuk dibuat. OpenQR mempertahankan hal itu.
Repositori ini adalah alat generator dasar — implementasi sumber terbuka referensi. Dirancang secara sengaja agar kecil dan mudah di-fork.
Jika OpenQR bermanfaat bagi Anda, bintang di repositori membantu orang lain menemukannya. Itulah satu-satunya permintaan.
Versi ter-hosting: API gratis, server MCP, dan kode yang dapat diedit
Semua yang ada di repositori ini gratis dan tetap gratis, tanpa tanda air dan tanpa kedaluwarsa. Build ter-hosting di openqr.uk menambahkan lapisan akun opsional bagi mereka yang menginginkan kode yang dapat diedit dan otomatisasi:
- Kode QR dinamis / dapat diedit dengan analitik pemindaian. Ubah tujuan setelah Anda mencetaknya. 1 gratis di akun gratis (7 hari pemindaian per negara); 25 kode yang dapat diedit di Pro seharga £9/bulan atau £90/tahun, yang juga membuka jendela analitik pemindaian 90 hari plus detail kota dan wilayah, perincian perangkat dan perujuk dengan ekspor CSV, subdomain bermerek, dan kode yang dilindungi kata sandi. Pelanggan yang sudah ada tetap mempertahankan paket dan harga saat ini.
- API REST gratis. Buat kode dan kelola kode dinamis secara terprogram.
Spesifikasi OpenAPI di
/openapi.json; dokumentasi interaktif di openqr.uk/api. - Server MCP ter-hosting di
https://openqr.uk/mcp(Streamable HTTP). Buat dan kelola kode QR langsung dari Claude, Cursor, atau klien MCP mana pun. Terdaftar di Registri MCP resmi. Klien yang mendukung remote dapat terhubung ke URL tersebut secara langsung; klien khusus stdio dapat menjembataninya dengannpx -y @open-qr/mcpdanOPENQR_API_KEYyang diatur (detail).
Generator statis di repositori ini tidak pernah memanggil semua itu. Ia tetap 100% berbasis klien (lihat Privasi), dan tidak ada satu pun yang diperlukan untuk menggunakan atau menyebarkan generator secara mandiri.
Menghubungkan klien MCP
Dapatkan kunci gratis di openqr.uk/api, lalu arahkan klien Anda ke server dengan kunci tersebut sebagai header autentikasi.
Claude Code:
claude mcp add --transport http openqr https://openqr.uk/mcp \
--header "Authorization: Bearer oqr_YOUR_KEY"
Cursor (~/.cursor/mcp.json), dan klien lain yang mendukung Streamable HTTP:
{
"mcpServers": {
"openqr": {
"url": "https://openqr.uk/mcp",
"headers": {
"Authorization": "Bearer oqr_YOUR_KEY"
}
}
}
}
Alat
Server MCP ter-hosting di https://openqr.uk/mcp mengekspos alat-alat ini (jalankan tools/list untuk set yang aktif). Setiap alat
memerlukan kunci API gratis — buat satu di openqr.uk/api dan berikan
sebagai Authorization: Bearer oqr_... pada koneksi MCP.
| Alat | Fungsinya |
|---|---|
generate_qr | Membuat kode QR statis dari teks atau URL apa pun. Mengembalikan gambar PNG atau markup SVG. |
create_dynamic_qr | Membuat kode QR yang dapat diedit yang tujuannya dapat diubah nanti tanpa mencetak ulang. |
update_dynamic_qr | Mengubah tujuan, label, tautan pendek kustom, tag, atau folder kode dinamis. |
get_dynamic_qr | Mendapatkan detail lengkap satu kode: tujuan, tautan pendek, label, jenis, tag, folder, status, tanggal pembuatan. |
get_scans | Statistik pemindaian untuk kode dinamis. |
list_dynamic_qr | Mendaftar kode dinamis Anda dengan id, URL pendek, tujuan, label, dan status. |
delete_dynamic_qr | Menghapus kode dinamis secara permanen. Tautan pendeknya berhenti berfungsi. |
bulk_create_dynamic_qr | Membuat hingga 200 kode dinamis sekaligus. |
list_folders | Mendaftar folder Anda. |
create_folder | Membuat folder untuk mengatur kode. |
delete_folder | Menghapus folder. Kode-kodenya tidak difile, tidak dihapus. |
list_themes | Mendaftar tema gaya yang disimpan. Terapkan satu dengan memberikan id atau namanya sebagai theme. |
create_theme | Menyimpan tema gaya yang dapat digunakan kembali (warna, gaya titik dan sudut). |
delete_theme | Menghapus tema yang disimpan. Kode yang sudah diberi gaya tetap mempertahankan tampilannya. |
get_subdomain | Menampilkan subdomain bermerek di akun, dan apakah subdomain tersebut ditangguhkan. |
set_subdomain | Mengklaim atau mengubah subdomain bermerek sehingga kode juga terselesaikan di {name}.oqr.to. Khusus Pro. |
clear_subdomain | Melepaskan subdomain bermerek. Kode tetap aktif di tautan pendek biasa. |
Ia juga mengekspos 5 sumber daya dan 4 prompt:
- Sumber daya adalah preset gaya QR bawaan di
openqr://preset/classic,/teal,/high-contrast,/dotsdan/classy. Baca satu dan berikan gayanya kecreate_theme. - Prompt adalah
create_tracked_qr,bulk_qr_for_print,brand_a_qrdanqr_scan_report.
Fitur
- Tanpa tanda air, tanpa batas ukuran, tanpa pendaftaran — setiap fitur gratis
- Privat secara desain — kode dibuat sepenuhnya di peramban Anda; konten tidak pernah menyentuh server
- Ekspor ke mana saja — PNG / WebP hingga 4096px, plus SVG dan PDF vektor sejati
- Gaya lengkap — warna, gradien, gaya titik & sudut, penyematan logo, bingkai "Scan me"
- Input cerdas — tempel tautan atau teks dan jenisnya terdeteksi otomatis
- Payload kaya — URL, teks, email, telepon, SMS, WhatsApp, Wi-Fi, dan pemilih lokasi berbasis peta
- Salin sekali klik, tautan desain yang dapat dibagikan, terang/gelap, responsif, dapat diakses keyboard
Mulai cepat
pnpm install
pnpm dev # http://localhost:3011
Build & self-host
pnpm build
pnpm start # serves on :3011 (standalone output)
Ini adalah aplikasi Next.js standar — host di mana saja (VPS, Raspberry Pi, Cloudflare,
di belakang proxy balik apa pun). Ia tidak memerlukan variabel lingkungan, basis data, atau
rahasia untuk berjalan. Skrip dev/start di atas menggunakan port 3011; gambar
Docker di bawah melayani di 3000. Satu-satunya konfigurasi di kedua cara adalah PORT.
Deploy (gambar Docker)
Gambar multi-arsitektur (linux/amd64, linux/arm64) diterbitkan ke GHCR pada setiap
tag rilis:
docker run -d --name openqr --restart unless-stopped -p 3000:3000 ghcr.io/open-qr/openqr:latest
Atau dengan docker-compose.yml:
docker compose up -d # update later: docker compose pull && docker compose up -d
Sematkan tag versi di produksi (ghcr.io/open-qr/openqr:1.0.1); latest
bergerak mengikuti setiap rilis. Kontainer ini adalah server mandiri non-root yang sudah
dibangun sebelumnya dengan healthcheck, dan membawa LICENSE dan NOTICE di dalam gambar.
Deploy sekali klik
| Host | Tautan | Catatan |
|---|---|---|
| DigitalOcean App Platform | Tombol 1-klik | Membaca .do/deploy.template.yaml; instance terkecil, port 3000 |
| Render | Tombol Blueprint | Membaca render.yaml; mengasumsikan instance berbayar (tingkat gratis Render tidur) |
| Koyeb | Deploy dari gambar | Tag ghcr.io/open-qr/openqr publik apa pun, tanpa build repositori |
Deploy melalui salah satu dari ini tidak menambahkan ketentuan di luar AGPL-3.0: sumbernya adalah repositori ini, dan gambar membawa lisensi dan pemberitahuan pihak ketiga.
Penyematan
Komponen <Generator/> mandiri dan dapat dikonfigurasi:
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} />} />
Alat ini mengirimkan nol analitik. Jika Anda menginginkan peristiwa UI anonim (misalnya format ekspor mana yang digunakan — tidak pernah konten QR), suntikkan penangan:
import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));
Privasi
Pembuatan QR terjadi 100% di peramban Anda. Satu-satunya panggilan keluar opsional adalah di alat Lokasi: petak peta dari CARTO dan pencarian alamat melalui Nominatim OpenStreetMap. Tidak ada hal lain yang meninggalkan perangkat.
Tumpukan teknologi
Next.js 16 (App Router) · React 19 · TypeScript (ketat) · Tailwind v4 ·
qr-code-styling · Leaflet · pnpm.
Kontribusi
Lihat CONTRIBUTING.md. Jaga agar tetap sederhana, dapat diakses, berbasis klien, dan gratis — tidak ada fitur yang boleh mengharuskan pembayaran untuk menghapus tanda air atau membuka format.
Lisensi
AGPL-3.0 © 2026 Sam Moreton.
Anda bebas menggunakan, mempelajari, memodifikasi, menyebarkan sendiri, dan mendistribusikan ulang OpenQR di bawah AGPL-3.0. Jika Anda menjalankan versi yang dimodifikasi sebagai layanan jaringan, AGPL mengharuskan Anda membuat sumber Anda tersedia di bawah lisensi yang sama. Jika itu tidak sesuai dengan kasus penggunaan Anda, lisensi komersial tersedia — lihat NOTICE.