SudoMock
API de renderização de mockups de produtos. Carregue templates
Documentação
Servidor MCP SudoMock
Gere maquetes de produtos fotorrealistas a partir do Claude, Cursor, Windsurf e VS Code.
Servidor Model Context Protocol para a API de geração de maquetes SudoMock. Envie templates PSD, coloque artes em objetos inteligentes, edite camadas de texto suportadas e obtenha URLs de imagens renderizadas — tudo por meio de linguagem natural.
Início rápido
Este é um servidor local stdio: seu cliente MCP o inicia como um processo filho
via npx e autentica com sua SUDOMOCK_API_KEY.
claude mcp add sudomock \
-e SUDOMOCK_API_KEY=sm_your_key_here \
-- npx -y @sudomock/mcp
Obtenha sua chave de API em sudomock.com/dashboard/api-keys.
Configuração JSON para outros clientes (Cursor, Windsurf, VS Code)
{
"mcpServers": {
"sudomock": {
"command": "npx",
"args": ["-y", "@sudomock/mcp"],
"env": {
"SUDOMOCK_API_KEY": "sm_your_key_here"
}
}
}
}
Observação: Um transporte remoto hospedado (HTTP/OAuth) ainda não está disponível. Este pacote inclui apenas o servidor stdio local mostrado acima.
Ferramentas
| Ferramenta | Descrição | Créditos |
|---|---|---|
list_mockups | Liste seus templates de maquete enviados | 0 |
get_mockup_details | Obtenha UUIDs de objetos inteligentes, dimensões, modos de mesclagem | 0 |
render_mockup | Renderize uma maquete com arte e/ou texto editável | 1 |
remove_background | Obtenha um recorte PNG transparente por meio de uma URL assinada de 7 dias | 25 |
list_fonts | Liste as fontes disponíveis para camadas de texto, incluindo seus envios | 0 |
create_upload_url | Obtenha uma URL de envio para um arquivo local e a URL do arquivo que ele terá | 0 |
create_2d_mockup | Crie uma maquete de foto e detecte superfícies imprimíveis automaticamente | 25 |
render_2d_surface | Imprima arte em toda a superfície de um produto (all-over) | 5 |
render_2d_print_area | Imprima arte em uma área de impressão salva (uma zona desenhada) | 5 |
render_video | Anime uma maquete em um clipe de vídeo (sempre assíncrono) | baseado em custo (um por conta sem custo, depois baseado em custo) |
upload_psd | Envie um template Photoshop PSD/PSB (síncrono ou assíncrono) | 0 |
list_2d_mockups | Liste templates de maquete de foto salvos; use customizable_only para itens prontos para compradores | 0 |
get_2d_mockup | Obtenha as áreas de impressão salvas de uma maquete de foto e suas superfícies de produto | 0 |
update_2d_print_areas | Substitua a geometria da área de impressão de uma maquete de foto | 0 |
delete_2d_mockup | Exclua um template de maquete de foto | 0 |
get_job | Verifique o status de um trabalho assíncrono por job_id | 0 |
wait_for_job | Consulte um trabalho assíncrono até que ele tenha sucesso ou falhe | 0 |
list_jobs | Liste trabalhos assíncronos de renderização, vídeo, envio e maquete de foto | 0 |
get_account | Verifique plano, créditos, saldo pré-pago e uso | 0 |
update_mockup | Renomeie um template de maquete | 0 |
delete_mockup | Exclua um template de maquete | 0 |
create_webhook_endpoint | Registre um webhook para conclusão de trabalhos assíncronos, fixado em uma nomenclatura de evento | 0 |
list_webhook_endpoints | Liste seus endpoints de webhook | 0 |
update_webhook_endpoint | Edite ou habilite/desabilite um endpoint de webhook | 0 |
delete_webhook_endpoint | Exclua um endpoint de webhook | 0 |
rotate_webhook_secret | Gire um segredo de assinatura de webhook | 0 |
test_webhook_endpoint | Envie um evento webhook.test assinado | 0 |
list_webhook_deliveries | Liste tentativas de entrega para um endpoint | 0 |
replay_webhook_delivery | Reproduza uma única entrega com falha | 0 |
replay_failed_webhook_deliveries | Reproduza todas as entregas com falha para um endpoint | 0 |
Ambas as grafias funcionam
O produto chama seus dois tipos de templates de maquetes PSD e maquetes de foto, e as ferramentas também respondem a esses nomes. Nada acima foi renomeado: cada nome na tabela continua funcionando exatamente como sempre funcionou, e a grafia ao lado é a mesma ferramenta com os mesmos argumentos. Use qualquer uma.
| Nome na tabela | Também responde a |
|---|---|
list_mockups | list_psd_mockups |
get_mockup_details | get_psd_mockup |
update_mockup | update_psd_mockup |
delete_mockup | delete_psd_mockup |
render_mockup | render_psd_mockup |
create_2d_mockup | create_photo_mockup |
list_2d_mockups | list_photo_mockups |
get_2d_mockup | get_photo_mockup |
update_2d_print_areas | update_photo_mockup_print_areas |
delete_2d_mockup | delete_photo_mockup |
render_2d_surface, render_2d_print_area | render_photo_mockup |
get_2d_mockup | get_2d_mockup_details |
test_webhook_endpoint | send_webhook_test_event |
render_photo_mockup | render_2d_mockup |
render_photo_mockup é a única que não é simplesmente um segundo nome para uma única
ferramenta. Ela renderiza qualquer tipo de alvo a partir de uma ferramenta: passe a maquete como
mockup_id e nomeie exatamente um de surface_uuid (dimensionado por coverage ou um
width + height explícito) ou print_area_uuid (dimensionado por fit ou um
width + height explícito). Escolher o alvo escolhendo uma ferramenta, com
mockup_uuid, é o que render_2d_surface e render_2d_print_area ainda fazem.
render_2d_mockup é render_photo_mockup sob um segundo nome, com a
maquete passada como mockup_uuid.
Trabalhos assíncronos
render_mockup, upload_psd, create_2d_mockup e ambas as ferramentas de renderização de maquete de foto
aceitam is_async: true, e render_video é sempre assíncrono. Elas retornam um
job_id imediatamente (HTTP 202) em vez de um resultado final. (create_2d_mockup
e as ferramentas de renderização de maquete de foto são síncronas por padrão e retornam a maquete /
renderização diretamente.) Consulte-o com get_job, ou deixe wait_for_job bloquear até que o trabalho
atinja um status terminal e devolva result_url, mockup_uuid,
credits_charged e payg ({credits, unit_price, cost} para trabalhos
pay-as-you-go, caso contrário null).
Para uma renderização de maquete de foto, escolha a ferramenta que corresponde ao alvo que você leu de
get_2d_mockup. Cada produto imprimível na foto é uma superfície com seu próprio
surface_uuid: render_2d_surface imprime em toda a extensão de uma, e aceita
uma porcentagem coverage ou um width + height explícito. Uma área de impressão
é uma zona delimitada que alguém desenhou em um produto, como um logotipo no peito:
render_2d_print_area aceita seu print_area_uuid e um fit ou um
width + height explícito. Um produto pode ter ambos, e são alvos
separados — uma área de impressão salva não fecha a superfície em que está.
O dimensionamento tem uma resposta por renderização: envie a opção relativa ou a caixa exata,
nunca ambas, e envie width e height juntos. position, offset_x,
offset_y e rotation colocam a arte em qualquer tipo de alvo. Qualquer coisa
que você omitir é deixada de fora da solicitação, então o padrão do próprio renderizador
se aplica em vez de uma cópia mantida aqui.
Remoção de fundo
remove_background retorna uma URL PNG transparente válida por 7 dias. Você pode
passar essa URL diretamente de volta como artwork_url durante essa janela. Para limpar
arte inline durante uma única renderização, passe
remove_background: true para render_mockup ou qualquer ferramenta de renderização de maquete de foto. De qualquer forma,
custa 25 créditos por arte, reembolsados automaticamente se o processamento falhar.
Webhooks
Registre um endpoint com create_webhook_endpoint para ser notificado quando trabalhos
assíncronos terminarem. As entregas são assinadas com DOIS cabeçalhos: X-SudoMock-Signature
(um HMAC-SHA256 hexadecimal sobre ${timestamp}.${rawBody} usando o segredo retornado na
criação/rotação) e X-SudoMock-Timestamp (segundos unix). Verifique em tempo
constante e rejeite se |now - timestamp| > 300s.
As entregas de trabalhos de renderização, envio e vídeo usam
{event, job_id, kind, status, result_url, error, created_at}. Os eventos de criação de maquete de foto tipados adicionam version, mockup_id, name e print_areas
(ready) ou reason (rejected). Os eventos de renderização de maquete de foto tipados
carregam mockup_id, result_url, uma falha pública {error_code, message}
quando aplicável e export_format / duration_ms opcionais. Tipos de evento:
render.succeeded, render.failed, upload.succeeded, video.succeeded,
video.failed, photo_mockup.ready, photo_mockup.rejected,
photo_mockup.failed, photo_mockup_render.succeeded,
photo_mockup_render.failed, webhook.test.
Os cinco eventos de maquete de foto também têm uma grafia legada: 2d_mockup.ready,
2d_mockup.rejected, 2d_mockup.failed, 2d_render.succeeded,
2d_render.failed (com kind 2d_create / 2d_render no payload).
Qual grafia um endpoint recebe é sua fixação event_naming, definida em
create_webhook_endpoint e retornada em cada endpoint: current (os nomes
acima) ou legacy. Uma criação sem fixação aceita current apenas quando
event_types nomeia eventos de maquete de foto apenas por seus nomes de família, e
legacy caso contrário, incluindo uma lista vazia. Endpoints registrados antes da fixação
existir permanecem em legacy, então um receptor escrito com os nomes antigos continua
funcionando inalterado. Quando esse receptor lidar com os novos nomes, mova-o com
update_webhook_endpoint e event_naming: "current"; enviada sozinha, a
re-fixação reescreve a lista de assinaturas armazenada do endpoint para corresponder.
Logs
Cada chamada de ferramenta escreve uma linha JSON em stderr, que seu host MCP mantém em seu
arquivo de log: o nome da ferramenta, quanto tempo a chamada levou e se teve sucesso, por
exemplo {"event":"mcp_tool_call","tool":"list_mockups","duration_ms":312,"ok":true}.
Argumentos, chaves de API, conteúdos de arquivo e respostas de API nunca são registrados. Cada
solicitação de API identifica este pacote como mcp-stdio/<version> em seus
cabeçalhos User-Agent e X-SudoMock-Client.
Preços e limites de conta
Assinaturas a partir de US$ 0,002 por renderização. Sem uma, US$ 0,05 por renderização, a mesma taxa que APIs de maquete independentes cobram em um plano pago. Financiar o saldo exige um primeiro pagamento mínimo de US$ 5. Maquetes de foto e vídeo são precificadas pelo que custam para produzir, em vez da taxa fixa de renderização, que é por que a coluna de Créditos acima não é uniforme.
Uma nova conta começa com 500 créditos, concedidos uma vez, e não precisa de cartão para gastá-los. Até que um cartão seja verificado e o mínimo de US$ 5 seja financiado, essa conta está em avaliação, e cada renderização que ela faz é marcada com marca d'água e limitada a 1.024 px. Ela pode manter 5 templates PSD, executar uma renderização por vez, e um template que ficou 13 dias sem renderização é removido.
Financiar o saldo remove tudo isso de uma vez. A marca d'água e o limite de largura saem, os templates armazenados vão para 150, as renderizações rodam 25 por vez junto com 10 envios simultâneos, e os templates param de ser removidos por ficarem ociosos.
A avaliação não é um plano separado. É o estado não financiado do nível pay-as-you-go, então
get_account relata o mesmo nível antes e depois do financiamento; o saldo é o que
muda.
Por causa disso, uma conta que paga conforme usa não tem subsídio mensal, e
get_account relata credits_limit e credits_remaining como 0 enquanto a
conta está perfeitamente capaz de pagar. Leia prepaid_balance junto com eles, ou leia
funding_summary, que declara ambos em uma linha e nunca relata uma conta financiada
como 0 / 0.
Exemplos de solicitações
- "Liste meus templates de maquete"
- "Renderize a maquete de camiseta com este design: https://example.com/logo.png"
- "Substitua o texto do título editável e renderize a maquete"
- "Recorte o fundo desta foto de produto e renderize-a na bolsa"
- "Liste minhas maquetes de foto e renderize a primeira com esta arte: https://example.com/logo.png"
- "Renderize este design assincronamente e aguarde terminar"
- "Coloque essa renderização de maquete de foto na fila assíncrona e me dê o id do trabalho para acompanhar"
- "Anime a maquete de moletom em um clipe de vídeo de 5 segundos"
- "Envie este PSD como um novo template: https://example.com/mockup.psd"
- "Configure um webhook em https://example.com/hooks para ser notificado quando as renderizações terminarem"
- "Quantos créditos ainda tenho?"
Links
- Painel — Gerencie maquetes e chaves de API
- Documentação da API — Referência completa da API REST
- Preços
- Status — Disponibilidade do serviço
Licença
MIT