figmind

figmind

MCP server that connects AI clients to Figma, enabling real-time reading, creation, and modification of designs using natural language.

Category
访问服务器

README

<div align="center"> <img src="./assets/banner.png" alt="figmind" width="100%" />

<br/> <br/>

npm version npm downloads License: MIT Node.js MCP

<br/>

<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32" />

<br/>

Give your AI the ability to think in Figma.

figmind connects any MCP-compatible AI client to Figma — letting it read, create, and modify designs in real time using natural language.

<br/>

Getting Started · Available Tools · Architecture · Contributing

<br/> </div>


Demo

GitHub Sponsors

figmind demo


How it works

Your AI  ←—— MCP ——→  figmind server  ←—— WebSocket ——→  Figma Plugin  ←——→  Canvas

figmind runs a local MCP server your AI can call. A companion Figma plugin bridges the WebSocket connection directly to your open file. All traffic stays on your machine — no cloud relay, no third-party API.


Getting Started

Requirements


Step 1 — Configure your MCP client

One-click install for Cursor:

<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32" />

Or manually — open ~/.cursor/mcp.json and add:

{
  "mcpServers": {
    "figmind": {
      "command": "npx",
      "args": ["--yes", "figmind@latest"]
    }
  }
}
OS Config path
macOS ~/.cursor/mcp.json
Windows %APPDATA%\Cursor\mcp.json
Linux ~/.config/Cursor/mcp.json

Restart Cursor. The first run downloads figmind automatically (~5 seconds).

Using comment tools? Add your Figma personal access token:

"env": { "FIGMA_TOKEN": "your-figma-personal-access-token" }

Generate one at Figma → Account Settings → Security → Personal access tokens.


Step 2 — Install the Figma plugin

  1. Clone this repository
  2. Run yarn install && yarn build:plugin
  3. Open any file in Figma Desktop
  4. Go to Plugins → Development → Import plugin from manifest
  5. Select packages/figma-plugin/manifest.json
  6. Run Figma MCP Bridge — the indicator turns green when connected

Step 3 — Start designing with AI

With the plugin running and Cursor open, just ask:

Create a frame called "Hero" — 1440×900, centered on the canvas
Add a text node "Welcome back" at x:80, y:120, 32px Inter bold
List all color variable collections in this file
Apply the variable "color/primary" to the fills of node [id]
Create a mobile login screen with email and password fields
Review the design of the screen with node id [id] and fix spacing issues
Generate a 5-screen onboarding flow for a fitness app

Available Tools

Canvas

Tool Description
create_frame Creates a new frame on the canvas
create_text Creates a text node
create_from_html Builds a node tree from HTML/CSS markup
get_file_context Returns a summary of the current file
get_page_components Lists all components on the current page

Nodes

Tool Description
get_node Returns a node's full data by ID
get_children Lists a node's direct children
get_full_tree Returns the full subtree of a node
find_nodes Searches nodes by name or type
set_node_property Updates position, size, fills, strokes, opacity, and more
move_node Moves a node to a different parent
delete_node Removes a node

Components

Tool Description
create_component_instance Instantiates a published component by key
swap_component Swaps a component instance to a different master

Design

Tool Description
get_design_system_kit Returns fonts, colors, and tokens from the file
get_all_used_styles Lists all styles used in the document
get_available_fonts Lists all available fonts

Variables

Tool Description
get_variable_collections Lists all variable collections
get_variables Lists variables, optionally filtered by collection
apply_variable_to_node Binds a variable to a node property
get_library_variables Lists variables from connected libraries

Prototype

Tool Description
set_reactions Sets prototype reactions (links, animations) on a node

Export

Tool Description
export_node Exports a node as an image (returns base64)
export_batch Exports multiple nodes at once
export_page Exports the full page

Comments (requires FIGMA_TOKEN)

Tool Description
create_comment Creates a comment on the file
get_comments Lists all comments on the file

Built-in Prompts

figmind ships with three ready-to-use prompts:

Prompt Description
create-screen Generate a mobile screen following the project design system
review-screen Review a screen for design issues and layout problems
create-flow Generate a full multi-screen user flow for a feature

Architecture

packages/
├── mcp-server/      # Node.js — published to npm as figmind
│   └── src/
│       ├── index.ts        # Entry point (stdio transport)
│       ├── mcp.ts          # Server factory, registers all tools
│       ├── bridge.ts       # WebSocket bridge to Figma plugin
│       ├── prompts.ts      # Built-in prompts
│       └── tools/          # All MCP tool implementations
└── figma-plugin/    # Figma plugin — bridges commands to the canvas
    └── src/
        ├── code.ts         # Plugin main: executes all Figma API commands
        └── ui/ui.html      # Plugin UI (connection status indicator)

figmind uses the Model Context Protocol SDK over stdio, which means it works with any MCP-compatible client — not just Cursor.


Contributing

Contributions are very welcome! Here's how to get started:

git clone https://github.com/guhcostan/figma-mcp-bridge.git
cd figma-mcp-bridge
yarn install
yarn dev   # starts both the MCP server (watch mode) and plugin bundler

Running tests:

yarn test

Adding a new tool

  1. Create your tool in packages/mcp-server/src/tools/
  2. Register it in packages/mcp-server/src/mcp.ts
  3. Handle the command in packages/figma-plugin/src/code.ts
  4. Add tests in packages/mcp-server/src/tools/__tests__/

Publishing a New Version

Bump the version in packages/mcp-server/package.json, then:

git tag v1.0.1
git push --tags

GitHub Actions publishes to npm automatically on any v* tag.


License

MIT © Gustavo Costa

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选