OpenQR
officielGénérez des codes QR et gérez des codes QR dynamiques (modifiables) avec analyses de scan via un serveur MCP hébergé (17 outils) et une API REST gratuite.
Que pouvez-vous faire avec OpenQR MCP ?
- Générer des codes QR statiques — Demandez un code QR à partir de n'importe quel texte ou URL ; obtenez une sortie PNG ou SVG via
generate_qr. - Créer et gérer des codes QR dynamiques — Créez des codes modifiables, changez les destinations, listez-les ou supprimez-les avec
create_dynamic_qr,update_dynamic_qretdelete_dynamic_qr. - Suivre les analyses de scans — Demandez des statistiques de scan pour un code dynamique afin de voir ses performances via
get_scans. - Organiser avec des dossiers et des thèmes — Créez des dossiers et des préréglages de style réutilisables pour garder les codes ordonnés et personnalisés à l'aide de
create_folderetcreate_theme. - Génération en masse pour les campagnes d'impression — Créez jusqu'à 200 codes dynamiques à la fois pour des projets à grande échelle avec
bulk_create_dynamic_qr.
Documentation
OpenQR
Générateur de codes QR gratuit, open source et sans filigrane. Fonctionne entièrement dans votre navigateur — aucun suivi, aucune inscription, aucune limite.
La plupart des générateurs de codes QR en ligne vous attirent avec « gratuit », puis ajoutent un filigrane, limitent la taille de téléchargement, cachent l'export vectoriel derrière un paywall, ou acheminent votre code via leurs serveurs pour qu'il cesse de fonctionner dès que vous arrêtez de payer. Un code QR n'est qu'un standard ouvert (ISO/IEC 18004) qui ne coûte rien à générer. OpenQR le maintient ainsi.
Ce dépôt est l'outil de génération de base — l'implémentation open source de référence. Il est volontairement petit et facile à forker.
Si OpenQR vous est utile, une étoile sur le dépôt aide d'autres personnes à le trouver. C'est tout ce que nous demandons.
Version hébergée : API gratuite, serveur MCP et codes modifiables
Tout dans ce dépôt est et reste gratuit, sans filigrane et sans expiration. La version hébergée sur openqr.uk ajoute une couche de compte optionnelle pour ceux qui souhaitent des codes modifiables et de l'automatisation :
- Codes QR dynamiques / modifiables avec statistiques de scan. Changez la destination après l'impression. 1 gratuit sur un compte gratuit (7 jours de scans par pays) ; 25 codes modifiables avec Pro à 9 £/mois ou 90 £/an, ce qui débloque également une fenêtre de 90 jours de statistiques de scan avec détail par ville et région, répartition par appareil et référent avec export CSV, un sous-domaine de marque et des codes protégés par mot de passe. Les abonnés existants conservent leur formule et leur prix actuels.
- API REST gratuite. Générez des codes et gérez les codes dynamiques par programmation. Spécification OpenAPI sur
/openapi.json; documentation interactive sur openqr.uk/api. - Serveur MCP hébergé sur
https://openqr.uk/mcp(HTTP Streamable). Générez et gérez des codes QR directement depuis Claude, Cursor ou tout client MCP. Répertorié dans le registre MCP officiel. Les clients compatibles à distance se connectent directement à cette URL ; les clients stdio uniquement peuvent y faire un pont avecnpx -y @open-qr/mcpetOPENQR_API_KEYdéfinis (détails).
Le générateur statique de ce dépôt n'utilise jamais tout cela. Il reste 100 % côté client (voir Confidentialité), et rien de tout cela n'est requis pour utiliser ou auto-héberger le générateur.
Connexion d'un client MCP
Obtenez une clé gratuite sur openqr.uk/api, puis pointez votre client vers le serveur avec la clé comme en-tête d'authentification.
Claude Code :
claude mcp add --transport http openqr https://openqr.uk/mcp \
--header "Authorization: Bearer oqr_YOUR_KEY"
Cursor (~/.cursor/mcp.json), et tout autre client compatible HTTP Streamable :
{
"mcpServers": {
"openqr": {
"url": "https://openqr.uk/mcp",
"headers": {
"Authorization": "Bearer oqr_YOUR_KEY"
}
}
}
}
Outils
Le serveur MCP hébergé sur https://openqr.uk/mcp expose ces outils (exécutez tools/list pour l'ensemble en direct). Chaque outil nécessite une clé API gratuite — créez-en une sur openqr.uk/api et transmettez-la comme Authorization: Bearer oqr_... sur la connexion MCP.
| Outil | Ce qu'il fait |
|---|---|
generate_qr | Génère un code QR statique à partir de n'importe quel texte ou URL. Renvoie une image PNG ou du balisage SVG. |
create_dynamic_qr | Crée un code QR modifiable dont vous pouvez changer la destination plus tard sans réimprimer. |
update_dynamic_qr | Modifie la destination, l'étiquette, le lien court personnalisé, les balises ou le dossier d'un code dynamique. |
get_dynamic_qr | Obtient les détails complets d'un code : destination, lien court, étiquette, type, balises, dossier, statut, date de création. |
get_scans | Statistiques de scan pour un code dynamique. |
list_dynamic_qr | Liste vos codes dynamiques avec identifiant, URL courte, destination, étiquette et statut. |
delete_dynamic_qr | Supprime définitivement un code dynamique. Son lien court cesse de fonctionner. |
bulk_create_dynamic_qr | Crée jusqu'à 200 codes dynamiques en une fois. |
list_folders | Liste vos dossiers. |
create_folder | Crée un dossier pour organiser les codes. |
delete_folder | Supprime un dossier. Ses codes sont désarchivés, non supprimés. |
list_themes | Liste les thèmes de style enregistrés. Appliquez-en un en transmettant son identifiant ou son nom comme theme. |
create_theme | Enregistre un thème de style réutilisable (couleurs, styles de points et de coins). |
delete_theme | Supprime un thème enregistré. Les codes déjà stylés avec celui-ci conservent leur apparence. |
get_subdomain | Affiche le sous-domaine de marque du compte et s'il est suspendu. |
set_subdomain | Revendique ou modifie le sous-domaine de marque afin que les codes se résolvent également sur {name}.oqr.to. Pro uniquement. |
clear_subdomain | Libère le sous-domaine de marque. Les codes restent actifs sur le lien court standard. |
Il expose également 5 ressources et 4 invites :
- Ressources : préréglages de style QR intégrés sur
openqr://preset/classic,/teal,/high-contrast,/dotset/classy. Lisez-en une et transmettez son style àcreate_theme. - Invites :
create_tracked_qr,bulk_qr_for_print,brand_a_qretqr_scan_report.
Fonctionnalités
- Aucun filigrane, aucune limite de taille, aucune inscription — chaque fonctionnalité est gratuite
- Confidentiel par conception — les codes sont générés entièrement dans votre navigateur ; le contenu ne touche jamais un serveur
- Export partout — PNG / WebP jusqu'à 4096 px, plus SVG et PDF véritablement vectoriels
- Style complet — couleurs, dégradés, styles de points et de coins, intégration de logo, cadres « Scannez-moi »
- Saisie intelligente — collez un lien ou du texte et le type est détecté automatiquement
- Contenus riches — URL, texte, e-mail, téléphone, SMS, WhatsApp, Wi-Fi et un sélecteur de position basé sur une carte
- Copie en un clic, liens de conception partageables, clair/sombre, responsive, accessible au clavier
Démarrage rapide
pnpm install
pnpm dev # http://localhost:3011
Construction et auto-hébergement
pnpm build
pnpm start # serves on :3011 (standalone output)
C'est une application Next.js standard — hébergez-la n'importe où (un VPS, un Raspberry Pi, Cloudflare, derrière n'importe quel proxy inverse). Elle ne nécessite aucune variable d'environnement, aucune base de données, aucun secret pour fonctionner. Les scripts de développement/démarrage ci-dessus utilisent le port 3011 ; l'image Docker ci-dessous sert sur 3000. La seule configuration dans les deux cas est PORT.
Déploiement (image Docker)
Une image multi-architecture (linux/amd64, linux/arm64) est publiée sur GHCR à chaque tag de version :
docker run -d --name openqr --restart unless-stopped -p 3000:3000 ghcr.io/open-qr/openqr:latest
Ou avec docker-compose.yml :
docker compose up -d # update later: docker compose pull && docker compose up -d
Épinglez un tag de version en production (ghcr.io/open-qr/openqr:1.0.1) ; latest suit chaque version. Le conteneur est un serveur autonome précompilé, non root, avec une vérification de santé, et contient LICENSE et NOTICE dans l'image.
Déploiements en un clic
| Hôte | Lien | Notes |
|---|---|---|
| DigitalOcean App Platform | Bouton 1 clic | Lit .do/deploy.template.yaml ; instance la plus petite, port 3000 |
| Render | Bouton blueprint | Lit render.yaml ; suppose une instance payante (le niveau gratuit de Render se met en veille) |
| Koyeb | Déploie depuis l'image | N'importe quel tag public ghcr.io/open-qr/openqr, sans construction de dépôt |
Le déploiement via l'un de ces services n'ajoute aucune condition au-delà de l'AGPL-3.0 : la source est ce dépôt, et l'image contient la licence et les avis tiers.
Intégration
Le composant <Generator/> est autonome et configurable :
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} />} />
L'outil embarque zéro analytique. Si vous souhaitez des événements d'interface anonymes (par exemple, quel format d'export a été utilisé — jamais le contenu du QR), injectez un gestionnaire :
import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));
Confidentialité
La génération de codes QR se fait à 100 % dans votre navigateur. Les seuls appels sortants optionnels se trouvent dans l'outil Localisation : tuiles cartographiques de CARTO et recherches d'adresses via Nominatim d'OpenStreetMap. Rien d'autre ne quitte l'appareil.
Pile technique
Next.js 16 (App Router) · React 19 · TypeScript (strict) · Tailwind v4 ·
qr-code-styling · Leaflet · pnpm.
Contribution
Voir CONTRIBUTING.md. Restez simple, accessible, côté client et gratuit — aucune fonctionnalité ne devrait jamais exiger de paiement pour supprimer un filigrane ou débloquer un format.
Licence
AGPL-3.0 © 2026 Sam Moreton.
Vous êtes libre d'utiliser, d'étudier, de modifier, d'auto-héberger et de redistribuer OpenQR sous l'AGPL-3.0. Si vous exécutez une version modifiée comme service réseau, l'AGPL exige que vous rendiez votre source disponible sous la même licence. Si cela ne convient pas à votre cas d'usage, une licence commerciale est disponible — voir NOTICE.