Uso de tokens no Figma MCP: por que é alto e como reduzir

A própria documentação do Figma mostra uma resposta de get_design_context com 351.378 tokens, contra um limite de 25.000. Este artigo explica o que infla a saída do Figma MCP, como medir cada chamada e sete correções, do get_metadata ao Code Connect, que mantêm as respostas pequenas.

Uso de tokens no Figma MCP: por que é alto e como reduzir
Cristian Da Conceicao
Fundador do Picasso IA

Você cola um link do Figma no seu agente de programação, pede um único card de preços e a execução quebra com um erro sobre o tamanho da resposta. A própria página de solução de problemas do Figma mostra a mensagem exata: uma resposta de get_design_context com 351.378 tokens contra um teto de 25.000 tokens. Essa requisição ultrapassou o limite em quatorze vezes. E mesmo quando uma resposta passa raspando pelo limite, ela ainda ocupa sua janela de contexto, empurra para longe as instruções anteriores e é relida a cada turno que vem depois.

Este artigo mostra por que o servidor Figma MCP produz tanta saída, como ver quanto custa cada chamada e sete mudanças que reduzem esses números sem piorar a interface gerada. Os nomes das ferramentas e os limites vêm da documentação publicada pelo Figma. As recomendações de fluxo de trabalho vêm do que acontece quando arquivos de design grandes encontram janelas de contexto pequenas.

Por que o Figma MCP consome tantos tokens

Um link, uma subárvore inteira

Um link de nó não retorna um único retângulo. get_design_context extrai o contexto de design das camadas selecionadas e o devolve como código, React com Tailwind por padrão, com outros frameworks disponíveis. Se você selecionar um frame de página inteira, toda camada aninhada vem junto: barras de navegação, cards, instâncias de ícones, estilos de texto, regras de auto layout, espaçamentos.

Uma landing page movimentada pode ter milhares de nós, e cada nó carrega um nome, um tamanho, preenchimentos, contornos, espaçamento interno e configurações de tipo. Transformado em código, tudo isso vira listas longas de classes e marcação profunda. Listas longas de classes são tokenizadas de forma ruim. Uma regra prática comum é cerca de quatro caracteres por token para prosa em inglês, e código e marcação densos costumam encaixar menos caracteres em cada token.

Quatro coisas tendem a inflar a resposta mais rapidamente:

  • Instâncias repetidas. Uma lista com quarenta linhas pode gerar quarenta blocos de marcação quase idênticos.
  • Fluxos inteiros em um só frame. Boards que trazem várias telas lado a lado devolvem todas elas.
  • Camadas de texto longas. Textos reais, textos jurídicos e tabelas passam literalmente.
  • Aninhamento profundo. Cada frame extra de agrupamento adiciona um nível de marcação e seus próprios dados de estilo.

Vista aérea de wireframes de interface impressos, empilhados em camadas sobre uma mesa de carvalho ao lado de um lápis e uma régua de aço

Código, capturas de tela e metadados somam

Uma única solicitação de design costuma acionar várias ferramentas de leitura, e cada uma adiciona a própria carga. A referência de ferramentas do Figma as lista:

FerramentaO que retornaTamanho relativoMelhor uso
get_metadataEsboço XML esparso com IDs de camadas, nomes, tipos, posições e tamanhosPequenoMapear um frame grande antes de buscar qualquer coisa
get_design_contextEstilo e estrutura da camada como código, React e Tailwind por padrãoGrande, cresce com a subárvoreConstruir um componente ou uma seção
get_screenshotPNG da seleção para preservar a fidelidade do layoutMédio, tokens de imagemChecagem visual do resultado
get_variable_defsVariáveis e estilos usados na seleção: cores, espaçamentos, tipografiaPequeno a médioCombinar tokens de design
download_assetsExportações em PNG, JPG, SVG ou PDF, ou as imagens originaisDepende dos assetsSalvar ícones e fotos como arquivos
get_code_connect_mapMapeamentos de ID de nó para componentes de códigoPequenoReutilizar componentes que você já publica

A coluna de tamanho descreve o que cada ferramenta retorna em geral. As contagens reais dependem do seu arquivo, então meça antes de confiar em qualquer rótulo.

Cada turno relê a pilha

