OpenQR
oficialGere códigos QR e gerencie códigos QR dinâmicos (editáveis) com análises de escaneamento por meio de um servidor MCP hospedado (17 ferramentas) e uma API REST gratuita.
O que você pode fazer com OpenQR MCP?
- Gerar QR codes estáticos — Solicite um QR code a partir de qualquer texto ou URL; obtenha saída em PNG ou SVG via
generate_qr. - Criar e gerenciar QR codes dinâmicos — Crie códigos editáveis, altere destinos, liste ou exclua-os com
create_dynamic_qr,update_dynamic_qredelete_dynamic_qr. - Acompanhar análises de escaneamento — Solicite estatísticas de escaneamento de um código dinâmico para ver o desempenho via
get_scans. - Organizar com pastas e temas — Crie pastas e predefinições de estilo reutilizáveis para manter os códigos organizados e com a sua marca usando
create_folderecreate_theme. - Geração em massa para campanhas impressas — Crie até 200 códigos dinâmicos de uma vez para projetos de grande escala com
bulk_create_dynamic_qr.
Documentação
OpenQR
Gerador de QR code gratuito, open-source e sem marca d'água. Funciona inteiramente no seu navegador — sem rastreamento, sem cadastro, sem limites.
A maioria dos geradores de QR code online atrai você com "grátis" e depois adiciona marca d'água, limita o tamanho do download, esconde a exportação vetorial atrás de um paywall ou roteia seu código pelos servidores deles para que ele morra quando você parar de pagar. Um QR code é apenas um padrão aberto (ISO/IEC 18004) que não custa nada para gerar. O OpenQR mantém isso assim.
Este repositório é a ferramenta geradora básica — a implementação open-source de referência. Ele é propositalmente pequeno e fácil de fazer fork.
Se o OpenQR for útil para você, uma estrela no repositório ajuda outras pessoas a encontrá-lo. Esse é o único pedido.
Versão hospedada: API gratuita, servidor MCP e códigos editáveis
Tudo neste repositório é e continuará gratuito, sem marca d'água e sem expiração. A versão hospedada em openqr.uk adiciona uma camada de conta opcional para quem deseja códigos editáveis e automação:
- QR codes dinâmicos / editáveis com análise de escaneamento. Altere o destino depois de imprimir. 1 grátis em uma conta gratuita (7 dias de escaneamentos por país); 25 códigos editáveis no Pro por £9/mês ou £90/ano, que também desbloqueia uma janela de análise de escaneamento de 90 dias, além de detalhes de cidade e região, detalhamento por dispositivo e referenciador com exportação CSV, um subdomínio personalizado e códigos protegidos por senha. Assinantes existentes mantêm seu plano e preço atuais.
- API REST gratuita. Gere códigos e gerencie códigos dinâmicos programaticamente. Especificação OpenAPI em
/openapi.json; documentação interativa em openqr.uk/api. - Servidor MCP hospedado em
https://openqr.uk/mcp(HTTP Streamable). Gere e gerencie QR codes diretamente do Claude, Cursor ou qualquer cliente MCP. Listado no Registro oficial MCP. Clientes com capacidade remota conectam-se a essa URL diretamente; clientes somente stdio podem fazer a ponte comnpx -y @open-qr/mcpeOPENQR_API_KEYdefinidos (detalhes).
O gerador estático neste repositório nunca chama nada disso. Ele permanece 100% no lado do cliente (veja Privacidade), e nada disso é necessário para usar ou auto-hospedar o gerador.
Conectando um cliente MCP
Obtenha uma chave gratuita em openqr.uk/api e aponte seu cliente para o servidor com a chave como cabeçalho de autenticação.
Claude Code:
claude mcp add --transport http openqr https://openqr.uk/mcp \
--header "Authorization: Bearer oqr_YOUR_KEY"
Cursor (~/.cursor/mcp.json) e qualquer outro cliente que fale HTTP Streamable:
{
"mcpServers": {
"openqr": {
"url": "https://openqr.uk/mcp",
"headers": {
"Authorization": "Bearer oqr_YOUR_KEY"
}
}
}
}
Ferramentas
O servidor MCP hospedado em https://openqr.uk/mcp expõe estas ferramentas (execute tools/list para o conjunto atual). Toda ferramenta exige uma chave de API gratuita — crie uma em openqr.uk/api e passe-a como Authorization: Bearer oqr_... na conexão MCP.
| Ferramenta | O que faz |
|---|---|
generate_qr | Gera um QR code estático a partir de qualquer texto ou URL. Retorna uma imagem PNG ou marcação SVG. |
create_dynamic_qr | Cria um QR code editável cujo destino você pode alterar depois sem reimprimir. |
update_dynamic_qr | Altera o destino, o rótulo, o link curto personalizado, as tags ou a pasta de um código dinâmico. |
get_dynamic_qr | Obtém os detalhes completos de um código: destino, link curto, rótulo, tipo, tags, pasta, status, data de criação. |
get_scans | Estatísticas de escaneamento de um código dinâmico. |
list_dynamic_qr | Lista seus códigos dinâmicos com id, URL curta, destino, rótulo e status. |
delete_dynamic_qr | Exclui permanentemente um código dinâmico. O link curto dele para de funcionar. |
bulk_create_dynamic_qr | Cria até 200 códigos dinâmicos de uma vez. |
list_folders | Lista suas pastas. |
create_folder | Cria uma pasta para organizar códigos. |
delete_folder | Exclui uma pasta. Os códigos dela são desarquivados, não excluídos. |
list_themes | Lista temas de estilo salvos. Aplique um passando seu id ou nome como theme. |
create_theme | Salva um tema de estilo reutilizável (cores, estilos de pontos e cantos). |
delete_theme | Exclui um tema salvo. Códigos já estilizados com ele mantêm sua aparência. |
get_subdomain | Mostra o subdomínio personalizado na conta e se ele está suspenso. |
set_subdomain | Reivindica ou altera o subdomínio personalizado para que os códigos também sejam resolvidos em {name}.oqr.to. Somente Pro. |
clear_subdomain | Libera o subdomínio personalizado. Os códigos permanecem ativos no link curto simples. |
Ele também expõe 5 recursos e 4 prompts:
- Recursos são predefinições de estilo de QR code integradas em
openqr://preset/classic,/teal,/high-contrast,/dotse/classy. Leia um e passe seu estilo paracreate_theme. - Prompts são
create_tracked_qr,bulk_qr_for_print,brand_a_qreqr_scan_report.
Recursos
- Sem marcas d'água, sem limites de tamanho, sem cadastro — todos os recursos são gratuitos
- Privado por design — os códigos são gerados inteiramente no seu navegador; o conteúdo nunca toca um servidor
- Exporte para qualquer lugar — PNG / WebP até 4096px, além de SVG e PDF vetoriais reais
- Estilização completa — cores, gradientes, estilos de pontos e cantos, incorporação de logotipo, molduras "Scan me"
- Entrada inteligente — cole um link ou texto e o tipo é detectado automaticamente
- Payloads ricos — URL, texto, e-mail, telefone, SMS, WhatsApp, Wi-Fi e um seletor de localização baseado em mapa
- Cópia com um clique, links de design compartilháveis, claro/escuro, responsivo, acessível por teclado
Início rápido
pnpm install
pnpm dev # http://localhost:3011
Build e auto-hospedagem
pnpm build
pnpm start # serves on :3011 (standalone output)
É um aplicativo Next.js padrão — hospede-o em qualquer lugar (um VPS, um Raspberry Pi, Cloudflare, atrás de qualquer proxy reverso). Ele não precisa de variáveis de ambiente, banco de dados ou segredos para funcionar. Os scripts de dev/start acima usam a porta 3011; a imagem Docker abaixo serve na 3000. A única configuração em ambos os casos é PORT.
Implantação (imagem Docker)
Uma imagem multi-arquitetura (linux/amd64, linux/arm64) é publicada no GHCR a cada tag de lançamento:
docker run -d --name openqr --restart unless-stopped -p 3000:3000 ghcr.io/open-qr/openqr:latest
Ou com docker-compose.yml:
docker compose up -d # update later: docker compose pull && docker compose up -d
Fixe uma tag de versão em produção (ghcr.io/open-qr/openqr:1.0.1); latest move-se a cada lançamento. O contêiner é um servidor standalone não-root pré-compilado com healthcheck e carrega LICENSE e NOTICE dentro da imagem.
Implantações com um clique
| Host | Link | Notas |
|---|---|---|
| DigitalOcean App Platform | Botão de 1 clique | Lê .do/deploy.template.yaml; instância menor, porta 3000 |
| Render | Botão Blueprint | Lê render.yaml; assume uma instância paga (o nível gratuito do Render dorme) |
| Koyeb | Implanta a partir da imagem | Qualquer tag pública ghcr.io/open-qr/openqr, sem build de repositório |
Implantar por qualquer um desses não adiciona termos além do AGPL-3.0: a fonte é este repositório, e a imagem carrega a licença e os avisos de terceiros.
Incorporação
O componente <Generator/> é autossuficiente e configurável:
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} />} />
A ferramenta envia zero análise. Se você quiser eventos de UI anônimos (por exemplo, qual formato de exportação foi usado — nunca o conteúdo do QR), injete um manipulador:
import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));
Privacidade
A geração de QR acontece 100% no seu navegador. As únicas chamadas externas opcionais estão na ferramenta Localização: blocos de mapa da CARTO e consultas de endereço via Nominatim do OpenStreetMap. Nada mais sai do dispositivo.
Pilha tecnológica
Next.js 16 (App Router) · React 19 · TypeScript (estrito) · Tailwind v4 ·
qr-code-styling · Leaflet · pnpm.
Contribuindo
Veja CONTRIBUTING.md. Mantenha simples, acessível, no lado do cliente e gratuito — nenhum recurso deve exigir pagamento para remover uma marca d'água ou desbloquear um formato.
Licença
AGPL-3.0 © 2026 Sam Moreton.
Você é livre para usar, estudar, modificar, auto-hospedar e redistribuir o OpenQR sob a AGPL-3.0. Se você executar uma versão modificada como serviço de rede, a AGPL exige que você disponibilize seu código-fonte sob a mesma licença. Se isso não atender ao seu caso de uso, uma licença comercial está disponível — veja NOTICE.