OpenQR

officiel

Gé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_qr et delete_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_folder et create_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.

License: AGPL-3.0 Next.js No watermark Listed on mcpservers.org

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 avec npx -y @open-qr/mcp et OPENQR_API_KEY dé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.

OutilCe qu'il fait
generate_qrGénère un code QR statique à partir de n'importe quel texte ou URL. Renvoie une image PNG ou du balisage SVG.
create_dynamic_qrCrée un code QR modifiable dont vous pouvez changer la destination plus tard sans réimprimer.
update_dynamic_qrModifie la destination, l'étiquette, le lien court personnalisé, les balises ou le dossier d'un code dynamique.
get_dynamic_qrObtient les détails complets d'un code : destination, lien court, étiquette, type, balises, dossier, statut, date de création.
get_scansStatistiques de scan pour un code dynamique.
list_dynamic_qrListe vos codes dynamiques avec identifiant, URL courte, destination, étiquette et statut.
delete_dynamic_qrSupprime définitivement un code dynamique. Son lien court cesse de fonctionner.
bulk_create_dynamic_qrCrée jusqu'à 200 codes dynamiques en une fois.
list_foldersListe vos dossiers.
create_folderCrée un dossier pour organiser les codes.
delete_folderSupprime un dossier. Ses codes sont désarchivés, non supprimés.
list_themesListe les thèmes de style enregistrés. Appliquez-en un en transmettant son identifiant ou son nom comme theme.
create_themeEnregistre un thème de style réutilisable (couleurs, styles de points et de coins).
delete_themeSupprime un thème enregistré. Les codes déjà stylés avec celui-ci conservent leur apparence.
get_subdomainAffiche le sous-domaine de marque du compte et s'il est suspendu.
set_subdomainRevendique ou modifie le sous-domaine de marque afin que les codes se résolvent également sur {name}.oqr.to. Pro uniquement.
clear_subdomainLibè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, /dots et /classy. Lisez-en une et transmettez son style à create_theme.
  • Invites : create_tracked_qr, bulk_qr_for_print, brand_a_qr et qr_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ôteLienNotes
DigitalOcean App PlatformBouton 1 clicLit .do/deploy.template.yaml ; instance la plus petite, port 3000
RenderBouton blueprintLit render.yaml ; suppose une instance payante (le niveau gratuit de Render se met en veille)
KoyebDéploie depuis l'imageN'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.