Os resultados das ferramentas permanecem na conversa. Suponha que uma leitura retorne 40.000 tokens: cada mensagem seguinte passa a carregar esse peso. O cache de prompt pode reduzir o preço de reler esse conteúdo, mas os tokens continuam ocupando a janela, então sufocam seus arquivos de origem, a saída de testes e as instruções. Sessões longas acabam acionando a compactação automática, que resume e apaga detalhes que você queria manter.

💡 Verificação rápida: se o agente ficar mais lento ou esquecer instruções anteriores logo após uma chamada ao Figma, culpe a resposta superdimensionada antes de culpar o modelo.

Como medir o estrago

Leia o medidor de contexto

A maioria dos clientes mostra o quanto a janela está cheia. No Claude Code, o comando /context faz isso. Verifique o número antes e depois de cada chamada ao Figma. A diferença é o custo real daquela chamada, captura de tela incluída, e é o único número que importa para o seu arquivo.

Faça um teste no mesmo frame

Escolha um frame real e execute três chamadas em uma sessão nova, anotando o tamanho do contexto depois de cada uma:

  1. get_metadata no frame completo.
  2. get_design_context no frame completo.
  3. get_design_context em um nó filho retirado dos metadados.

Registre os resultados em uma tabela como esta:

ChamadaNóContexto adicionadoObservações
get_metadataFrame completoPreencherSó o esboço
get_design_contextFrame completoPreencherVerificar o erro de tamanho
get_design_contextUm filhoPreencherComparar com a linha acima

Depois de alguns frames, você terá sua própria curva de custo, que vale mais do que qualquer número em um post de blog, este incluído. Minha regra prática: busque leituras pequenas o bastante para fazer cinco ou seis numa mesma sessão antes que a compactação entre em ação. Se uma única leitura consome um terço da janela, o nó é grande demais.

Vista lateral de uma balança postal de latão pesando uma pilha grossa de páginas impressas, com o ponteiro além do meio

7 correções que reduzem o uso de tokens

Em ordem aproximada de quanto costumam economizar.

1. Faça o esboço primeiro com get_metadata

O Figma indica get_metadata para designs muito grandes porque ele retorna um esboço XML esparso, sem estilos anexados. Leia o esboço, escolha a seção de que você realmente precisa e então chame get_design_context apenas nesse ID de nó.

Run get_metadata on this frame. Do not call get_design_context yet.
List the top level sections with their node IDs and wait for my pick.

Mãos de um arquiteto traçando o contorno de uma planta baixa sobre papel translúcido, por cima de uma planta maior

2. Selecione o menor nó possível

O servidor trabalha a partir do nó que você seleciona ou linka. Linke o botão, não a página. Monte uma página do jeito que uma pessoa faria: cabeçalho, hero, preços, rodapé, cada um como uma solicitação própria.

  • Bons alvos: um componente, uma variante, uma seção.
  • Maus alvos: uma página inteira, um canvas inteiro, um frame cheio de camadas ocultas.

Organize também o arquivo de origem. Camadas não usadas e grupos muito aninhados podem adicionar nós que a saída precisa descrever, então uma limpeza de dez minutos feita pelo designer costuma se pagar já na próxima leitura.

Tesoura de aço cortando um único retângulo pequeno, do tamanho de um cartão, de um pôster impresso enorme

3. Configure o Code Connect

A documentação do Figma recomenda configurar o Code Connect para obter os melhores resultados de reaproveitamento de código. Os mapeamentos ligam um nó do Figma a um componente real do seu repositório, por meio de get_code_connect_map e add_code_connect_map. Em vez de reconstruir um botão a partir de estilos brutos a cada requisição, o agente pode apontar para o botão que você já publica. Isso significa menos código gerado e menos comentários na revisão.

Uma diferença para ficar de olho: o servidor desktop usa os mapeamentos que você seleciona, enquanto o servidor remoto precisa do parâmetro clientFrameworks definido com um rótulo específico, como React ou SwiftUI.

Vista de baixo ângulo de uma gaveta aberta de um fichário de carvalho, com um dedo levantando um único cartão de índice

4. Use variáveis, não valores brutos

Quando os designers aplicam variáveis e estilos para cor, espaçamento e tipografia, get_variable_defs retorna os que são usados na seleção. Uma saída que referencia o nome de um token é melhor do que o mesmo código hexadecimal e o mesmo valor em pixels repetidos em centenas de elementos, e se alinha aos tokens que já estão na sua folha de estilos.

💡 Peça à equipe de design para vincular preenchimentos e espaçamentos a variáveis antes da primeira leitura via MCP. Isso leva alguns minutos para eles e poupa todas as solicitações seguintes.

