<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: An Hoàng</title>
    <description>The latest articles on DEV Community by An Hoàng (@ann_dev).</description>
    <link>https://dev.to/ann_dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4039324%2Fce695ad1-5b1e-4204-8bc7-8fd7768d669d.png</url>
      <title>DEV Community: An Hoàng</title>
      <link>https://dev.to/ann_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ann_dev"/>
    <language>en</language>
    <item>
      <title>Let your AI assistant design in Figma</title>
      <dc:creator>An Hoàng</dc:creator>
      <pubDate>Tue, 21 Jul 2026 06:37:40 +0000</pubDate>
      <link>https://dev.to/ann_dev/let-your-ai-assistant-design-in-figma-40od</link>
      <guid>https://dev.to/ann_dev/let-your-ai-assistant-design-in-figma-40od</guid>
      <description>&lt;h1&gt;
  
  
  I Built an Open-Source Figma MCP Server That Doesn't Need a Figma API Token
&lt;/h1&gt;

&lt;p&gt;Over the past few months, AI coding assistants have become surprisingly good at turning Figma designs into production code.&lt;/p&gt;

&lt;p&gt;But after trying almost every Figma MCP server available, I kept running into the same problems.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They required a Figma API token.&lt;/li&gt;
&lt;li&gt;API rate limits became frustrating during long sessions.&lt;/li&gt;
&lt;li&gt;AI often generated placeholder icons or incorrect images instead of exporting the actual assets from Figma.&lt;/li&gt;
&lt;li&gt;Working across multiple Figma files was cumbersome.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I decided to build my own.&lt;/p&gt;

&lt;p&gt;Today I'm open-sourcing &lt;strong&gt;Figma MCP Console&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Figma MCP Console?
&lt;/h2&gt;

&lt;p&gt;Figma MCP Console is a local MCP server that connects AI assistants directly with Figma Desktop.&lt;/p&gt;

&lt;p&gt;It works with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude CLI&lt;/li&gt;
&lt;li&gt;Claude Desktop&lt;/li&gt;
&lt;li&gt;Codex CLI&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;VS Code (GitHub Copilot)&lt;/li&gt;
&lt;li&gt;Windsurf&lt;/li&gt;
&lt;li&gt;Antigravity&lt;/li&gt;
&lt;li&gt;and any MCP-compatible client.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of relying on the Figma REST API, it communicates through a local bridge between the AI client and a Figma plugin.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no API token&lt;/li&gt;
&lt;li&gt;no API rate limits&lt;/li&gt;
&lt;li&gt;lower latency&lt;/li&gt;
&lt;li&gt;direct interaction with the currently opened Figma file&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;The biggest pain point wasn't generating code.&lt;/p&gt;

&lt;p&gt;It was getting the AI to faithfully reproduce the original design.&lt;/p&gt;

&lt;p&gt;Most tools would output something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;different icons&lt;/li&gt;
&lt;li&gt;different illustrations&lt;/li&gt;
&lt;li&gt;different spacing&lt;/li&gt;
&lt;li&gt;different assets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The layout looked similar, but it wasn't actually the same design.&lt;/p&gt;

&lt;p&gt;I wanted the AI to export the real assets directly from Figma instead of hallucinating replacements.&lt;/p&gt;




&lt;h2&gt;
  
  
  What can it do?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Figma → Code
&lt;/h3&gt;

&lt;p&gt;Paste a Figma frame link.&lt;/p&gt;

&lt;p&gt;The AI can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inspect the design&lt;/li&gt;
&lt;li&gt;export icons&lt;/li&gt;
&lt;li&gt;export images&lt;/li&gt;
&lt;li&gt;generate production-ready code&lt;/li&gt;
&lt;li&gt;compare the final implementation against a screenshot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of stopping after generating code, I encourage the AI to take a screenshot and compare it with the original Figma frame.&lt;/p&gt;

&lt;p&gt;This self-verification step dramatically improves the final result.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Requirement → Figma
&lt;/h3&gt;

&lt;p&gt;You can also work in the opposite direction.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Design a SaaS landing page with a hero section, pricing cards and footer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The AI creates the design directly inside Figma using Auto Layout.&lt;/p&gt;

&lt;p&gt;After drawing everything, it screenshots its own work and fixes visual mistakes automatically.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Design Token Synchronization
&lt;/h3&gt;

&lt;p&gt;The server can read Figma variables and design tokens.&lt;/p&gt;

&lt;p&gt;This makes it much easier to synchronize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;colors&lt;/li&gt;
&lt;li&gt;typography&lt;/li&gt;
&lt;li&gt;spacing&lt;/li&gt;
&lt;li&gt;themes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;with your application's design system.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Bulk Editing
&lt;/h3&gt;

&lt;p&gt;Instead of manually editing hundreds of layers, you can ask AI to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rename layers&lt;/li&gt;
&lt;li&gt;replace text&lt;/li&gt;
&lt;li&gt;reorganize frames&lt;/li&gt;
&lt;li&gt;update components&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Multiple Figma files? No problem.
&lt;/h2&gt;

&lt;p&gt;One feature I really wanted was support for multiple projects.&lt;/p&gt;

&lt;p&gt;Every AI session connects to the same local bridge.&lt;/p&gt;

&lt;p&gt;You can have multiple Figma files open simultaneously.&lt;/p&gt;

&lt;p&gt;The AI simply chooses the correct file based on your prompt.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Copy the primary color from the Design System file into the CTA button in the Landing Page file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No additional configuration is required.&lt;/p&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;There is no global installation.&lt;/p&gt;

&lt;p&gt;Simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; figma-mcp-console
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then import the Figma development plugin once.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;The project is built around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model Context Protocol (MCP)&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Figma Desktop Plugin API&lt;/li&gt;
&lt;li&gt;Local WebSocket bridge&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why not use the Figma API?
&lt;/h2&gt;

&lt;p&gt;The Figma API is excellent for many workflows.&lt;/p&gt;

&lt;p&gt;However, for interactive AI design sessions, I wanted something that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;works instantly&lt;/li&gt;
&lt;li&gt;avoids API authentication&lt;/li&gt;
&lt;li&gt;isn't affected by rate limits&lt;/li&gt;
&lt;li&gt;communicates directly with the currently opened document&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A local bridge turned out to be a much better fit.&lt;/p&gt;




&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;p&gt;Some of the features I'm currently working on include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;smarter asset extraction&lt;/li&gt;
&lt;li&gt;improved image matching&lt;/li&gt;
&lt;li&gt;better design token synchronization&lt;/li&gt;
&lt;li&gt;more editing operations&lt;/li&gt;
&lt;li&gt;improved multi-file workflows&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Feedback Welcome
&lt;/h2&gt;

&lt;p&gt;This project is still evolving, and I'd love feedback from developers using AI-assisted UI development.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hoangann2000/figma-mcp-console" rel="noopener noreferrer"&gt;https://github.com/hoangann2000/figma-mcp-console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;npm:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/figma-mcp-console" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/figma-mcp-console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have ideas, feature requests, or bug reports, feel free to open an issue or start a discussion.&lt;/p&gt;

&lt;p&gt;I'd love to hear how you're using MCP with Figma.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>claude</category>
      <category>figma</category>
    </item>
  </channel>
</rss>
