QRSalt
Crie, redirecione e acompanhe códigos QR e links curtos, e leia imagens QR, a partir do seu assistente de IA. Servidor remoto em https://app.qrsalt.com/api/mcp com login via OAuth; nada para instalar.
Servidor MCP hospedado
npx add-mcp 'https://app.qrsalt.com/api/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Um servidor MCP de QR code para o seu assistente
Você cola um bloco no Claude Code, Cursor ou VS Code, uma única vez. Depois disso, não há nada para escrever: seus códigos estão na janela de chat, e você os pede da mesma forma que pediria a um colega. A chave que você entrega, ou as caixas que você marca ao entrar, definem o limite do que o assistente pode acessar.
Conecte-o → Veja todas as 13 ferramentas →
Exemplo prático — não é uma sessão ao vivo
Peça a ele
Crie um QR code para o dia de portas abertas de amanhã e me mostre a imagem.
Nesta página
O que você pode pedir a ele
A conversa acima é uma demonstração pré-escrita, e clicar nela não envia nada para lugar nenhum. Aqui estão mais pedidos que as pessoas digitam, e o que o assistente faz para cada um.
- “Quais dos meus códigos ainda apontam para o domínio antigo?” Ele pesquisa os destinos dos seus códigos e responde com os nomes que você deu a esses códigos.
- “Encurte isso e chame de Flyer de primavera.” Ele cria um link curto chamado Flyer de primavera. O link conta seus cliques e pode ser redirecionado depois, porque é um código dinâmico sem a imagem.
- “Alguém me enviou este QR. O que tem nele?” Adicione a imagem ao chat e ele lê o texto no código. Você envia o arquivo de imagem em si; o assistente não consegue buscar uma imagem de um endereço web.
- “Pause o código do banner da feira até março.” Ele pausa o código. Quem o escanear verá uma página dizendo que o código está indisponível, até você pedir para reativá-lo.
- “Para onde aponta o código do suporte de mesa agora?” Ele mostra o que seu espaço de trabalho registra sobre esse código: seu destino, seu link curto, seus escaneamentos e quando foi escaneado pela última vez.
Conectando-o
Escolha Claude Code, Cursor ou VS Code e você recebe a única coisa para colar. Copiamos cada bloco da documentação de MCP do respectivo fornecedor e colocamos a data em que os lemos abaixo. O app Claude, e qualquer cliente que faça login, precisa apenas da URL do servidor. Qualquer outro cliente precisa de dois valores: a URL do servidor e o cabeçalho.
Um comando no terminal, em qualquer projeto em que você queira que ele esteja disponível.
claude mcp add --transport http qrsalt https://app.qrsalt.com/api/mcp --header "Authorization: Bearer qr_live_YOUR_KEY"
Verificado em a documentação do Claude Code sobre MCP, lida em 18 de setembro de 2026.
Troque qr_live_YOUR_KEY por uma chave que você cria em Dashboard → API, uma que o assistente não compartilhe com um script ou qualquer outra coisa. Copie-a antes de fechar o diálogo, porque só a mostramos uma vez. O VS Code funciona de forma diferente: o editor pede a chave e a armazena, então .vscode/mcp.json nunca a contém e você pode fazer commit do arquivo.
Com uma chave, não há tela de login. Quem tem a chave tem o acesso, então, para cortar o acesso de um assistente, você revoga a chave dele.
Entrar funciona sem chave. O cliente abre uma página QRSalt onde você escolhe o espaço de trabalho e marca o que o assistente pode fazer; excluir nunca é marcado para você. Apenas um proprietário ou administrador pode conectar um assistente dessa forma, e ele age como a pessoa que o conectou. Ele para de funcionar quando você o revoga em Dashboard → API → Aplicativos conectados, ou quando essa pessoa sai do espaço de trabalho ou deixa de ser administradora. O diálogo de conector do app Claude conecta dessa forma: deixe o ID do cliente OAuth e o segredo vazios. Verificado em a central de ajuda do Claude sobre conectores personalizados, lida em 18 de setembro de 2026.
As ferramentas, e o que cada uma precisa
Aqui estão todas as 13, na ordem em que tools/list as retorna. Cada descrição abaixo é o texto exato que o servidor envia ao seu assistente, escrito para um modelo ler. A lista é reduzida ao que sua chave tem permissão de chamar, então o assistente não vai se oferecer para fazer algo e depois ser recusado no meio do caminho.
Imagens — precisa de Renderizar imagens
Em todos os planos, incluindo o gratuito. Nenhuma ferramenta salva nada ou lê sua conta.
- render_qr_code Transforme texto ou um link em uma imagem QR. Nada é salvo e nada é lido: este é o renderizador, não a conta. O código não pode ser editado ou rastreado depois — create_code cria um que pode.
- read_qr_image Leia o texto de uma imagem QR. Envie o arquivo PNG, JPEG ou WebP em si, codificado em Base64, em "image". Não há como dar a esta ferramenta uma URL para buscar. Nada é armazenado.
Lendo a conta — precisa de Ler
Seus códigos e pastas e com que frequência cada código foi escaneado. Starter ou superior.
- list_codes Liste os QR codes e links curtos neste espaço de trabalho, do mais recente ao mais antigo. Retorna o id, nome, destino, link curto e contagem de escaneamentos de cada código. Use o id com as outras ferramentas.
- get_code Tudo o que este espaço de trabalho registra sobre um QR code ou link curto.
- list_folders As pastas neste espaço de trabalho, com quantos códigos ativos há em cada uma. O id é o que create_code recebe como folderId.
- get_scan_analytics Totais de escaneamento e uma série diária, para um código ou para todo o espaço de trabalho. Lê os números diários consolidados, que são o que esta conta mantém; eventos individuais de escaneamento não são retidos. O intervalo é encurtado para o que o plano retém, e a resposta diz quando isso aconteceu. Para descobrir quais códigos são mais escaneados, peça topCodes aqui em vez de chamar isso uma vez por código; "series": false deixa os números diários de fora quando apenas os totais são desejados.
- get_code_image A imagem de um código salvo, com as cores, formas e logotipo com que foi salvo. PNG volta como imagem, SVG como marcação. Outros formatos e exportações maiores estão na API REST.
Alterando coisas — precisa de Criar e alterar
Uma nova chave já vem com esta caixa marcada. Desmarque-a se quiser um assistente que possa olhar, mas não tocar. Starter ou superior.
- create_code Crie um novo QR code. Ele contém um link por padrão; "type" também cria um código que carrega texto simples, abre um e-mail, disca um número ou inicia uma mensagem de texto. Um código dinâmico pode ser redirecionado depois e conta seus escaneamentos — esse é o padrão para um link; os outros tipos são carregados dentro do padrão e são estáticos por padrão, o que nunca pode ser alterado. Redes Wi-Fi, cartões de contato, eventos e pagamentos têm vários campos cada e são feitos no dashboard ou pela API REST, não aqui. O destino é verificado e o código conta contra a cota do plano.
- update_code Altere o link que um código dinâmico abre, renomeie-o, arquive-o, adicione tags, ou pause e retome-o. O código impresso e seu link curto permanecem exatamente como estão; apenas o destino por trás deles muda. O destino anterior é mantido no histórico do código e pode ser restaurado pelo dashboard. Um código estático não pode ser redirecionado. Tags substituem as tags do código em vez de adicionar a elas, e um código pausado envia escaneamentos para uma página dizendo que está indisponível.
- create_short_link Encurte um link. O resultado é um código dinâmico, então pode ser redirecionado depois e conta seus cliques; ele também tem uma imagem QR, que get_code_image retornará.
- set_gs1_link
Dê a um código dinâmico existente um endereço GS1 Digital Link, para que uma embalagem impressa com
/01/09506000134352\resolva através de nós e possa ser redirecionada depois.ai\é a chave primária GS1 — 01 para um GTIN, 00 para um SSCC, 414 para um GLN, e as outras que a GS1 define — evalue\é o número em si; um GTIN é verificado contra seu dígito verificador e a recusa diz qual dígito era esperado.batch\eserial\são opcionais e se aplicam apenas a um GTIN ou ITIP. Chamar isso novamente move o código para um endereço diferente, o que faz o antigo parar de resolver. Apenas planos pagos: um código GS1 estático, que carrega o endereço dentro do padrão e não resolve perto de nós, não precisa de nada disso e é gratuito em todos os planos.
Excluindo — precisa de Excluir
Uma nova chave vem com esta caixa desmarcada, e deixaríamos assim. Exclua um código e ele para de redirecionar, e o final do link curto nunca vai para mais ninguém.
- remove_gs1_link Remova o endereço GS1 Digital Link de um código. O código, seu link curto, seus escaneamentos e seu histórico permanecem; o que para de funcionar é o endereço impresso na embalagem, imediatamente e para cada cópia já existente, e nada aqui pode alcançar essas embalagens para avisá-las. Envie o nome do código, ou o final do link curto, como "confirm"; get_code retorna ambos. Quando ninguém disse sobre qual embalagem se trata, pergunte primeiro.
- delete_code Exclua um QR code ou link curto salvo, permanentemente. O que isso custa depende do tipo, e a resposta diz qual foi. Excluir um código DINÂMICO faz o código impresso parar de funcionar no momento em que isso retorna: o escaneamento passa por nós, então chega a uma página de não encontrado, e seu link curto nunca é dado a mais ninguém. Excluir um código ESTÁTICO remove nosso registro dele — o nome, o design e o histórico — e nada mais: o destino está dentro do padrão impresso, então cada cópia já existente continua funcionando e isso não pode revogá-lo. De qualquer forma, o registro desaparece para sempre. Links curtos são códigos dinâmicos, então isso também os exclui. Requer que "confirm" seja o nome exato do código, ou seu "slug" — ambos estão no que get_code e list_codes retornam. Se a pessoa que pergunta não nomeou qual código quer dizer, pergunte antes de chamar isso. Um código por chamada.
Com o que seu cliente está falando
Leia isto se seu cliente conecta, mas não lista ferramentas.
Cada mensagem que seu cliente envia é uma solicitação completa, e nossa resposta a encerra. O servidor não mantém sessão nem conexão aberta em segundo plano, então não há nada para reiniciar quando seu laptop dorme. Se você sair do editor no meio de uma solicitação, a próxima coisa que digitar funciona normalmente.
Quais ferramentas você vê depende da chave ou do login na solicitação. A lista não é fixa: uma chave que só pode desenhar imagens recebe as 2 ferramentas de imagem e nenhuma outra. Se você marcar outra caixa na chave ou subir de plano, as outras ferramentas aparecem em cerca de um minuto, porque os clientes são instruídos a manter a lista por no máximo um minuto. Um cliente em uma revisão mais antiga as mostra na próxima conexão.
Clientes mais antigos são respondidos em sua própria revisão. A revisão 2026-07-28 não tem handshake de abertura, mas as anteriores começam com uma chamada chamada initialize. O servidor responde a essa chamada na revisão que o cliente pede, de 2024-11-05 a 2025-06-18, então um cliente que não acompanhou 2026-07-28 ainda conecta.
Sem uma chave ou login válidos, o servidor não responde nada, nem mesmo a lista de ferramentas. Sua recusa nomeia o endereço onde um cliente descobre como entrar. Se seu cliente mostra uma lista vazia onde deveria haver ferramentas, verifique a chave que ele está enviando. A única exceção é um espaço de trabalho suspenso: ele não recebe ferramentas e recebe uma frase dizendo que o espaço de trabalho está suspenso, para que um problema de conta não pareça um conector que não inicia.
O que ele não fará
Um assistente só pode fazer o que sua chave permite, e as ferramentas podem fazer menos do que a API por trás delas.
Excluir está atrás da caixa Excluir na chave, que não está marcada para você. Deixe-a em paz e nenhum assistente com essa chave pode excluir nada. Mesmo quando marcada, a chamada tem que incluir o nome do código ou o final do link curto, então um vago “exclua isso” não exclui nada.
Nenhuma ferramenta abre um endereço web que você dá. Ler uma imagem QR recebe o arquivo em si, codificado em Base64, em qualquer nível de permissão.
Sem design, sem domínios, sem cobrança. Cores, formas e logotipos, regras de roteamento, domínios personalizados, finais de links curtos, endpoints de webhook, sua equipe e sua assinatura estão todos fora deste servidor.
Nada nomeia um espaço de trabalho. Cada chamada roda contra o espaço de trabalho ao qual a chave pertence, ou o escolhido ao entrar. Nenhuma ferramenta tem um argumento que possa apontá-la para o espaço de trabalho de outra pessoa.
- Renderizar imagensmarcada por padrãoQR codes estáticos e códigos de barras como imagens. Nada é armazenado ou lido.
- Lermarcada por padrãoListe códigos, links, pastas, tags, QR Menus, QR Forms e suas respostas, e leia escaneamentos.
- Criar e alterarmarcada por padrãoCrie e altere códigos, links, pastas, domínios e endpoints de webhook.
- Excluirdesmarcada, a menos que você marqueExclua códigos, links, domínios e endpoints de webhook. Um código excluído não pode ser restaurado.
Última revisão em 18 de setembro de 2026, contra o produto como funciona hoje.
Quantos você recebe
Conectar não custa nada, e não há cobrança pelo conector em si. Seu plano decide quantas ferramentas seu cliente exibe. No Free, são 2 de 13: render_qr_code e read_qr_image. Com elas, você pode pedir um código em uma janela de chat e receber uma imagem de volta, ou fazer a leitura de um código que alguém enviou. Nada sobre a conta fica acessível, porque uma chave nesse plano carrega imagens renderizadas e nada mais.
As outras 11 funcionam com seu workspace: o que você criou, para onde cada uma aponta, com que frequência foi escaneada e as ferramentas que alteram qualquer uma dessas coisas. Elas vêm com o Starter, US$ 5 por mês, o mesmo plano que você pagaria para usar uma chave em um script. Se você já tem esse plano, dê ao assistente uma chave própria no mesmo workspace; não precisa pagar duas vezes. Os números de escaneamento vão até onde seu plano os mantém. Se você perguntar sobre um período mais longo, recebe o intervalo mais curto e uma nota dizendo que foi encurtado. Para tarefas que devem rodar sem ninguém pedir, como um código para cada novo pedido, os conectores n8n, Zapier e Make chamam a mesma API.
Perguntas sobre MCP, respondidas
O que é um servidor MCP, em um parágrafo?
O Model Context Protocol (MCP) é uma forma padrão de um assistente de IA usar um serviço no qual não foi treinado. O servidor publica uma lista de ferramentas, o assistente lê essa lista e, quando sua solicitação precisa de uma delas, o assistente a chama e mostra a resposta. Este servidor oferece ferramentas de QR code, então você pode criar, redirecionar e verificar códigos a partir de uma janela de chat.
Quais assistentes posso conectar?
Qualquer coisa que fale o protocolo via HTTP. A configuração para Claude Code, Cursor e VS Code está mostrada acima, cada uma retirada da documentação oficial do fornecedor e com data. O diálogo de conector do aplicativo Claude não tem campo para chave, então ele aceita apenas o endereço e faz login com QRSalt, assim como qualquer outro cliente que suporte login via MCP.
O assistente vê minha chave de API?
O cliente a guarda e a envia em cada chamada; o modelo não vê a chave como parte de uma conversa. Ela ainda fica em um arquivo ou em um painel de configurações na sua máquina, então trate-a como qualquer outra senha: crie uma chave apenas para o assistente. Quando parar de usar o assistente, revogue essa chave, e suas outras chaves continuam funcionando.
Uma página da web mandou meu assistente alterar um código. Ele consegue?
Somente se a chave que você deu a ele permitir essa alteração. Uma página da web pode conter texto escrito para dar ordens a um assistente. É por isso que as ferramentas aqui não buscam endereços da web, nenhuma delas toca em design, domínios, equipe ou cobrança, e cada ferramenta aceita menos argumentos do que a mesma solicitação via HTTP. Uma chave que só pode ler não pode ser usada para alterar nada.
Preciso de um plano pago para isso?
Não para conectar. Um workspace Free recebe 2 das 13 ferramentas, o que é suficiente para pedir uma imagem e ter uma lida para você. As outras 11, as que trabalham com seu workspace, vêm com o Starter, US$ 5 por mês.
Funciona com um cliente criado para uma revisão mais antiga do protocolo?
Sim, se o cliente conectar via HTTP. Clientes criados antes de 2026-07-28 abrem com uma chamada chamada initialize, e o servidor responde na revisão que o cliente pedir: 2025-06-18, 2025-03-26 ou 2024-11-05. Um cliente que pedir qualquer outra revisão recebe a 2025-06-18. O endereço, a chave e as ferramentas são os mesmos em todas as revisões.
Já tenho uma chave em um script. O assistente pode usar essa?
Funcionaria, mas vale a pena criar uma segunda chave. Você revoga uma chave inteira de uma vez, então, se um trabalho noturno e uma janela de chat compartilham uma chave, você não consegue cortar só a janela de chat. Crie uma chave para o assistente e marque apenas o que ele precisa. Assim, você pode revogá-la com um clique e nada mais para de funcionar.
Planos por trás do conector
O conector funciona em todos os planos pagos, a partir de US$ 5 por mês no Starter, e cada chamada de ferramenta conta como uma solicitação: 500 solicitações de API por mês no Starter, 5.000 no Pro e 100.000 no Business, um teto de uso justo. No Free, o conector não lista ferramentas e informa qual plano ele precisa.
Free
Free
Códigos estáticos ilimitados. Três editáveis que nunca expiram.
- QR codes estáticos ilimitados, para sempre
- 3 itens editáveis no total — QR codes dinâmicos, QR Menus e QR Forms compartilham esse limite
- Códigos dinâmicos nunca expiram, e cada um vem com um link curto
- Links curtos sozinhos, sem necessidade de QR code
3códigos dinâmicos
Starter
Recomendado
US$ 5/mês
Para um negócio com códigos no mundo real.
- 5 QR Menus
- QR Forms
- GS1 Digital Links que hospedamos, para que uma embalagem impressa possa ser redirecionada
- Análises e rastreamento avançados
100códigos dinâmicos
Pro
US$ 15/mês
Para agências e equipes que operam códigos em escala.
- 50 QR Menus
- Histórico de análises ilimitado
- 10 domínios personalizados
- 5.000 solicitações de API por mês
600códigos dinâmicos
Business
US$ 39/mês
Para organizações que operam códigos em várias marcas.
- 400 QR Menus
- 50 domínios personalizados
- Até 25 membros de equipe e gerenciamento de equipe
- Até 10 workspaces
2.000códigos dinâmicos
Escaneamentos ilimitados em todos os planos. Cancele online em dois cliques. Compare todos os planos e recursos
O resto da caixa de ferramentas
Abra uma linha para ver a tela e qual plano a inclui.
Domínios personalizados
Links curtos no seu próprio domínio, escolhidos código por código.
Starter e superiores
Os códigos abrem go.yourbrand.com/menu em vez de um link com nosso nome, então o endereço sob o código é seu. Você adiciona dois registros DNS e nós os verificamos. Depois, escolha o domínio para cada código ao criá-lo, ou mova uma lista inteira de códigos para ele de uma vez.
Starter e superiores
QR codes no seu próprio domínio