Macro de um leque de amostras de cor em terracota, verde sálvia e azul ardósia, segurado por um polegar

5. Escolha o framework logo no início

React e Tailwind é a saída padrão. Se o seu projeto usa Vue, SwiftUI ou CSS puro, uma resposta em React precisa de uma segunda passada para ser convertida, e você paga pelas duas. Diga a stack no prompt e, no servidor remoto, defina clientFrameworks explicitamente. O mesmo vale para o estilo: informe se você usa Tailwind, módulos CSS ou uma biblioteca de componentes, porque misturar abordagens em uma só passada é como começam as reescritas.

6. Baixe os assets uma vez

Use download_assets para exportar ícones e fotos como arquivos para o repositório e depois referencie-os pelo caminho. Não faça o agente reler um nó de imagem para cada componente que mostra o mesmo logo. As exportações podem ser SVG para ícones e PNG ou JPG para fotos, então escolha o formato que seu build já usa. Quando os arquivos estiverem no repositório, os prompts seguintes precisam apenas do caminho do arquivo.

7. Decida sobre as capturas de tela

O Figma observa que as capturas de tela podem ser desativadas se os limites de tokens forem uma preocupação, embora recomende mantê-las ativas porque preservam a fidelidade do layout. Um meio-termo justo: mantenha-as na primeira construção de uma seção e desative-as em pequenas edições, como a troca de um rótulo ou um ajuste de espaçamento.

Aumentar o limite não é uma solução

A mensagem de erro sugere aumentar MAX_MCP_OUTPUT_TOKENS, e a página de solução de problemas do Figma cita 50000 ou 100000 como valores de exemplo. No Claude Code, você define a variável nas configurações do ambiente e reinicia o aplicativo. Isso desbloqueia a chamada, mas não muda em nada quantos tokens a resposta contém. Um teto maior apenas deixa uma pilha maior entrar na janela.

Se o erro de tamanho continuar aparecendo depois que você busca uma única seção, o próprio nó é pesado. Divida-o: peça get_metadata para os filhos desse nó e depois busque-os um de cada vez. Se um componente ainda retornar demais, a causa costuma ser uma lista muito longa de instâncias ou uma camada cheia de texto, e a correção pertence ao arquivo do Figma, não ao prompt.

AbordagemEfeito no contextoQuando faz sentido
Aumentar MAX_MCP_OUTPUT_TOKENSNenhum, apenas deixa passar respostas maioresUma leitura pontual e rara que você não consegue dividir
Buscar nós filhosReduz bastante o tamanho da respostaPadrão para qualquer coisa maior que uma seção
Desativar capturas de telaRemove a carga de imagensPequenas edições
Code ConnectReduz o código que o agente escreveQualquer projeto com biblioteca de componentes
Nova conversa por seçãoLimpa cargas antigasSessões longas

Close-up macro de um manômetro analógico com o ponteiro parado logo antes da zona vermelha

Um fluxo enxuto, passo a passo

Antes de pedir

  1. Peça ao designer para nomear as camadas com clareza e vincular os valores a variáveis.
  2. Copie links de nós para seções, nunca para páginas inteiras.
  3. Adicione ao repositório um arquivo curto de regras que liste o framework, a pasta de componentes e a nomenclatura dos tokens.
  4. Verifique os limites de uso e a página de acesso do Figma. Os limites variam conforme o plano e o tipo de assento, então uma chamada desperdiçada também pode consumir sua cota.

O arquivo de regras pode ser curto. Algo assim já basta:

Design to code rules
- Framework: React with Tailwind. Reuse components from src/components first.
- Colors and spacing: use the tokens in src/styles/tokens.css, never raw hex values.
- Figma: call get_metadata first on any frame larger than one section.
- Fetch one node per request. Do not re-pull a node that is already built.

Ele custa algumas dezenas de tokens por sessão e bloqueia os hábitos mais caros antes que eles comecem.

Durante a sessão

  1. Comece com get_metadata e escolha um nó.
  2. Solicite o contexto desse nó com o framework indicado.
  3. Verifique o medidor de contexto. Se ele subiu mais do que você esperava, divida a próxima solicitação.
  4. Construa, teste e faça commit.
  5. Abra uma conversa nova, ou compacte, antes da próxima seção, e aponte para os arquivos commitados em vez de buscar o mesmo design de novo.

Exemplo prático: uma página de preços

