OpenQR

oficial

Genera códigos QR y gestiona códigos QR dinámicos (editables) con análisis de escaneo a través de un servidor MCP alojado (17 herramientas) y una API REST gratuita.

¿Qué puedes hacer con OpenQR MCP?

  • Generar códigos QR estáticos — Solicita un código QR a partir de cualquier texto o URL; obtén salida PNG o SVG mediante generate_qr.
  • Crear y gestionar códigos QR dinámicos — Construye códigos editables, cambia destinos, lista o elimínalos con create_dynamic_qr, update_dynamic_qr y delete_dynamic_qr.
  • Rastrear análisis de escaneos — Solicita estadísticas de escaneo de un código dinámico para ver su rendimiento mediante get_scans.
  • Organizar con carpetas y temas — Crea carpetas y plantillas de estilo reutilizables para mantener los códigos ordenados y con marca usando create_folder y create_theme.
  • Generación masiva para campañas impresas — Crea hasta 200 códigos dinámicos a la vez para proyectos a gran escala con bulk_create_dynamic_qr.

Documentación

OpenQR

Generador de códigos QR gratuito, de código abierto y sin marcas de agua. Funciona completamente en tu navegador: sin seguimiento, sin registro, sin límites.

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

La mayoría de los generadores de códigos QR en línea te atraen con "gratis" y luego añaden una marca de agua, limitan el tamaño de descarga, ocultan la exportación vectorial tras un muro de pago, o enrutan tu código a través de sus servidores para que deje de funcionar cuando dejas de pagar. Un código QR es solo un estándar abierto (ISO/IEC 18004) que no cuesta nada generar. OpenQR lo mantiene así.

Este repositorio es la herramienta generadora básica: la implementación de referencia de código abierto. Es deliberadamente pequeña y fácil de bifurcar.

Si OpenQR te resulta útil, una estrella en el repositorio ayuda a que otras personas lo encuentren. Esa es toda la petición.

Versión alojada: API gratuita, servidor MCP y códigos editables

Todo lo que hay en este repositorio es y seguirá siendo gratuito, sin marca de agua y sin caducidad. La versión alojada en openqr.uk añade una capa de cuenta opcional para quienes quieran códigos editables y automatización:

  • Códigos QR dinámicos / editables con análisis de escaneos. Cambia el destino después de imprimirlo. 1 gratis con una cuenta gratuita (7 días de escaneos por país); 25 códigos editables con Pro a £9/mes o £90/año, que también desbloquea una ventana de análisis de escaneos de 90 días, detalles de ciudad y región, desglose por dispositivo y referente con exportación CSV, un subdominio de marca y códigos protegidos por contraseña. Los suscriptores existentes conservan su plan y precio actuales.
  • API REST gratuita. Genera códigos y gestiona códigos dinámicos mediante programación. Especificación OpenAPI en /openapi.json; documentación interactiva en openqr.uk/api.
  • Servidor MCP alojado en https://openqr.uk/mcp (HTTP Streamable). Genera y gestiona códigos QR directamente desde Claude, Cursor o cualquier cliente MCP. Listado en el Registro oficial de MCP. Los clientes con capacidad remota se conectan a esa URL directamente; los clientes solo-stdio pueden conectarse mediante un puente con npx -y @open-qr/mcp y OPENQR_API_KEY configurados (detalles).

El generador estático de este repositorio nunca utiliza nada de eso. Se mantiene 100% en el lado del cliente (consulta Privacidad), y nada de ello es necesario para usar o autoalojar el generador.

Conexión de un cliente MCP

Obtén una clave gratuita en openqr.uk/api y luego apunta tu cliente al servidor con la clave como encabezado de autenticación.

Claude Code:

claude mcp add --transport http openqr https://openqr.uk/mcp \
  --header "Authorization: Bearer oqr_YOUR_KEY"

Cursor (~/.cursor/mcp.json) y cualquier otro cliente que hable HTTP Streamable:

{
  "mcpServers": {
    "openqr": {
      "url": "https://openqr.uk/mcp",
      "headers": {
        "Authorization": "Bearer oqr_YOUR_KEY"
      }
    }
  }
}

Herramientas

El servidor MCP alojado en https://openqr.uk/mcp expone estas herramientas (ejecuta tools/list para ver el conjunto en vivo). Cada herramienta requiere una clave de API gratuita: crea una en openqr.uk/api y pásala como Authorization: Bearer oqr_... en la conexión MCP.

