Figme について
Figmeは、保存済みのFigmaデザインを調べるエージェント向けのローカルMCPサーバーです。`.fig`ファイルをオフラインで解析し、構造化された情報と画像を提供します。
主な機能
- 01`.fig`ファイルのオフライン解析
- 02レイヤー、レイアウト、スタイルの確認
- 03コンポーネントと変数の詳細表示
- 04レイヤーとテキストの検索
- 05レイヤーをPNGまたはSVGに描画
活用シーン
- 01Figma APIトークンなしでデザインを確認
- 02デザインファイル内のコンポーネントやテキストを検索
- 03デザイントークンをCSS用に抽出
- 04画面を描画して見た目を比較
MCP 対応
ローカルの`.fig`ファイルを読み取り、検索、確認、描画するツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| file | string | はい | .fig / .figma ファイルのパス(絶対パス、またはサーバーの CWD からの相対パス)。 |
詳細
figme
AI エージェントが Figma の .fig ファイルを読み取れるようにするMCPサーバーです。オフラインで動作し、Figma アカウントや API トークンは必要ありません。
Figma からデザインを .fig ファイルとして保存すると、エージェントはレイヤーやレイアウト、色、テキスト、コンポーネント、デザイントークン、画像など、ファイル内のすべてを読み取れます。figme は任意のフレームを画像として描画することもできるため、エージェントが作成したものとデザインを比較できます。
you: "what does the tab component in design.fig look like?"
fig_overview → 10 pages, 2,046 components, 273 variables, 212 images
fig_find → "lv2/tab/large" is 2:1337, on page "Page 1"
fig_style → display:flex, direction:row, gap:8, padding:"8px 16px",
cornerRadius:4, stroke #FFFFFF bound to variable "tab/large/underline"
(active #FFFFFF / inactive #333333)
figme を使う理由
- アカウント、トークン、ネットワークは不要です。 figme はディスク上のファイルを読み取り、figma.com には一切アクセスしません。
- ファイル内のすべてを取得できます。 レイヤーとジオメトリ、自動レイアウト、塗り、線、エフェクト、複数のスタイルが混在するテキスト、コンポーネントとインスタンス、変数、プロトタイプのリンク、画像に対応しています。レイアウトは CSS フレックスボックスとして、色は 16 進数として取得でき、変数に紐づいた色にはトークン名が保持されます。
- 数値だけでなく画像も取得できます。
fig_renderは任意のレイヤーを PNG または SVG として描画します。 - 応答はコンパクトです。 ノードが 116,000 個あるファイルでも、応答は約 20 KB に収まります。結果はデフォルトで浅い階層に制限され、フィルタリングやページ分割が可能です。
- Figma の更新にも強い設計です。 すべての
.figファイルには、そのファイルを記述するスキーマが含まれており、figme はそのスキーマを使ってファイルをデコードするため、Figma が後からフィールドを追加しても問題ありません。
クイックスタート
Node.js 22.15 以降が必要です。
1. デザインを .fig ファイルとして保存します。 Figma で File → Save local copy… を選択します。コミュニティファイルの場合は、先に Open in Figma をクリックしてください。
2. figme をエージェントに追加します。 Claude Code の場合:
claude mcp add figme -- npx -y figme-mcp
Cursor、VS Code、Windsurf、その他のクライアントについては、クライアントの設定を参照してください。
3. 依頼します。 ファイルのフルパスを伝え、Figma のリンクがあれば貼り付けます。
figme を使って、/Users/me/Desktop/App.fig を読み込み、このフレームを React コンポーネントとして作成してください: https://www.figma.com/design/AbC123/App?node-id=3017-121
あとはエージェントがツールを選んで処理します。ほかにも、次のようなことを試せます。
- 「/Users/me/Desktop/App.fig のページと、最もよく使われているコンポーネントを一覧表示してください。」
- 「/Users/me/Desktop/App.fig の色の変数を CSS カスタムプロパティに変換してください。」
- 「/Users/me/Desktop/App.fig のサインイン画面を /Users/me/Desktop/sign-in.png に描画してください。」
クライアントの設定
どのクライアントでも同じコマンド npx -y figme-mcp を実行します。設定する場所だけが異なります。
Claude Code
claude mcp add figme -- npx -y figme-mcp # this project
claude mcp add -s user figme -- npx -y figme-mcp # every project
リポジトリで作業する全員がサーバーを共有するには、リポジトリのルートに .mcp.json をコミットします。
{
"mcpServers": {
"figme": { "command": "npx", "args": ["-y", "figme-mcp"] }
}
}
VS Code と JetBrains 用の Claude Code 拡張機能でも、同じ設定を使用します。エディター独自の MCP 設定は読み込みません。
Cursor
すべてのプロジェクトに適用する場合は ~/.cursor/mcp.json に、1 つのプロジェクトだけに適用する場合は .cursor/mcp.json に、次の内容を追加します。
{
"mcpServers": {
"figme": { "command": "npx", "args": ["-y", "figme-mcp"] }
}
}
VS Code (GitHub Copilot)
ターミナルから実行します。
code --add-mcp '{"name":"figme","command":"npx","args":["-y","figme-mcp"]}'
または、次の内容を .vscode/mcp.json に追加します。VS Code では mcpServers ではなく servers というキーを使います。
{
"servers": {
"figme": { "type": "stdio", "command": "npx", "args": ["-y", "figme-mcp"] }
}
}
次に、チャットビューを Agent モードに切り替えます。
Windsurf
次の内容を ~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"figme": { "command": "npx", "args": ["-y", "figme-mcp"] }
}
}
その他のクライアント
ローカル(stdio)MCP サーバーを起動できるクライアントであれば、どれでも使用できます。次の内容を設定してください。
{ "command": "npx", "args": ["-y", "figme-mcp"] }
設定ファイルの場所は、クライアントのリリースによって変わる場合があります。上記のパスが見つからない場合は、お使いのクライアントの MCP ドキュメントを確認してください。
Windows の場合、クライアントによっては npx を自動で見つけられないことがあります。サーバーが起動しない場合は、cmd 経由で実行してください。
{ "command": "cmd", "args": ["/c", "npx", "-y", "figme-mcp"] }
ヒント
-
リンクがあっても、ファイルのフルパスを必ず指定してください。 Figma のリンクだけでは、figme にディスク上のどのファイルに対応するのか伝わりません。また、相対パスはクライアントがサーバーを起動した場所を基準に解決されます。
-
エージェントに Figma のリンクを開かせないでください。 ページへのログインが必要なため、エージェントは有用な情報を得られず、URL 内の単語からデザインをでっち上げることがあります。figme はエージェントにリンクを開かないよう指示しますが、それでも開こうとする場合は止めてください。
-
「Node not found」 は通常、保存したファイルがリンク先のファイルと異なることを意味します。
fig_overviewが報告するドキュメント名とリンク内の名前を比べるか、代わりに名前でレイヤーを探すようエージェントに依頼してください。 -
大きなファイルにはメモリが必要です。 39 MB の
.figは、解析後に約 900 MB の RAM を使用し、figme は解析済みファイルを最大 4 つ保持します。マシンのメモリが少ない場合は、1 つだけにしてください。{ "command": "npx", "args": ["-y", "figme-mcp", "--max-files", "1"] }
ツール
エージェントがツールを自動で選ぶため、指定する必要はありません。
| ツール | エージェントが取得できる情報 |
|---|---|
fig_overview | ページ、ノード数、ファイル内のコンポーネント、変数、画像の数 |
fig_tree | ノード配下のレイヤーツリー。数レベルずつ表示します |
fig_node | 1 つのレイヤーの詳細情報:サイズ、位置、角の半径、自動レイアウト、子要素 |
fig_find | 名前またはテキストに指定した文字列を含むレイヤー |
fig_text | フォントと混在するスタイルを含む、すべてのテキスト |
fig_style | 塗り、線、エフェクト、タイポグラフィ。自動レイアウトは CSS のフレックスボックスとして表示します |
fig_components | コンポーネントとそのプロパティ、および各コンポーネントの使用頻度 |
fig_instance | インスタンスがコンポーネントから変更している内容 |
fig_variables | デザイントークン:すべてのコレクション、モード、値 |
fig_image | 埋め込み画像とファイルのサムネイル |
fig_blob | 他のツールでデコードできないものの生のベクターデータ |
fig_render | 任意のレイヤーまたはページの PNG または SVG 画像 |
各ツールのパラメーターと応答例は、docs/tools.md にあります。
制限事項
- 読み取り専用です。 figme が
.figを変更することはありません。fig_imageまたはfig_renderに保存を依頼した場合にのみ、ファイルを書き込みます。 - ライブリンクではなく、スナップショットです。
.figには、保存時点のデザインが保持されます。デザインを変更したら、もう一度保存してください。figme は新しいファイルを読み込みます。 - レンダリングは近似であり、ピクセル単位で完全に一致するわけではありません。
fig_renderは背景のぼかしや角度付きグラデーションなど一部のエフェクトを近似し、絵文字など一部の要素を省略します。各レンダリングには、近似または省略した項目が記載されます。docs/rendering.md を参照してください。 - 他のファイルのライブラリは含まれません。 別のファイルから公開されたスタイル、変数、コンポーネントは、値を含まない参照として表示されます。
- ベクターパスはデコードされません。
fig_blobは生のバイト列を返します。
貢献
イシューやプルリクエストを歓迎します。CONTRIBUTING.md では、ソースからのビルド方法とテストの実行方法、パーサーの仕組みを説明しています。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。