OpenQR
oficialGenera 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_qrydelete_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_folderycreate_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.
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 connpx -y @open-qr/mcpyOPENQR_API_KEYconfigurados (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.
| Herramienta | Qué hace |
|---|---|
generate_qr | Genera un código QR estático a partir de cualquier texto o URL. Devuelve una imagen PNG o marcado SVG. |
create_dynamic_qr | Crea un código QR editable cuyo destino puedes cambiar más tarde sin reimprimir. |
update_dynamic_qr | Cambia el destino, la etiqueta, el enlace corto personalizado, las etiquetas o la carpeta de un código dinámico. |
get_dynamic_qr | Obtén los detalles completos de un código: destino, enlace corto, etiqueta, tipo, etiquetas, carpeta, estado, fecha de creación. |
get_scans | Estadísticas de escaneo de un código dinámico. |
list_dynamic_qr | Lista tus códigos dinámicos con id, URL corta, destino, etiqueta y estado. |
delete_dynamic_qr | Elimina permanentemente un código dinámico. Su enlace corto deja de funcionar. |
bulk_create_dynamic_qr | Crea hasta 200 códigos dinámicos a la vez. |
list_folders | Lista tus carpetas. |
create_folder | Crea una carpeta para organizar códigos. |
delete_folder | Elimina una carpeta. Sus códigos se desarchivan, no se eliminan. |
list_themes | Lista los temas de estilo guardados. Aplica uno pasando su id o nombre como theme. |
create_theme | Guarda un tema de estilo reutilizable (colores, estilos de puntos y esquinas). |
delete_theme | Elimina un tema guardado. Los códigos ya estilizados con él conservan su aspecto. |
get_subdomain | Muestra el subdominio de marca en la cuenta y si está suspendido. |
set_subdomain | Reclama o cambia el subdominio de marca para que los códigos también se resuelvan en {name}.oqr.to. Solo Pro. |
clear_subdomain | Libera 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,/dotsy/classy. Lee uno y pasa su estilo acreate_theme. - Indicaciones son
create_tracked_qr,bulk_qr_for_print,brand_a_qryqr_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
| Host | Enlace | Notas |
|---|---|---|
| Plataforma de aplicaciones DigitalOcean | Botón de 1 clic | Lee .do/deploy.template.yaml; instancia más pequeña, puerto 3000 |
| Render | Botón de blueprint | Lee render.yaml; asume una instancia de pago (el nivel gratuito de Render se suspende) |
| Koyeb | Se despliega desde la imagen | Cualquier 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.