Como Construímos um Servidor VTEX MCP com 700+ Ferramentas em um Único Dia

Tiago Gimenes
Tiago Gimenes
9 de março de 2026
Como Construímos um Servidor VTEX MCP com 700+ Ferramentas em um Único Dia

Mês passado, sentei pela manhã e até o final do dia tinha um servidor MCP funcional com 710 ferramentas cobrindo toda a superfície da API VTEX. 68 domínios de API: catálogo, pedidos, preços, logística, pagamentos, promoções, marketplace, e o resto. Inputs tipados, validação com Zod, autenticação, retries. A mesma abordagem funciona para qualquer plataforma que publica um spec OpenAPI.

710
ferramentas MCP geradas
68
domínios de API VTEX
1
Dia para construir

OpenAPI como fonte

VTEX publica especificações OpenAPI para todas as suas APIs em um repositório GitHub público. 68 arquivos de schema, cada um descrevendo cada endpoint, tipo de parâmetro e corpo da requisição para um dado domínio de API. Catálogo, pedidos, logística, busca inteligente, marketplace, pagamentos, tudo isso.

A percepção-chave: esses specs já contêm tudo que uma ferramenta MCP precisa. Endpoint, parâmetros, tipos, descrições. Escrevi um pipeline que os lê e gera ferramentas MCP diretamente. Escreva o pipeline uma vez, execute contra qualquer spec.


Quatro estágios, spec para servidor

1

Download de todos os schemas OpenAPI

Um script consulta o repositório GitHub da VTEX via a API GitHub e descobre todos os arquivos de spec dinamicamente. Sem lista hardcoded. Valida que cada um é um spec OpenAPI apropriado, normaliza a nomenclatura e faz download de todos os 68 schemas. Quando VTEX adiciona uma nova API, o script a detecta na próxima execução.

2

Gerar clientes SDK em TypeScript

Usando @hey-api/openapi-ts, cada schema é processado para gerar funções SDK tipadas para cada operação, schemas de validação Zod para cada requisição, e setup de client HTTP com autenticação. 68 schemas de entrada, 68 módulos completamente tipados de saída.

3

Achatar e adaptar para MCP

OpenAPI estrutura parâmetros em grupos aninhados: path, query, headers, body. Ferramentas MCP aceitam input flat. A camada de adaptador achata esses schemas, lida com coerção numérica (UIs de ferramentas frequentemente enviam números como strings), remove headers (autenticação é injetada por interceptadores de cliente), e adiciona lógica de retry com exponential backoff.

4

Registrar em um registry declarativo

Cada operação do SDK se torna uma ferramenta MCP via uma única chamada declarativa: um ID, uma descrição, o schema Zod, e a função SDK. 710 entradas, agrupadas por domínio de API.


A camada de adaptador

A ponte entre o SDK gerado e MCP é uma única função. Aqui está como cada definição de ferramenta fica no registry:

createToolFromOperation({
  id: "VTEX_GET_BRAND",
  description: "Get brand details by ID.",
  annotations: { readOnlyHint: true },
  requestSchema: catalogZod.zGetBrandData,
  sdkFn: catalogSdk.getBrand,
})

createToolFromOperation faz várias coisas com essa configuração. Pega o schema de requisição Zod gerado, que tem a estrutura OpenAPI aninhada ({ path: { brandId: number }, query: { fields: string }, body: {...} }), e o achata em um schema de input de nível único. Um agent apenas envia { brandId: 123, fields: "name,slug" }. A função reescreve o schema para aceitar essa versão flat, valida o input através do Zod, depois desachata de volta para a forma estruturada { path, query, body } que o SDK espera antes de fazer a chamada.

As regras de achatamento: parâmetros de path permanecem obrigatórios. Parâmetros de query se tornam opcionais. Se o body é um objeto JSON, seus campos são promovidos para o nível superior. Se for algo mais (um array, um primitivo), permanece aninhado sob uma chave body. Headers são removidos inteiramente porque o interceptador de cliente injeta X-VTEX-API-AppKey e X-VTEX-API-AppToken automaticamente.

Há também uma camada de coerção numérica. UIs de ferramentas e frameworks de agents frequentemente serializam números como strings. O adaptador detecta campos Zod numéricos e os envolve em um tipo union que aceita tanto 123 quanto "123", depois normaliza para o tipo correto antes da chamada SDK. Sem isso, metade das ferramentas falharia com input válido.

Cada ferramenta também roda com lógica de retry: exponential backoff começando em 500ms, até 3 retries, disparado em erros de rede, timeouts, rate limits 429, e respostas 5xx. Jitter é adicionado para prevenir thundering herds quando múltiplas ferramentas batem na VTEX concorrentemente.

info
Validação com Zod em cada limite

Cada ferramenta valida input através do Zod antes de fazer qualquer chamada HTTP. O agent recebe um erro de validação claro em vez de um 400 criptografado da API VTEX. Quando agents encadeiam múltiplas chamadas de ferramentas, validação antecipada previne falhas em cascata.


68 domínios de API

Catálogo

Marcas, categorias, produtos, SKUs, especificações, anexos, políticas comerciais. CRUD completo no catálogo de produtos.

Pedidos e Fulfillment

Gerenciamento de pedidos, faturamento, notificações de envio, rastreamento, processamento de feed. Criação de pedidos até entrega.

Preços e Promoções

Tabelas de preços, preços fixos, regras de preço. Promoções, cupons, cartões-presente, configurações de imposto.

Logística

Armazéns, docas de carregamento, transportadoras, taxas de envio, inventário, rastreamento de reserva, pontos de pickup, cálculos de SLA.

Pagamentos

Protocolos de provedor de pagamento, gerenciamento de transações, integrações anti-fraude, condições de pagamento, regras de parcelamento.

Marketplace e Busca

Gerenciamento de vendedor, matching de ofertas, Busca Inteligente, facetas, autocomplete, analytics de busca.

Servidor VTEX MCP com todos os +700 ferramentas no deco Studio

Qualquer spec OpenAPI

O pipeline lê OpenAPI, não VTEX. A maioria das plataformas já publica specs: AWS, Stripe, Shopify, Twilio, Salesforce, GitHub. Troque os schemas e o mesmo pipeline produz um servidor MCP funcional para uma plataforma diferente. Specs OpenAPI já contêm tudo que uma ferramenta MCP precisa: endpoint, parâmetros, tipos, descrições. O passo de geração é mecânico.

close

Servidor MCP típico

  • Cobre um subconjunto curado de endpoints da plataforma
  • Definições de schema escritas por ferramenta
  • Novos endpoints requerem novo código
  • Quebra silenciosamente quando a plataforma atualiza uma API
  • Acesso parcial à plataforma
check

Gerado a partir do OpenAPI

  • Cobre a superfície completa da API desde o primeiro dia
  • Schemas derivados do spec, type-safe por construção
  • Novos endpoints aparecem na próxima execução do generator
  • Atualizações de spec fluem automaticamente
  • Acesso completo à plataforma

Construímos isso porque precisávamos. Nossos agents trabalham com lojas VTEX diariamente, e acesso tipado à API da plataforma completa os torna mais confiáveis. O output gerado é 68 módulos de domínio, 1.100+ arquivos, 14 MB de código SDK tipado, nada disso mantido à mão. Atualize o spec, execute o pipeline novamente.


Disponível agora no deco Studio

Este MCP VTEX está live no marketplace MCP do deco Studio. Conecte sua loja VTEX, autentique com suas credenciais de API, e seus agents obtêm acesso tipado a todas as 710 operações em toda a plataforma.