Integrations
Used as the runtime environment for the MCP server, enabling the execution of TypeScript code that powers the Figma integration.
Enables Cursor AI to interact with Figma for reading designs and modifying them programmatically, with tools for creating elements, styling, layout management, and component manipulation.
カーソルでFigma MCPと会話
このプロジェクトは、Cursor AI と Figma 間のモデルコンテキストプロトコル (MCP) 統合を実装し、Cursor が Figma と通信してデザインを読み取り、プログラムで変更できるようにします。
https://github.com/user-attachments/assets/129a14d2-ed73-470f-9a4c-2240b2a4885c
プロジェクト構造
src/talk_to_figma_mcp/
- Figma 統合用の TypeScript MCP サーバーsrc/cursor_mcp_plugin/
- カーソルと通信するためのFigmaプラグインsrc/socket.ts
- MCP サーバーと Figma プラグイン間の通信を容易にする WebSocket サーバー
始める
- まだインストールしていない場合は、Bun をインストールしてください。
- セットアップを実行すると、カーソルのアクティブプロジェクトにMCPもインストールされます。
- Websocketサーバーを起動する
- MCPサーバー
- Figmaプラグインをインストールする
クイックビデオチュートリアル
設計自動化の例
テキストコンテンツの一括置換
一括テキスト置換機能の開発にご協力いただいた@dusskaparkに感謝します。デモ動画はこちらです。
インスタンスオーバーライドの伝播@dusskaparkによるもう一つの貢献は、単一のコマンドで、ソースインスタンスから複数のターゲットインスタンスにコンポーネントインスタンスのオーバーライドを伝播することです。この機能により、類似したカスタマイズが必要なコンポーネントインスタンスを扱う際の反復的な設計作業が大幅に削減されます。デモビデオをご覧ください。
手動セットアップとインストール
MCP サーバー: カーソルとの統合
~/.cursor/mcp.json
の Cursor MCP 構成にサーバーを追加します。
WebSocketサーバー
WebSocket サーバーを起動します。
Figmaプラグイン
- Figmaで、プラグイン > 開発 > 新しいプラグインに移動します
- 「既存のプラグインをリンク」を選択
src/cursor_mcp_plugin/manifest.json
ファイルを選択します。- プラグインはFigma開発プラグインで利用できるようになります。
Windows + WSL ガイド
- PowerShell経由でbunをインストールする
src/socket.ts
のホスト名0.0.0.0
のコメントを解除します。
- Webソケットを起動する
使用法
- WebSocketサーバーを起動する
- カーソルにMCPサーバーをインストールする
- Figmaを開いてカーソルMCPプラグインを実行します。
join_channel
を使用してチャネルに参加し、プラグインを WebSocket サーバーに接続します。- MCPツールを使ってFigmaと通信するにはカーソルを使用します
MCPツール
MCP サーバーは、Figma と対話するための次のツールを提供します。
書類選考
get_document_info
- 現在のFigmaドキュメントに関する情報を取得しますget_selection
- 現在の選択に関する情報を取得するread_my_design
- パラメータなしで現在の選択に関する詳細なノード情報を取得しますget_node_info
- 特定のノードに関する詳細情報を取得するget_nodes_info
- ノードIDの配列を指定して複数のノードの詳細情報を取得します
注釈
get_annotations
- 現在のドキュメントまたは特定のノード内のすべての注釈を取得しますset_annotation
- マークダウンサポートを使用して注釈を作成または更新しますset_multiple_annotations
- 複数のアノテーションを効率的に一括作成/更新するscan_nodes_by_types
- 特定のタイプのノードをスキャンします(注釈ターゲットを見つけるのに役立ちます)
プロトタイピングと接続
get_reactions
- 視覚的なハイライトアニメーションを使用してノードからすべてのプロトタイプ反応を取得しますset_default_connector
- コピーした FigJam コネクタを、接続を作成するためのデフォルトのコネクタ スタイルとして設定します (接続を作成する前に設定する必要があります)create_connections
- プロトタイプフローまたはカスタムマッピングに基づいて、ノード間にFigJamコネクタラインを作成します。
要素の作成
create_rectangle
- 位置、サイズ、オプションの名前を指定して新しい四角形を作成しますcreate_frame
- 位置、サイズ、オプションの名前を指定して新しいフレームを作成しますcreate_text
- カスタマイズ可能なフォントプロパティを持つ新しいテキストノードを作成します
テキストコンテンツの変更
scan_text_nodes
- 大規模なデザインのためにインテリジェントなチャンク化を使用してテキストノードをスキャンしますset_text_content
- 単一のテキストノードのテキストコンテンツを設定するset_multiple_text_contents
- 複数のテキストノードを効率的に一括更新する
自動レイアウトと間隔調整
set_layout_mode
- フレームのレイアウト モードとラップ動作を設定します (NONE、HORIZONTAL、VERTICAL)set_padding
- 自動レイアウトフレームのパディング値(上、右、下、左)を設定しますset_axis_align
- 自動レイアウトフレームの主軸とカウンター軸の位置合わせを設定しますset_layout_sizing
- 自動レイアウトフレームの水平および垂直のサイズ変更モードを設定します (FIXED、HUG、FILL)set_item_spacing
- 自動レイアウトフレーム内の子アイテム間の距離を設定する
スタイリング
set_fill_color
- ノードの塗りつぶし色を設定する (RGBA)set_stroke_color
- ノードのストロークの色と太さを設定するset_corner_radius
- ノードのコーナー半径を設定します。コーナーごとのオプション制御も使用できます。
レイアウトと構成
move_node
- ノードを新しい位置に移動するresize_node
- 新しい寸法でノードのサイズを変更するdelete_node
- ノードを削除するdelete_multiple_nodes
- 複数のノードを一度に効率的に削除しますclone_node
- オプションの位置オフセットで既存のノードのコピーを作成します
コンポーネントとスタイル
get_styles
- ローカルスタイルに関する情報を取得するget_local_components
- ローカルコンポーネントに関する情報を取得するcreate_component_instance
- コンポーネントのインスタンスを作成するget_instance_overrides
- 選択したコンポーネントインスタンスからオーバーライドプロパティを抽出しますset_instance_overrides
- 抽出したオーバーライドをターゲットインスタンスに適用する
エクスポートと詳細設定
export_node_as_image
- ノードを画像(PNG、JPG、SVG、またはPDF)としてエクスポートします - 現在、テキストとしてbase64を返す画像のサポートは限定的です
接続管理
join_channel
- Figmaと通信するために特定のチャンネルに参加する
MCPプロンプト
MCP サーバーには、複雑な設計タスクをガイドするヘルパー プロンプトがいくつか含まれています。
design_strategy
- Figma デザインを扱うためのベストプラクティスread_design_strategy
- Figma のデザインを読むためのベストプラクティスtext_replacement_strategy
- Figmaデザインにおけるテキスト置換の体系的なアプローチannotation_conversion_strategy
- 手動の注釈をFigmaのネイティブ注釈に変換するための戦略swap_overrides_instances
- Figma のコンポーネントインスタンス間でオーバーライドを転送するための戦略reaction_to_connector_strategy
- 'get_reactions'の出力を使用してFigmaプロトタイプ反応をコネクタラインに変換し、'create_connections'の使用を順番にガイドする戦略
発達
Figmaプラグインの構築
- Figma プラグイン ディレクトリに移動します。
- code.jsとui.htmlを編集する
ベストプラクティス
Figma MCP を使用する場合:
- コマンドを送信する前に必ずチャンネルに参加してください
- まず
get_document_info
を使ってドキュメントの概要を取得します - 変更前に
get_selection
で現在の選択内容を確認する - ニーズに応じて適切な作成ツールを使用します。
- コンテナ用の
create_frame
- 基本図形の
create_rectangle
- テキスト要素の
create_text
- コンテナ用の
get_node_info
を使用して変更を確認する- 一貫性を保つために可能な場合はコンポーネントインスタンスを使用する
- すべてのコマンドは例外をスローする可能性があるため、エラーを適切に処理します。
- 大きなデザインの場合:
scan_text_nodes
でチャンクパラメータを使用する- WebSocket の更新を通じて進行状況を監視する
- 適切なエラー処理を実装する
- テキスト操作の場合:
- 可能な場合はバッチ操作を使用する
- 構造的な関係を考慮する
- 対象を絞ったエクスポートで変更を検証する
- 従来の注釈を変換する場合:
- テキストノードをスキャンして番号付きマーカーと説明を識別する
scan_nodes_by_types
を使用して、アノテーションが参照する UI 要素を見つけます。- パス、名前、または近接性を使用してマーカーをターゲット要素と一致させます
get_annotations
を使用してアノテーションを適切に分類するset_multiple_annotations
を使用してネイティブ アノテーションを一括作成する- すべての注釈がターゲットに適切にリンクされていることを確認する
- 変換が成功したら、従来の注釈ノードを削除します。
- プロトタイプの麺を FigJam コネクタとして視覚化します。
get_reactions
を使用してプロトタイプフローを抽出します。set_default_connector
でデフォルトのコネクタを設定する。- 明確な視覚的なフロー マッピングを実現するために、
create_connections
を使用してコネクタ ラインを生成します。
ライセンス
マサチューセッツ工科大学
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Cursor AI が Figma と通信できるようにする MCP サーバー統合により、ユーザーは自然言語コマンドを使用してデザインを読み取り、プログラムで変更できるようになります。
Related Resources
Related MCP Servers
- -securityAlicense-qualityA MCP server that integrates with Cursor IDE to generate images based on text descriptions using JiMeng AI, allowing users to create and save custom images directly within their development environment.Last updated a month ago82PythonMIT License
- AsecurityFlicenseAqualityEnables users to control the cursor in Figma through verbal commands using an agentic AI agent, streamlining the design process with a new interaction method.Last updated a month ago195,1851JavaScript
- -securityFlicense-qualityEnables Cursor AI to interact with Figma designs, allowing users to read design information and programmatically modify elements through natural language commands.Last updated 2 months agoTypeScript
- -securityAlicense-qualityGives AI-powered coding tools like Cursor, Windsurf, and Cline access to Figma design files, enabling more accurate code generation directly from Figma designs.Last updated 2 months ago14,596TypeScriptMIT License