Domínios personalizados · dados de amostra verificados
Alterar muitos códigos de uma vez
Marque os códigos e depois pause, etiquete, arquive ou mova-os juntos.
Pausar e retomar em todos os planos · pastas e etiquetas no Starter e superiores
Marque códigos na lista, ou selecione todos os códigos com uma etiqueta, e depois pause ou retome-os, adicione ou remova etiquetas, mova-os para uma pasta ou para seu próprio domínio, ou adicione etiquetas de campanha, tudo de uma vez. Por exemplo, quando uma loja pop-up fecha, você pode pausar todos os códigos dela juntos em vez de um por um. A API faz o mesmo em uma única solicitação.
Pausar e retomar em todos os planos · pastas e etiquetas no Starter e superiores

Seus QR codes · dados de amostra de lista de um corretor de imóveis
Webhooks
Seu servidor recebe notificações sobre cada escaneamento e cada alteração.
Business
Escolha os eventos que importam para você (um escaneamento, um código criado ou alterado, um formulário respondido, um QR Menu editado) e nos dê uma URL. Cada um chega como um POST assinado. Se seu servidor estiver fora do ar, tentamos novamente, e cada entrega é listada com a resposta que recebeu.
Business

Webhooks · entregas recentes, dados de amostra
Workspaces separados
Uma assinatura, um workspace por marca ou cliente.
Business
Cada workspace tem seus próprios códigos, equipe e análises, então um cliente, como um dentista para quem você faz design, nunca vê os códigos de outro cliente. Até 10 sob uma assinatura.
Business

