A FastMCP server connecting an IDE directly to the Figma Desktop App.
Project description
Figma fastMCP Server \U0001f3a8
An open-source Model Context Protocol (MCP) server that connects your IDE (like Cursor, Claude Desktop, or Antigravity) directly to the Figma Desktop App. This allows AI assistants to proactively generate and manipulate layouts, shapes, and designs directly inside your Figma canvas!
How it Works
The architecture consists of two parts running in tandem:
- Figma Plugin (
figma-plugin): Runs inside your Figma drawing canvas. It hosts a hidden websocket client to receive instructions. - FastMCP Python Server (
mcp-server): Runs as a background service through your IDE's MCP config. It exposes AI tools (e.g.create_rectangle,create_frame) and sends those commands to Figma via WebSockets.
Installation & Setup for Users
1. Start the Figma Plugin
You need the plugin running inside Figma to receive drawing commands. (If this plugin is published to Figma Community, link it here. Until then, use local dev mode):
- Download this repository.
- Open Figma Desktop App.
- Right-click anywhere in your design canvas > Plugins > Development > Import plugin from manifest.
- Select the
manifest.jsonfile inside thefigma-plugin/folder. - Run the MCP Link plugin from the plugins menu. Keep the small UI window open!
2. Configure Your IDE
You will need Python installed on your machine.
Add the following to your IDE's MCP configuration settings (e.g., mcp.json in Cursor/VSCode):
{
"mcpServers": {
"figma-generator": {
"command": "python",
"args": ["<PATH_TO_THIS_REPO>/figma_dash_mcp_server/server.py"]
}
}
}
(Make sure to install the python requirements using uv init or your preferred tool!)
3. Usage
Once your IDE reloads the MCP config, just ask the AI agent:
"Hey, can you use your Figma tools to create a red rectangle and a title text frame in Figma?"
The shapes will pop up inside your Figma desktop app instantly!
Development
To add new tools:
- Open
figma_dash_mcp_server/server.pyand create a new@mcp.tool()function. - Have the python tool send a new JSON method (like
create_circle) oversend_to_figma. - Open
figma-plugin/code.jsand add anelse if (toolName === 'create_circle')block to execute the physical drawing logic using the Figma Plugin API.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file figma_dash_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: figma_dash_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61c2dc4273b24635c12102325de7f53adc01b541e7d74711f87c80d8281bc0fd
|
|
| MD5 |
569eca7fe735fc5570b58da0f49cf064
|
|
| BLAKE2b-256 |
19cdc7e76855c34b4880cec6983621390b67bee485d3ea57b456b8866c3607e5
|
File details
Details for the file figma_dash_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: figma_dash_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
499adeada11eeff9566a2f20f19d75eb79091b5a946e36966e2e370603c609ce
|
|
| MD5 |
687e2c653f2f00f2f11aa76465c42909
|
|
| BLAKE2b-256 |
1c5121a1af505c225a96242c81e2e8fc1a6aef2566ca7149d73df1b80b433cab
|