OpenQR
offiziellGenerieren Sie QR-Codes und verwalten Sie dynamische (bearbeitbare) QR-Codes mit Scan-Analysen über einen gehosteten MCP-Server (17 Tools) und eine kostenlose REST-API.
Was kann man mit OpenQR MCP machen?
- Statische QR-Codes generieren — Fordern Sie einen QR-Code für beliebigen Text oder eine URL an; erhalten Sie PNG- oder SVG-Ausgabe über
generate_qr. - Dynamische QR-Codes erstellen und verwalten — Erstellen Sie bearbeitbare Codes, ändern Sie Ziele, listen Sie sie auf oder löschen Sie sie mit
create_dynamic_qr,update_dynamic_qrunddelete_dynamic_qr. - Scan-Analysen verfolgen — Fordern Sie Scan-Statistiken für einen dynamischen Code an, um die Leistung über
get_scanszu sehen. - Mit Ordnern und Themes organisieren — Erstellen Sie Ordner und wiederverwendbare Stilvorlagen, um Codes ordentlich und markenkonform zu halten, mit
create_folderundcreate_theme. - Massenhaft für Druckkampagnen generieren — Erstellen Sie bis zu 200 dynamische Codes auf einmal für groß angelegte Projekte mit
bulk_create_dynamic_qr.
Dokumentation
OpenQR
Kostenloser, quelloffener QR-Code-Generator ohne Wasserzeichen. Läuft vollständig in deinem Browser – kein Tracking, keine Anmeldung, keine Limits.
Die meisten Online-QR-Generatoren locken dich mit „kostenlos“ und fügen dann ein Wasserzeichen hinzu, begrenzen deine Download-Größe, verstecken den Vektor-Export hinter einer Bezahlschranke oder leiten deinen Code über ihre Server, sodass er stirbt, sobald du aufhörst zu zahlen. Ein QR-Code ist nur ein offener Standard (ISO/IEC 18004), dessen Erzeugung nichts kostet. OpenQR hält daran fest.
Dieses Repository ist das grundlegende Generator-Tool – die quelloffene Referenzimplementierung. Es ist bewusst klein gehalten und leicht zu forken.
Wenn OpenQR für dich nützlich ist, hilft ein Stern auf dem Repository anderen Leuten, es zu finden. Das ist die ganze Bitte.
Gehostete Version: kostenlose API, MCP-Server und bearbeitbare Codes
Alles in diesem Repo ist und bleibt kostenlos, ohne Wasserzeichen und ohne Ablauf. Der gehostete Build unter openqr.uk fügt eine optionale Kontoschicht für Leute hinzu, die bearbeitbare Codes und Automatisierung möchten:
- Dynamische / bearbeitbare QR-Codes mit Scan-Analysen. Ändere das Ziel, nachdem du es gedruckt hast. 1 kostenlos auf einem kostenlosen Konto (7 Tage Scans nach Land); 25 bearbeitbare Codes bei Pro für 9 £/Monat oder 90 £/Jahr, was außerdem ein 90-Tage-Fenster für Scan-Analysen sowie Stadt- und Regionsdetails, Geräte- und Referrer-Aufschlüsselungen mit CSV-Export, eine eigene Subdomain und passwortgeschützte Codes freischaltet. Bestehende Abonnenten behalten ihren aktuellen Plan und Preis.
- Kostenlose REST-API. Generiere Codes und verwalte dynamische Codes programmatisch. OpenAPI-Spezifikation unter
/openapi.json; interaktive Dokumentation unter openqr.uk/api. - Gehosteter MCP-Server unter
https://openqr.uk/mcp(Streamable HTTP). Generiere und verwalte QR-Codes direkt von Claude, Cursor oder einem beliebigen MCP-Client. Gelistet im offiziellen MCP-Registry. Remote-fähige Clients verbinden sich direkt mit dieser URL; stdio-only-Clients können mitnpx -y @open-qr/mcpundOPENQR_API_KEYeine Brücke dorthin herstellen (Details).
Der statische Generator in diesem Repository ruft davon nie etwas auf. Er bleibt zu 100 % clientseitig (siehe Datenschutz), und nichts davon ist erforderlich, um den Generator zu nutzen oder selbst zu hosten.
Einen MCP-Client verbinden
Hole dir einen kostenlosen Schlüssel unter openqr.uk/api und richte dann deinen Client mit dem Schlüssel als Auth-Header auf den Server aus.
Claude Code:
claude mcp add --transport http openqr https://openqr.uk/mcp \
--header "Authorization: Bearer oqr_YOUR_KEY"
Cursor (~/.cursor/mcp.json) und jeder andere Client, der Streamable HTTP spricht:
{
"mcpServers": {
"openqr": {
"url": "https://openqr.uk/mcp",
"headers": {
"Authorization": "Bearer oqr_YOUR_KEY"
}
}
}
}
Tools
Der gehostete MCP-Server unter https://openqr.uk/mcp stellt diese Tools bereit (führe tools/list für den aktuellen Satz aus). Jedes Tool erfordert einen kostenlosen API-Schlüssel – erstelle einen unter openqr.uk/api und übergib ihn als Authorization: Bearer oqr_... bei der MCP-Verbindung.
| Tool | Was es tut |
|---|---|
generate_qr | Generiere einen statischen QR-Code aus beliebigem Text oder einer URL. Gibt ein PNG-Bild oder SVG-Markup zurück. |
create_dynamic_qr | Erstelle einen bearbeitbaren QR-Code, dessen Ziel du später ohne Neudruck ändern kannst. |
update_dynamic_qr | Ändere Ziel, Beschriftung, benutzerdefinierten Kurzlink, Tags oder Ordner eines dynamischen Codes. |
get_dynamic_qr | Hole die vollständigen Details eines Codes: Ziel, Kurzlink, Beschriftung, Typ, Tags, Ordner, Status, Erstellungsdatum. |
get_scans | Scan-Statistiken für einen dynamischen Code. |
list_dynamic_qr | Liste deine dynamischen Codes mit ID, Kurz-URL, Ziel, Beschriftung und Status auf. |
delete_dynamic_qr | Lösche einen dynamischen Code dauerhaft. Sein Kurzlink funktioniert nicht mehr. |
bulk_create_dynamic_qr | Erstelle bis zu 200 dynamische Codes auf einmal. |
list_folders | Liste deine Ordner auf. |
create_folder | Erstelle einen Ordner, um Codes zu organisieren. |
delete_folder | Lösche einen Ordner. Seine Codes werden nicht gelöscht, sondern nur aus dem Ordner entfernt. |
list_themes | Liste gespeicherte Stil-Designs auf. Wende eines an, indem du seine ID oder seinen Namen als theme übergibst. |
create_theme | Speichere ein wiederverwendbares Stil-Design (Farben, Punkt- und Eckstile). |
delete_theme | Lösche ein gespeichertes Design. Codes, die bereits damit gestaltet wurden, behalten ihr Aussehen. |
get_subdomain | Zeige die eigene Subdomain auf dem Konto an und ob sie gesperrt ist. |
set_subdomain | Beanspruche oder ändere die eigene Subdomain, sodass Codes auch unter {name}.oqr.to aufgelöst werden. Nur Pro. |
clear_subdomain | Gib die eigene Subdomain frei. Codes bleiben über den normalen Kurzlink live. |
Es stellt außerdem 5 Ressourcen und 4 Prompts bereit:
- Ressourcen sind integrierte QR-Stil-Voreinstellungen unter
openqr://preset/classic,/teal,/high-contrast,/dotsund/classy. Lies eine und übergib ihren Stil ancreate_theme. - Prompts sind
create_tracked_qr,bulk_qr_for_print,brand_a_qrundqr_scan_report.
Funktionen
- Keine Wasserzeichen, keine Größenlimits, keine Anmeldung – jede Funktion ist kostenlos
- Privat by design – Codes werden vollständig in deinem Browser generiert; der Inhalt berührt nie einen Server
- Überall exportieren – PNG / WebP bis 4096px, plus echtes Vektor-SVG und PDF
- Volle Gestaltung – Farben, Verläufe, Punkt- und Eckstile, Logo-Einbettung, „Scan me“-Rahmen
- Intelligente Eingabe – füge einen Link oder Text ein und der Typ wird automatisch erkannt
- Umfangreiche Inhalte – URL, Text, E-Mail, Telefon, SMS, WhatsApp, Wi-Fi und ein kartenbasierter Standortwähler
- Ein-Klick-Kopieren, teilbare Design-Links, hell/dunkel, responsiv, tastaturzugänglich
Schnellstart
pnpm install
pnpm dev # http://localhost:3011
Build & Selbsthosting
pnpm build
pnpm start # serves on :3011 (standalone output)
Es ist eine Standard-Next.js-App – hoste sie überall (einen VPS, einen Raspberry Pi, Cloudflare, hinter einem beliebigen Reverse-Proxy). Sie benötigt keine Umgebungsvariablen, keine Datenbank, keine Geheimnisse zum Ausführen. Die Dev/Start-Skripte oben verwenden Port 3011; das Docker-Image unten bedient Port 3000. Die einzige Konfiguration in beiden Fällen ist PORT.
Bereitstellen (Docker-Image)
Ein Multi-Arch-Image (linux/amd64, linux/arm64) wird bei jedem Release-Tag auf GHCR veröffentlicht:
docker run -d --name openqr --restart unless-stopped -p 3000:3000 ghcr.io/open-qr/openqr:latest
Oder mit docker-compose.yml:
docker compose up -d # update later: docker compose pull && docker compose up -d
Pinne in der Produktion eine Versions-Tag an (ghcr.io/open-qr/openqr:1.0.1); latest bewegt sich mit jedem Release. Der Container ist ein vorgebauter, nicht-root-Standalone-Server mit Healthcheck und enthält LICENSE und NOTICE im Image.
Ein-Klick-Bereitstellungen
| Host | Link | Hinweise |
|---|---|---|
| DigitalOcean App Platform | 1-Klick-Button | Liest .do/deploy.template.yaml; kleinste Instanz, Port 3000 |
| Render | Blueprint-Button | Liest render.yaml; setzt eine kostenpflichtige Instanz voraus (Renders kostenloser Tarif schläft) |
| Koyeb | Stellt aus dem Image bereit | Beliebiges öffentliches ghcr.io/open-qr/openqr-Tag, kein Repo-Build |
Die Bereitstellung über eine dieser Optionen fügt keine Bedingungen über AGPL-3.0 hinaus hinzu: Die Quelle ist dieses Repository, und das Image enthält die Lizenz und Hinweise zu Drittanbietern.
Einbettung
Die <Generator/>-Komponente ist eigenständig und konfigurierbar:
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} />} />
Das Tool liefert null Analytics. Wenn du anonyme UI-Ereignisse möchtest (z. B. welches Exportformat verwendet wurde – niemals den QR-Inhalt), injiziere einen Handler:
import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));
Datenschutz
Die QR-Generierung erfolgt zu 100 % in deinem Browser. Die einzigen optionalen ausgehenden Aufrufe befinden sich im Standort-Tool: Kartendaten von CARTO und Adressabfragen über OpenStreetMaps Nominatim. Sonst verlässt nichts das Gerät.
Technologie-Stack
Next.js 16 (App Router) · React 19 · TypeScript (streng) · Tailwind v4 ·
qr-code-styling · Leaflet · pnpm.
Mitwirken
Siehe CONTRIBUTING.md. Halte es einfach, zugänglich, clientseitig und kostenlos – keine Funktion sollte jemals eine Zahlung erfordern, um ein Wasserzeichen zu entfernen oder ein Format freizuschalten.
Lizenz
AGPL-3.0 © 2026 Sam Moreton.
Du kannst OpenQR unter der AGPL-3.0 frei nutzen, studieren, modifizieren, selbst hosten und weiterverbreiten. Wenn du eine modifizierte Version als Netzwerkdienst betreibst, verlangt die AGPL, dass du deinen Quellcode unter derselben Lizenz verfügbar machst. Wenn das nicht zu deinem Anwendungsfall passt, ist eine kommerzielle Lizenz erhältlich – siehe NOTICE.