Configurações · workspaces, dados de amostra
Uma API para os códigos que você imprime
Use a API para criar códigos dinâmicos e links curtos a partir do seu próprio software. Você pode mudar para onde um código leva, por exemplo, quando uma página de produto muda, e baixar códigos como SVG, PNG ou PDF para a gráfica. Você também pode adicionar um domínio ou alterar até 500 códigos em uma solicitação. Se você não escreve código, Zapier, Make e n8n podem chamar a API com uma etapa HTTP simples. A API vem com o Starter e superiores, e toda solicitação deve incluir sua chave.
Renderizar um código · Starter e superiores
curl -o code.svg \
-H "Authorization: Bearer $QRSALT_KEY" \
"https://app.qrsalt.com/api/qr?data=https://example.com"
Você recebe um arquivo SVG de volta, pronto para uma etiqueta, um modelo ou uma página da web.
Redirecionar um código impresso · Starter e superiores
curl -X PATCH https://app.qrsalt.com/api/v1/codes/{id} \
-H "Authorization: Bearer $QRSALT_KEY" \
-H "content-type: application/json" \
-d '{"destination":"https://example.com/winter"}'
O código impresso agora abre a nova página, e o endereço antigo é mantido no histórico do código. Uma chave só pode alterar códigos no seu próprio workspace.
Alterar muitos códigos de uma vez · JavaScript
// Move a campaign's codes onto your own domain
await fetch('https://app.qrsalt.com/api/v1/codes/bulk', {
method: 'POST',
headers: {
authorization: \`Bearer ${process.env.QRSALT_KEY}\`,
'content-type': 'application/json',
},
body: JSON.stringify({ ids, action: 'domain', domain: 'go.example.com' }),
})
Pause, etiquete, mova ou arquive códigos em pastas em uma solicitação. A resposta lista o que foi alterado e o que foi ignorado.
Todos os endpoints, com um playground

Chaves de API · uma por integração, dados de amostra