MCP Server for interacting with the Figma API. This server provides a complete set of Figma API methods through the Model Context Protocol. Sometimes on large figma files you might have to tell it to use depth = 1 for figma_get_file then increase when it needs more.
This server implements all Figma API methods as MCP tools:
-
figma_get_me
- Get the current user
-
figma_get_file
- Get a Figma file by key -
figma_get_file_nodes
- Get specific nodes from a Figma file -
figma_get_images
- Render images from a Figma file -
figma_get_image_fills
- Get image fills in a Figma file -
figma_get_file_versions
- Get version history of a Figma file
-
figma_get_comments
- Get comments in a Figma file -
figma_post_comment
- Add a comment to a Figma file -
figma_delete_comment
- Delete a comment from a Figma file -
figma_get_comment_reactions
- Get reactions for a comment -
figma_post_comment_reaction
- Add a reaction to a comment -
figma_delete_comment_reaction
- Delete a reaction from a comment
-
figma_get_team_projects
- Get projects in a team -
figma_get_project_files
- Get files in a project
-
figma_get_team_components
- Get components in a team -
figma_get_file_components
- Get components in a file -
figma_get_component
- Get a component by key -
figma_get_team_component_sets
- Get component sets in a team -
figma_get_file_component_sets
- Get component sets in a file -
figma_get_component_set
- Get a component set by key
-
figma_get_team_styles
- Get styles in a team -
figma_get_file_styles
- Get styles in a file -
figma_get_style
- Get a style by key
-
figma_post_webhook
- Create a webhook -
figma_get_webhook
- Get a webhook by ID -
figma_update_webhook
- Update a webhook -
figma_delete_webhook
- Delete a webhook -
figma_get_team_webhooks
- Get webhooks for a team
-
figma_get_library_analytics_component_usages
- Get library analytics component usage data -
figma_get_library_analytics_style_usages
- Get library analytics style usage data -
figma_get_library_analytics_variable_usages
- Get library analytics variable usage data
- Node.js (v16 or later)
- npm or yarn
# Clone the repository
git clone https://github.com/jayarrowz/mcp-figma.git
cd mcp-figma
# Install dependencies
npm install
# Build the package
npm run build
To use this MCP server, you need to set up your Figma API token. You can do this in one of three ways:
Create a .env
file in the project root or set the environment variable directly:
FIGMA_API_KEY=your_figma_api_key
When starting the server, you can pass your Figma API token as a command-line argument:
# Using the long form
node dist/index.js --figma-token YOUR_FIGMA_TOKEN
# Or using the short form
node dist/index.js -ft YOUR_FIGMA_TOKEN
Add the following to your claude_desktop_config.json
:
{
"mcpServers": {
"figma": {
"command": "npx",
"args": ["@jayarrowz/mcp-figma", "--figma-token", "your_figma_api_key"]
}
}
}
{
"mcpServers": {
"figma": {
"command": "node",
"args": ["/path/to/mcp-figma/dist/index.js"],
"env": {
"FIGMA_API_KEY": "your_figma_api_key"
}
}
}
}
{
"mcpServers": {
"figma": {
"command": "node",
"args": ["/path/to/mcp-figma/dist/index.js", "--figma-token", "your_figma_api_key"]
}
}
}
Replace /path/to/mcp-figma
with the actual path to your repository.
// Get a Figma file
const result = await callTool("figma_get_file", {
fileKey: "abcXYZ123"
});
// Get comments from a file
const comments = await callTool("figma_get_comments", {
fileKey: "abcXYZ123",
as_md: true
});
// Create a webhook
const webhook = await callTool("figma_post_webhook", {
event_type: "FILE_UPDATE",
team_id: "12345",
endpoint: "https://example.com/webhook",
passcode: "your_passcode_here",
description: "File update webhook"
});
# Install dependencies
npm install
# Start the server in development mode
npm start
# Build the server
npm run build
# Run with a Figma API token
npm start -- --figma-token YOUR_FIGMA_TOKEN
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.