「Figmaデータからコードの自動生成できたら良いのに!」 と思いますよね。
CursorではFigmaのスクショ画像からコード生成は可能でしたが、
細かなデザイン仕様を把握していないので結局一つ一つ修正する必要があることや、
スクショして貼り付けて説明してみたいなことが面倒に思っていました。
ただ最近、FigmaのMCP Serverなるものを知り、
使い方によってはかなり実装が楽にできたので共有します!
MCPについては下記の記事がとても参考になったので詳しくは割愛しますが、
AIと特定の外部サービス(今回はFigmaのAPI)とのやり取りを行えるようになる仕組みのことです。
https://zenn.dev/ks0318/articles/053b5bc1701c31
https://zenn.dev/takna/articles/mcp-server-tutorial-01-install
今回は下記のFigma MCP Serverを使用してFigmaのデザインデータを取得できるようにします🏃
https://github.com/GLips/Figma-Context-MCP
【2025/6/12追記】
Figmaの公式MCPサーバーが先日公開されました!!
公式のものを使用する方が安全かと思っており、下記のものを使用すると良さそうです。
この記事では非公式のFigma MCPサーバーの解説をしているため、参考程度にご覧いただければと思います。
https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Dev-Mode-MCP-Server
一応流れについて簡単に載せますが、
後述の設定をして試すとわかり良いと思います🙆♂️
それでは設定方法を解説します!
Figma の API にアクセスするためのアクセストークンを取得します。
(Figma公式の手順はこちら)

CursorのMCPの設定を行うファイルを作成します。
Cursor公式に記載されているように、下記のどちらかになるかと思います。
{プロジェクトルート}/.cursor/mcp.json~/.cursor/mcp.json記載する内容についてはFigma-Context-MCPに記載されていますが、下記のようなものを記述します。figma-api-keyのYOUR_KEYの箇所はご自身のものに書き換えてください。
{"mcpServers":{"Framelink Figma MCP":{"command":"npx","args":["-y","figma-developer-mcp","--figma-api-key=YOUR-KEY","--stdio"]}}}{"mcpServers":{"figma-developer-mcp":{"command":"npx","args":["-y","figma-developer-mcp","--stdio"],"env":{"FIGMA_API_KEY":"<your-figma-api-key>"}}}}以上でセットアップは完了です!!
Cursor右上の歯車の設定ボタンから MCP を開くと、Framelink Figma MCPが設定されているかと思います。
Figma MCP Server公式に載っているように、
適当な箇所で「Copy link to selection」を選択してURLを取得しましょう。
そして、下記のようにCursorのAgentモードで指示をすると実装してくれるはずです!
@https://www.figma.com/design/test?node-id=0000 上記のFigmaデザインからUIを実装して。↓Cursor Agentのレスポンス。MCPを使用している。
まだ少ししか試していませんが、いくつか学んだことがあるので載せておきます。
---description: Apply this rule when implementing UIglobs:alwaysApply:false---# UI実装する際のルールUIの実装を行う際は、以下のルールに従ってください。## デザインシステムの利用を優先する-`packages/design_system_ui` ディレクトリに デザインシステム が定義されています。- デザインシステムのコードについては書き換えないでください。- ほとんどのUIコンポーネントはデザインシステム内に存在するため、実装前に後述の「デザインシステムのコンポーネント一覧」を確認して当てはまるものがないか確認してください。- デザインシステム内に該当するコンポーネントがない場合のみ、独自の実装を行ってください。- 色については`@design_system_colors.dart` に定義されています。- フォントについては`@design_system_text_style.dart` に定義されています。## Figma MCPを使用するルール- FigmaのURLが指定された場合、Figma MCPを利用してください。- ファイルの内容すべてを取得すると時間がかかることや容量の大きさからエラーが起きるので、指定されたnodeのみの取得など取得範囲を絞ってください。- Figmaではデザインシステムのコンポーネントが使用されていることが多いので、後述の「デザインシステムのコンポーネント一覧」を確認して当てはまるものを利用してください。- 当てはまるものがない場合のみ独自のコンポーネントを実装してください。- テキスト・色の値は必ずデザインファイルと同じもの、かつデザインシステムに定義されているものを使用して実装してください。- PaddingやMarginなどの値は必ずデザインファイルと同じものを実装してください。## UIの実装のルール- 適切な単位でSectionを分けるようにして、bodyの中身が大きくなりすぎないようにしてください。- BottomNavigationBarについてはすでに`@app_navigation_bar.dart` に実装済みのため、Figmaデザインで指定されても実装をする必要はありません。- Riverpodを使用する実装はUI構築では行わなくて良いです。- 同じような構成のUIを実装する際は、共通のコンポーネントを作成してください。## UIの実装場所UIは`lib/presentation/` ディレクトリ配下に実装されています。ディレクトリ構造は以下のようになっています。presentation/└── xxx/ # 機能ごとに xxx ページのディレクトリを作成 ├── xxx_page.dart # ページ本体。Scaffold などの基本的なレイアウトのみを記述 ├── xxx_body.dart # Scaffold の body を管理 ├── components/ # body のセクションやコンポーネントを管理する## 画像ファイルについて- 画像ファイルは`assets`ディレクトリに格納しています。- 既存のディレクトリに実装する機能が存在しない場合のみ新しいディレクトリを作成してください。- ディレクトリを作成した場合は`@pubspec.yaml` に追記する必要があることを注意してください。- また、`flutter_gen`パッケージを使用している関係で、画像ファイルを追加したら`build_runner`を実行する必要があります。- 必ず、UIの実装上は`Image.assets('')` のように直書きでパスを指定するのではなく、`Assets.path` の形式で`flutter_gen`を使用した書き方にしてください。- Figmaから画像が取得できる場合は取得してください。## 参考にするファイルについてUIの実装方法については下記の画面の実装を参考にしてください。-`@main_page.dart`-`@main_section.dart`# デザインシステムのコンポーネント一覧-**app_bar.dart** - アプリバー-**bottom_navigation_bar.dart** - 下部ナビゲーションバー-**chip.dart** - チップコンポーネント-**dialog.dart** - ダイアログ...小さいタスクであれば一発で思った通りの実装をしてくれたのに感動し、記事を書きました!
ただ、画面全体を一気にを実装させたりすると「結構違うな…」という印象はあり、
今後さらによくなっていくことを期待しています…!
いろんな方が記事を書いているかもしれず、
二番煎じの記事であったらすみません!🙇♂️
※勢いで記事を書いており、実はまだ少ししかFigma MCPを触っていません🙏
もし「こうすると結果よくなるよー!」などの知見がありましたら共有いただければ嬉しいです!
※今回使用したFigma MCP Serverはこちらに記載のCommunity Serversであり、コードざっくり読んだ感じも問題はないのでは…と思っていますが使用する際は一応自己責任でお願いしますっ!
バッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。
