Servidor MCP
Conecte sua loja ao Claude, ChatGPT, Cursor, Lovable e qualquer cliente compatível com o Model Context Protocol. Conforme as permissões explícitas da API Key, o agente pode consultar o catálogo, criar links de pagamento, administrar produtos e preparar temas em rascunhos e publicar as alterações diretamente. Para gerar código de integração, veja Integração via llms.txt e OpenAPI.
Dados de conexão
Endpoint (Streamable HTTP): https://api.aproveicheckout.com.br/mcp
Autenticação: a mesma API Key Bearer da API Aprovei, enviada no header
Authorization: Bearer SEU_TOKEN. Crie a key no painel pelo avatar/menu do usuário no topo direito →
API Keys. Diferente da API REST, o header X-Store-Slug não é
necessário: a loja é informada por chamada via parâmetro storeSlug (opcional quando
o token tem acesso a uma única loja). O parâmetro antigo storeId não é aceito nas
tools MCP.
Como conectar
Antes de qualquer cliente, crie a API Key no painel da Aprovei pelo avatar/menu do usuário no topo direito → API Keys. Guarde-a com segurança e use somente em clientes que suportem segredo ou header privado.
Claude Code CLI (terminal)
Para quem usa o Claude Code instalado na máquina, pelo terminal ou dentro da IDE.
-
No terminal, rode o comando abaixo substituindo
SEU_TOKENpelo token criado no painel:Terminalclaude mcp add aprovei-checkout https://api.aproveicheckout.com.br/mcp \ --transport http \ --header "Authorization: Bearer SEU_TOKEN" -
Abra uma sessão do Claude Code e confirme a conexão com o comando
/mcp— o servidoraprovei-checkoutdeve aparecer como conectado. - Peça algo à IA, como "liste os produtos da minha loja e gere um link de pagamento para o mais barato".
Claude Code Web (claude.ai/code, no navegador)
Para quem usa o Claude Code pelo navegador, em claude.ai/code. Aqui não há terminal:
a conexão é feita uma única vez na UI de conectores da conta claude.ai.
-
Acesse
claude.ai, abra o menu da sua conta e vá em Configurações → Conectores. -
Clique em Adicionar conector personalizado, informe um nome (ex.:
Aprovei Checkout) e a URLhttps://api.aproveicheckout.com.br/mcp, e conclua a autenticação com o seu token quando solicitada. -
Abra
claude.ai/code: o conector fica disponível nas suas sessões do Claude Code Web e o agente já pode consultar o catálogo e criar checkouts.
CLI ou Web? O Claude Code CLI roda no seu terminal e guarda a configuração na sua máquina — a conexão vale para o ambiente local onde o comando foi executado. O Claude Code Web roda no navegador e usa os conectores da sua conta claude.ai — a conexão acompanha a conta, em qualquer dispositivo, sem reconfigurar. Use o CLI se você trabalha no terminal ou na IDE; use o Web se prefere o navegador ou quer a loja conectada em todas as suas sessões.
Cursor
-
Na raiz do projeto, crie (ou edite) o arquivo
.cursor/mcp.jsoncom o conteúdo abaixo, substituindoSEU_TOKEN:.cursor/mcp.json{ "mcpServers": { "aprovei-checkout": { "url": "https://api.aproveicheckout.com.br/mcp", "headers": { "Authorization": "Bearer SEU_TOKEN" } } } } -
Em Settings → MCP, confirme que o servidor
aprovei-checkoutaparece ativo (indicador verde) com as tools listadas. - No chat do Cursor, peça por exemplo "busque o produto X na minha loja Aprovei Checkout e crie um link de pagamento".
Lovable
- Abra Connectors → Chat connectors → New MCP server.
-
Informe um nome (ex.:
Aprovei Checkout), a URLhttps://api.aproveicheckout.com.br/mcpe autentique com Bearer token usando seu API Key. - No chat da Lovable, o agente passa a usar as tools da loja durante a construção do seu app.
Claude (web/desktop) e ChatGPT
- No Claude (web ou desktop), adicione um conector personalizado em Configurações → Conectores — mesmo caminho descrito no tutorial do Claude Code Web, e a conexão vale para os dois.
- No ChatGPT, adicione o servidor em Settings → Connectors (recurso disponível conforme o plano), apontando para o endpoint acima.
- Informe o token Bearer quando solicitado. Em clientes que só aceitam URL sem headers, use um cliente com suporte a headers customizados ou o Claude Code/Cursor.
Tools disponíveis
| Tool | Descrição | Permissão do token |
|---|---|---|
list_stores |
Lista as lojas que o token pode acessar | token válido |
get_store |
Dados públicos da loja | storefront:read |
list_products |
Catálogo paginado | storefront:read |
get_product |
Detalhe público; com view=management, retorna estado administrativo e revision |
storefront:read ou products:update explícita |
create_product |
Cria produto em draft por padrão, com idempotência e IDs públicos | products:create explícita |
update_product |
PATCH mínimo com revisão, idempotência e remoções explícitas | products:update explícita |
search_products |
Busca por nome, descrição, SKU ou barcode | storefront:read |
create_checkout |
Cria link de pagamento com os itens informados | checkout:create |
list_webhooks |
Lista webhooks da loja | webhooks:read |
create_webhook |
Cria webhook (secret retornado só na criação) | webhooks:create |
update_webhook |
Edita URL, eventos ou status de um webhook | webhooks:update explícita |
delete_webhook |
Deleta webhook com soft delete; exige confirm: true |
webhooks:delete explícita |
list_checkout_themes |
Lista temas públicos e configurações da própria loja | checkout-customization:read explícita |
get_checkout_customization |
Retorna configuração armazenada/efetiva, impacto e revision |
checkout-customization:read explícita |
get_checkout_customization_schema | Controles, limites, opções e zonas por tema | checkout-customization:read explícita |
list_checkout_customization_options | Paletas, selos, depoimentos, vídeos, produtos e kits | checkout-customization:read explícita |
create_checkout_customization_draft | Cria, prepara edição ou duplica uma personalização em rascunho | checkout-customization:draft explícita |
list_checkout_customization_drafts / get_checkout_customization_draft | Consulta rascunhos, revisão e resultado da aplicação | checkout-customization:read explícita |
update_checkout_customization_draft | Edita nome, seções, widgets, mídias e vídeos compartilhados | checkout-customization:draft explícita |
discard_checkout_customization_draft | Descarta sem alterar o checkout publicado | checkout-customization:draft explícita |
upload_checkout_media | Prepara mídia privada por base64 ou upload binário temporário | checkout-customization:draft explícita |
publish_checkout_customization | Publica imediatamente o tema, os vínculos e conteúdos relacionados | checkout-customization:publish explícita |
import_checkout_customization | Importa documento versão 3.0 para rascunho | checkout-customization:draft explícita |
export_checkout_customization | Exporta sobrescritas e manifesto de mídias | checkout-customization:read explícita |
Permissões sensíveis:
webhooks:update, webhooks:delete, products:create,
products:update, checkout-customization:read e
checkout-customization:draft precisam estar declaradas no token.
A ability * não autoriza essas ações. As quatro permissões de produto/personalização exigem
API Key com expiração máxima de 90 dias.
Fluxo típico do agente
list_stores— descobre a loja e oslug(dispensável com loja única).list_productsousearch_products— encontra ovariantIdcomprável.create_checkout— gera o link e envia acheckoutUrlao comprador.
Criar produto com segurança
list_stores— confirmeproducts:createemcapabilities.- Vínculos de temas com produtos e kits são definidos na aprovação da personalização.
create_product— useidempotencyKey; o default édraft.
Editar produto com PATCH mínimo
get_product(view=management)— leia o estado atual e guarderevision.update_product— envie somente os campos alterados,expectedRevisioneidempotencyKey.- Use
clearFieldsou operaçõesremove...; omitir nunca remove.
Designer de checkout — contrato 4.0.0
Ao criar a API Key, selecione as permissões storefront:read, checkout-customization:read, checkout-customization:draft e checkout-customization:publish. Chaves existentes não recebem publicação automaticamente. A concessão é explícita, com validade máxima de 90 dias e autorização operacional do proprietário na loja.
- Descubra temas, controles e recursos com
list_checkout_themes,get_checkout_customization_schemaelist_checkout_customization_options. - Crie um rascunho com
create_checkout_customization_draft. O modocreaterecebethemeSlug;editeduplicaterecebemcheckoutCustomizationId. InformenameeidempotencyKey. - Edite com
update_checkout_customization_draft, informandodraftId,expectedRevision,idempotencyKeyepatch. Campos omitidos são preservados; useclearFields,resetSectionsou remoções explícitas. - Publique com
publish_checkout_customization, enviandodraftId,expectedRevision,expectedDependencyRevisionretornada pelo rascunho,idempotencyKeye os destinos:setAsDefault,productIdsekitIds. A resposta retornacheckoutCustomizationId,revision,status=appliedeimpact. Não há tela intermediária de aprovação. - Consulte
get_checkout_customization_draftpara acompanharstatuseresult.
O fundo principal (conteudo.fundo_checkout) deve ser branco ou pastel claro, com luminosidade relativa mínima de 0,8. A regra é validada no servidor, inclusive em importações e na publicação. Cabeçalho, banners e botões podem usar as cores da marca. Exemplos aceitos: ffffff, f4f7fb e fcfaff.
Os links temporários de upload e leitura de mídias usam o domínio do painel. Não altere o domínio de um link recebido: isso invalida sua assinatura.
O impacto retorna as contagens completas de produtos e kits, incluindo herança do padrão e vídeos compartilhados. As listas detalhadas mostram até 100 identificadores por tipo, com listedDestinationsTruncated quando necessário. Widgets de vantagens e depoimentos aceitam até 12 itens; uma lista vazia remove seus itens explicitamente.
Rascunhos permanecem isolados até a publicação. Alterações concorrentes no rascunho, configuração publicada, padrões, vínculos ou dependências impedem a publicação com revisões antigas. Tokens revogados ou expirados impedem escrita. Repita mutações somente com a mesma chave e conteúdo.
{
"name": "update_checkout_customization_draft",
"arguments": {
"storeSlug": "minha-loja",
"draftId": "UUID retornado na criação",
"expectedRevision": "sha256:REVISÃO_ATUAL",
"idempotencyKey": "tema-campanha-02",
"patch": {
"name": "Campanha de outubro",
"set": {"conteudo": {"fundo_checkout": "f4f5f8"}},
"widgets": [{"zone": "topo", "upsert": [{"id": "titulo", "type": "texto", "settings": {"content": "<p><strong>Bem-vindo!</strong></p>"}}]}]
}
}
}
Mídias e importação
upload_checkout_media recebe finalidade, tipo e tamanho. Imagens até 2 MiB podem usar dataBase64; para arquivos maiores, envie os bytes por POST à uploadUrl temporária. Consulte a revisão depois de concluir o upload. Vídeos MP4/WebM têm limite de 50 MiB, com até seis vídeos de criadores por loja. Esses vídeos são compartilhados e esse alcance aparece na aprovação.
Use images.logo.mediaId e os demais slots do schema; widgets de imagem usam settings.imageMediaId e fotos de depoimentos usam photoMediaId. Arquivos novos ficam privados até a aplicação. Uploads abandonados sem referências são removidos pelo comando agendado checkout-drafts:cleanup-media.
Exportação e importação usam o mesmo formato 3.0 no painel e no MCP, preservando sobrescritas, widgets, campos removidos e manifesto de mídias. A importação não baixa URLs arbitrárias. Referências não resolvidas precisam ser substituídas ou removidas antes da aprovação.
Limites e segurança
- O agente pode preparar e publicar temas diretamente quando a API Key possui as permissões explícitas necessárias. A publicação não exige aprovação no painel.
- Rate limits por token+loja: catálogo 300/min; leitura administrativa 120/min; rascunhos e prévias 30/min; criação de produto 10/min; atualização de produto 20/min.
create_checkouté idempotente: informeidempotencyKeypara repetir com replay seguro; sem ela, uma chave é gerada automaticamente.create_checkoutaceita até 50 itens e quantidade de 1 a 999 por item; ovariantIddeve vir do catálogo público.- Use
storeSlugpara tokens com múltiplas lojas;storeIdretorna erro de validação. create_checkoutcria somente o link/token de checkout; não cria pedido e não cobra o cliente automaticamente.- O endpoint MCP também aplica limite global pré-autenticação de 600 chamadas/min por IP.
- A allowlist de IPs do token também vale para o MCP.
- As mutações aceitam somente o proprietário operacional da loja e nunca aceitam
storeId, IDs internos, custo, origem externa, CSS, JavaScript, Blade ou URL remota de imagem. - Imagens MCP aceitam JPEG, PNG ou GIF em base64 puro, até 2 MiB por arquivo; MIME e conteúdo precisam coincidir.
- Nunca compartilhe o token Bearer com usuários finais; o agente que carrega o token age em nome da sua conta.
- Todas as chamadas são auditadas como as da API pública v1.
Integração via código
Para gerar código que integra com a API REST (Lovable, Cursor, v0, Bolt), veja a página Integração via llms.txt e OpenAPI, que reúne o contrato completo para LLMs e a spec OpenAPI.