Pegue uma página de preços com cabeçalho, três cards de planos, um FAQ e um rodapé. O caminho caro é um link para o frame inteiro e o prompt "construa esta página". O caminho enxuto fica assim:

  1. get_metadata no frame da página retorna o esboço e os IDs dos nós.
  2. Você solicita get_design_context para um card de plano, com capturas de tela ativadas.
  3. O agente constrói um componente PlanCard com props para nome, preço e recursos.
  4. Os outros dois cards reutilizam esse componente. Eles precisam apenas do próprio texto e dos metadados, então não há novas leituras de design.
  5. O FAQ e o rodapé ganham cada um uma sessão curta própria.

Três cards de planos, uma leitura de design. Em uma página inteira, essa diferença entre "uma leitura por seção" e "uma leitura para tudo" é de onde vem a maior parte da economia.

Três colegas diante de uma parede de vidro coberta por uma grade de post-its em branco, um deles apontando para um único bilhete

Erros que queimam tokens

ErroPor que custaCorreção
Linkar a página inteiraA subárvore inteira voltaLinke uma seção
Chamar get_design_context duas vezes no mesmo nóA mesma carga entra duas vezes no contextoReutilize o primeiro resultado
Ler de novo para um ajuste pequenoUma carga nova para uma mudança de uma linhaEdite o código diretamente
Aumentar o teto por padrãoLeituras superdimensionadas viram normaisMantenha o padrão, aumente só temporariamente
Ignorar o frameworkUma segunda passada de conversãoDefina a stack primeiro

Algumas correções pertencem ao arquivo do Figma, não ao prompt. Peça ao time de design para dividir fluxos longos em uma seção por frame, nomear as seções pelo que elas são e manter componentes reutilizáveis em uma biblioteca, em vez de copiá-los entre páginas. Um arquivo organizado dá a get_metadata um esboço limpo para trabalhar, o que torna cada leitura seguinte menor e mais fácil de ler para o agente. Compartilhe também seus números do teste no mesmo frame. Ver uma leitura cair de enorme para modesta é a forma mais rápida de transformar custo de tokens em hábito de design.

Vários servidores da comunidade afirmam comprimir os dados do Figma em uma saída mais enxuta. Podem valer a pena, mas rode o teste no mesmo frame com eles antes de trocar, e confira o que deixam de fora. Uma resposta menor só é uma vitória se os detalhes de layout de que você precisa sobreviverem.

Vista de baixo ângulo de um cesto de arame transbordando de páginas impressas amassadas, ao lado de um pé de mesa

Onde os modelos do PicassoIA entram

Uma execução de design para código envolve mais do que chamadas ao Figma. Boa parte do trabalho ao redor não precisa acontecer dentro do contexto do seu agente de programação, e é aí que os modelos da coleção Large Language Models do PicassoIA ajudam.

  • Rascunhe a especificação do componente em outro lugar. Transforme um briefing de design confuso em uma especificação curta com Claude Sonnet 5 ou Gemini 3.5 Flash, e depois cole só a especificação no seu agente.
  • Enxugue threads longas. O GPT 5.6 Luna responde textos rápidos, o que é ideal para reduzir uma thread longa de revisão a cinco tópicos.
  • Teste prompts de agente. O Kimi K2.6 é feito para trabalho com agentes e programação, então é um ambiente de testes prático para um arquivo de regras antes de ele ir para o seu repositório.

Imagens são outro lugar para economizar. Fotos de hero e imagens de placeholder não precisam passar pelo servidor do Figma. Gere-as a partir de um prompt com o Flux 2 Pro, o Seedream 4.5 ou o P-Image, e nada disso toca o contexto do seu agente de programação. Precisa de movimento para uma landing page? O Seedance 2.0 e o PicassoIA Video transformam um prompt ou uma imagem fixa em um clipe curto.

Crie suas próprias imagens com o Picasso IA

Sua próxima sessão de design para código vai andar mais rápido se as imagens estiverem prontas antes do primeiro prompt. Abra o Picasso IA, escreva uma descrição curta da cena e rode-a no Flux 2 Pro e no Seedream 4.5 lado a lado. Fique com a que se encaixa no seu layout e, se a página precisar de um hero em movimento, anime-a com o Seedance 2.0.

Teste alguns prompts hoje e veja quais você prefere. Todos os modelos estão listados em picassoia.com/en/all-models, então você pode testar quantos quiser.

Compartilhe este artigo

Escolha seu idioma