25 ago 2026 · 8 min de lectura
Do Figma ao Cursor: MCP Oficial, Configuração e o que Realmente Funciona na Prática
Como conectar o Cursor ao MCP oficial da Figma para ler designs com contexto real (nodes, tokens, screenshots) e implementar telas fiéis ao layout — sem depender de prints ou de um MCP próprio.

Introdução
Nesses dias eu precisava que o Cursor lesse um arquivo inteiro do Figma e construísse todas as telas exatamente como estavam no design — sem eu precisar ficar enviando prints de cada atributo, cor ou espaçamento. Eu queria que esse processo fosse automático: a IA lendo o Figma diretamente, com contexto real, e implementando isso no código. Foi por isso que decidi usar o MCP oficial da Figma dentro do Cursor. Neste artigo, explico como isso funciona, como configurei e o que de fato é usado na prática.
TL;DR
- O projeto não tem um MCP próprio. Não existe pasta src/mcp, pacote npm interno ou API que "leia Figma" por conta própria.
- O que existe é um arquivo .cursor/mcp.json apontando para o servidor MCP oficial da Figma.
- Existem dois servidores oficiais: remoto (HTTP + OAuth) e local (Figma Desktop + Dev Mode).
- Na prática, o remoto é o que funciona melhor na maioria dos casos — não depende do Figma Desktop aberto.
- O Agent do Cursor passa a enxergar ferramentas como get_design_context, get_screenshot, get_metadata, download_assets e get_variable_defs.
O ponto mais importante
Não existe MCP próprio neste projeto.
Não há pasta tipo src/mcp, nem pacote npm interno, nem API que "leia Figma". O que existe é um arquivo de configuração no Cursor apontando para o servidor da Figma.
Config do projeto: .cursor/mcp.json (raiz do repositório).
Config global do Cursor: C:\Users\<seu-usuario>\.cursor\mcp.json.
Servidor de verdade: MCP oficial da Figma. Código próprio de MCP: nenhum.
Quando o Agent precisa do Figma, o Cursor chama esse endpoint HTTP. No painel de MCPs ele costuma aparecer como figma / user-figma.
O cenário que levou à configuração
Já existia um frontend em Next.js rodando. O design novo veio pronto no Figma. Sem MCP, o Agent não conseguia ler frames, cores, tipografia ou assets com fidelidade — no máximo abria a página web publicada ou trabalhava a partir de um screenshot solto, o que gerava telas “parecidas”, nunca fiéis.
O objetivo era simples de enunciar e chato de fazer manualmente: a IA do Cursor deveria ler o arquivo do Figma com contexto real (nodes, inspeção, tokens de design, screenshots) e implementar isso diretamente no código já existente, sem eu precisar descrever cor por cor, espaçamento por espaçamento.
O que é o MCP (Model Context Protocol)
MCP (Model Context Protocol) é o padrão que o Cursor usa para conectar ferramentas externas ao Agent. Sem MCP, a IA só enxerga o que você cola na conversa. Com o MCP do Figma, ela ganha acesso a ferramentas como:
- get_design_context
- get_screenshot
- get_metadata
- download_assets
- get_variable_defs
- use_figma
- Code Connect e skills de design-to-code
Dois servidores oficiais da Figma (não confundir)
A Figma oferece dois caminhos para o MCP. Vale entender a diferença antes de configurar.
1. Remoto (o que acabei usando)
- Tipo: HTTP
- Autenticação: OAuth feito direto no Cursor (não grava token no mcp.json)
- Funciona mesmo com o Figma Desktop fechado, desde que a conta tenha acesso ao arquivo
- Conjunto mais amplo de ferramentas disponíveis
- É a opção que a própria Figma recomenda na maioria dos casos
2. Local (Desktop)
- Roda dentro do Figma Desktop
- Exige o Dev Mode ligado (Shift + D)
- No painel de inspeção: Enable desktop MCP server
- URL típica: http://127.0.0.1:3845/mcp
- Sem OAuth — depende do aplicativo estar aberto na máquina
- Exige seat Full ou Dev no plano da Figma
No começo, tentei o modo local. O endpoint 127.0.0.1:3845 não respondeu de primeira — Desktop fechado, Dev Mode desligado e o MCP local ainda não habilitado. Migrei para o remoto oficial, que resolveu de forma mais estável.
Onde fica a configuração no projeto
Arquivo na raiz do repositório do front-end: .cursor/mcp.json
{
"mcpServers": {
"figma": {
"url": "https://mcp.figma.com/mcp",
"type": "http"
}
}
}Isso só diz ao Cursor: “quando precisar de Figma, use este servidor HTTP”.
Existe a mesma entrada no MCP global da máquina: C:\Users\<seu-usuario>\.cursor\mcp.json
Nesse arquivo global, o figma convive com outros servidores MCP que eu já usava. A configuração do projeto vale só para aquele workspace; a global vale para qualquer pasta aberta no Cursor.
Como foi feito, na prática: só configuração
Não houve implementação de servidor nenhum. O fluxo foi este:
- Colei o link do Figma no chat — o Agent, sem MCP, não conseguia ler o arquivo.
- Criei o .cursor/mcp.json apontando para o Desktop (127.0.0.1:3845).
- Testei o endpoint local — falhou.
- Atualizei o JSON para o servidor remoto oficial, com "type": "http".
- No Cursor: Settings → MCP → Connect / OAuth na conta Figma.
- Status ficou verde — o Agent passou a enxergar as ferramentas.
Nenhum código próprio “constrói” o MCP. O código do servidor é da Figma. O que fica versionado é só a URL de conexão e a autenticação feita via OAuth.
Passo a passo para configurar o MCP da Figma no Cursor
Abaixo, o fluxo completo — do Desktop (opcional) até o link certo do frame no chat.
1. (Opcional) Figma Desktop + Dev Mode
Só necessário se for usar o MCP local:
- Baixe o app em figma.com/downloads.
- Faça login na conta com acesso ao arquivo.
- Abra o arquivo no Desktop.
- Ative o Dev Mode (Shift + D).
- No painel de inspeção, marque Enable desktop MCP server.
- Copie a URL exibida (geralmente http://127.0.0.1:3845/mcp).
2. Criar o mcp.json no projeto
Na raiz do repositório, crie .cursor/mcp.json.
Remoto (recomendado):
{
"mcpServers": {
"figma": {
"url": "https://mcp.figma.com/mcp",
"type": "http"
}
}
}Local (alternativa):
{
"mcpServers": {
"figma-desktop": {
"url": "http://127.0.0.1:3845/mcp"
}
}
}Os dois podem coexistir no mesmo arquivo, com nomes diferentes.
3. Ativar no Cursor
- Salve o JSON e reinicie o Cursor.
- Vá em Settings → Cursor Settings → MCP.
- Ligue o toggle do figma.
- Clique em Connect → autorize via OAuth no navegador.
- Confira o status: deve aparecer ready / verde.
- No chat do Agent, teste com: "liste as ferramentas MCP do Figma".
Atalho opcional no chat: /add-plugin figma (plugin oficial com skills prontas).
4. Enviar o design certo
O “envio” do design é o link do frame em Dev Mode — não um PDF nem um export qualquer:
- O fileKey e o node-id vêm direto da URL do Figma.
- node-id=12-34 vira 12:34 quando usado pelas ferramentas do MCP.
- Prefira sempre o link do frame da tela específica, não só a página raiz (0-1).
Como o Agent usa isso depois de conectado
Uma ordem que funciona bem na prática:
- Validar se o MCP está autenticado e ativo.
- Ler o link e listar frames, cores e tipografia.
- Comparar com os tokens e componentes que já existem no repositório.
- Implementar uma tela por vez (por exemplo: home → autenticação → páginas internas).
- Reaproveitar o que o projeto já tem (styled-components, shells, tokens) — o output do Figma é referência de design, não código final para simplesmente colar.
Um exemplo real desse reaproveitamento: o arquivo do Figma às vezes só tinha os botões “Entrar” e “Criar conta” no cabeçalho, sem uma tela dedicada para login e cadastro. Nesses casos, as páginas foram montadas seguindo o mesmo padrão visual (tokens, raio de borda, gradiente), reaproveitando o shell de autenticação e os estilos já existentes — mesmo sem um frame específico desenhado no Figma para aquela tela.
Erros comuns ao configurar o MCP da Figma
- MCP não aparece: mcp.json no repositório errado ou Cursor não foi reiniciado. Se o arquivo não carrega, vale validar a sintaxe do JSON antes de reiniciar — um formatador de JSON online resolve isso em segundos.
- 127.0.0.1:3845 recusa conexão: Desktop fechado, Dev Mode desligado ou MCP local ainda não habilitado.
- Servidor aparece verde mas não lê o arquivo: a conta autenticada via OAuth não tem permissão de visualização no Figma.
- Link sem node-id: o Agent pede o link específico da seleção, não da página inteira.
- Código genérico demais: falta usar variables / Code Connect habilitado no Dev Mode.
- Firewall bloqueando localhost na porta 3845: só ocorre no modo desktop.
- Logs para depurar: no Cursor, vá em Output → MCP Logs.
Checklist rápido
Antes de pedir para o Agent implementar qualquer tela, confirme: mcp.json versionado, status ready no painel de MCP, OAuth feito com a conta certa, acesso real ao arquivo no Figma e o link do frame (com node-id) colado no chat.
Perguntas frequentes sobre MCP do Figma no Cursor
Preciso escrever um servidor MCP para conectar o Figma ao Cursor? Não. A Figma já disponibiliza um servidor MCP oficial, remoto ou local. Basta apontar o .cursor/mcp.json para ele e autenticar via OAuth.
Qual a diferença entre o MCP remoto e o local da Figma? O remoto roda via HTTP com OAuth e funciona mesmo com o Figma Desktop fechado. O local depende do Figma Desktop aberto, com Dev Mode ativo, e não usa OAuth.
Por que o Cursor não lê o arquivo mesmo com o MCP conectado? Geralmente porque a conta autenticada não tem acesso de visualização ao arquivo no Figma, ou porque o link enviado não contém um node-id válido.
O código gerado a partir do Figma já sai pronto para produção? Não deve ser tratado assim. O ideal é usar o MCP como referência de design (cores, tipografia, espaçamento, variáveis) e implementar reaproveitando os componentes e padrões que já existem no projeto.
Conclusão
“Ter MCP de Figma” aqui significa uma coisa bem específica: apontar o Cursor para o servidor oficial da Figma e autenticar. O servidor é da Figma — o que fica sob controle do time é só o mcp.json versionado e o uso do Agent com links corretos do Dev Mode. Nenhuma linha de código própria foi escrita para "ler" o Figma; toda a inteligência de leitura de design já vem pronta no protocolo.
Ferramentas rápidas tipo formatador de JSON, gerador de UUID e decodificador de JWT eu deixo salvas na Ontoom — uso no dia a dia.
Abrir formatador de JSON da Ontoom
Como conectar o Cursor ao MCP oficial da Figma para ler designs com contexto real (nodes, tokens, screenshots) e implementar telas fiéis ao layout — sem depender de prints ou de um MCP próprio.
Abrir formatador de JSON da Ontoom