HerramientaQué hace
generate_qrGenera un código QR estático a partir de cualquier texto o URL. Devuelve una imagen PNG o marcado SVG.
create_dynamic_qrCrea un código QR editable cuyo destino puedes cambiar más tarde sin reimprimir.
update_dynamic_qrCambia el destino, la etiqueta, el enlace corto personalizado, las etiquetas o la carpeta de un código dinámico.
get_dynamic_qrObtén los detalles completos de un código: destino, enlace corto, etiqueta, tipo, etiquetas, carpeta, estado, fecha de creación.
get_scansEstadísticas de escaneo de un código dinámico.
list_dynamic_qrLista tus códigos dinámicos con id, URL corta, destino, etiqueta y estado.
delete_dynamic_qrElimina permanentemente un código dinámico. Su enlace corto deja de funcionar.
bulk_create_dynamic_qrCrea hasta 200 códigos dinámicos a la vez.
list_foldersLista tus carpetas.
create_folderCrea una carpeta para organizar códigos.
delete_folderElimina una carpeta. Sus códigos se desarchivan, no se eliminan.
list_themesLista los temas de estilo guardados. Aplica uno pasando su id o nombre como theme.
create_themeGuarda un tema de estilo reutilizable (colores, estilos de puntos y esquinas).
delete_themeElimina un tema guardado. Los códigos ya estilizados con él conservan su aspecto.
get_subdomainMuestra el subdominio de marca en la cuenta y si está suspendido.
set_subdomainReclama o cambia el subdominio de marca para que los códigos también se resuelvan en {name}.oqr.to. Solo Pro.
clear_subdomainLibera el subdominio de marca. Los códigos siguen activos en el enlace corto normal.

También expone 5 recursos y 4 indicaciones:

  • Recursos son ajustes predefinidos de estilo QR integrados en openqr://preset/classic, /teal, /high-contrast, /dots y /classy. Lee uno y pasa su estilo a create_theme.
  • Indicaciones son create_tracked_qr, bulk_qr_for_print, brand_a_qr y qr_scan_report.

Características

  • Sin marcas de agua, sin límites de tamaño, sin registro: cada función es gratuita
  • Privado por diseño: los códigos se generan completamente en tu navegador; el contenido nunca toca un servidor
  • Exporta a cualquier lugar: PNG / WebP hasta 4096px, además de SVG y PDF vectoriales reales
  • Estilizado completo: colores, degradados, estilos de puntos y esquinas, inserción de logotipos, marcos "Escanéame"
  • Entrada inteligente: pega un enlace o texto y el tipo se detecta automáticamente
  • Cargas útiles enriquecidas: URL, texto, correo electrónico, teléfono, SMS, WhatsApp, Wi-Fi y un selector de ubicación basado en mapas
  • Copia con un clic, enlaces de diseño compartibles, claro/oscuro, adaptable, accesible por teclado

Inicio rápido

pnpm install
pnpm dev        # http://localhost:3011

Compilación y autoalojamiento

pnpm build
pnpm start      # serves on :3011 (standalone output)

Es una aplicación estándar de Next.js: alójala en cualquier lugar (un VPS, una Raspberry Pi, Cloudflare, detrás de cualquier proxy inverso). No necesita variables de entorno, base de datos ni secretos para funcionar. Los scripts de desarrollo/inicio anteriores usan el puerto 3011; la imagen de Docker siguiente sirve en el 3000. La única configuración en ambos casos es PORT.

Despliegue (imagen Docker)

Una imagen multiarquitectura (linux/amd64, linux/arm64) se publica en GHCR en cada etiqueta de versión:

docker run -d --name openqr --restart unless-stopped -p 3000:3000 ghcr.io/open-qr/openqr:latest

O con docker-compose.yml:

docker compose up -d          # update later: docker compose pull && docker compose up -d

Fija una etiqueta de versión en producción (ghcr.io/open-qr/openqr:1.0.1); latest se mueve con cada versión. El contenedor es un servidor independiente precompilado, no root, con comprobación de salud, e incluye LICENSE y NOTICE dentro de la imagen.

Despliegues con un clic

HostEnlaceNotas
Plataforma de aplicaciones DigitalOceanBotón de 1 clicLee .do/deploy.template.yaml; instancia más pequeña, puerto 3000
RenderBotón de blueprintLee render.yaml; asume una instancia de pago (el nivel gratuito de Render se suspende)
KoyebSe despliega desde la imagenCualquier etiqueta pública de ghcr.io/open-qr/openqr, sin compilación de repositorio

Desplegar a través de cualquiera de estos no añade términos más allá de AGPL-3.0: la fuente es este repositorio, y la imagen incluye la licencia y los avisos de terceros.

Inserción

El componente <Generator/> es autónomo y 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} />} />

La herramienta incluye cero análisis. Si quieres eventos de interfaz anónimos (por ejemplo, qué formato de exportación se usó, nunca el contenido del QR), inyecta un controlador:

import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));

Privacidad

La generación de códigos QR ocurre 100% en tu navegador. Las únicas llamadas salientes opcionales están en la herramienta Ubicación: mosaicos de mapa de CARTO y búsquedas de direcciones mediante Nominatim de OpenStreetMap. Nada más sale del dispositivo.

Pila tecnológica

Next.js 16 (App Router) · React 19 · TypeScript (estricto) · Tailwind v4 · qr-code-styling · Leaflet · pnpm.

Contribuciones

Consulta CONTRIBUTING.md. Mantenlo simple, accesible, en el lado del cliente y gratuito: ninguna función debería requerir pago para eliminar una marca de agua o desbloquear un formato.

Licencia

AGPL-3.0 © 2026 Sam Moreton.

Eres libre de usar, estudiar, modificar, autoalojar y redistribuir OpenQR bajo AGPL-3.0. Si ejecutas una versión modificada como servicio de red, AGPL requiere que pongas tu código fuente a disposición bajo la misma licencia. Si eso no se adapta a tu caso de uso, hay disponible una licencia comercial: consulta NOTICE.