Figma MCP Server

by JayArrowz
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports loading environment variables from .env files to configure the MCP server, particularly for storing the Figma API token.

  • Provides a complete set of Figma API methods for accessing and manipulating Figma designs, including file management, comment interactions, team/project organization, component operations, style management, webhook configuration, and library analytics tracking.

Figma MCP Server

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.

Tools

This server implements all Figma API methods as MCP tools:

User Methods

  1. figma_get_me - Get the current user

File Methods

  1. figma_get_file - Get a Figma file by key
  2. figma_get_file_nodes - Get specific nodes from a Figma file
  3. figma_get_images - Render images from a Figma file
  4. figma_get_image_fills - Get image fills in a Figma file
  5. figma_get_file_versions - Get version history of a Figma file

Comment Methods

  1. figma_get_comments - Get comments in a Figma file
  2. figma_post_comment - Add a comment to a Figma file
  3. figma_delete_comment - Delete a comment from a Figma file
  4. figma_get_comment_reactions - Get reactions for a comment
  5. figma_post_comment_reaction - Add a reaction to a comment
  6. figma_delete_comment_reaction - Delete a reaction from a comment

Team and Project Methods

  1. figma_get_team_projects - Get projects in a team
  2. figma_get_project_files - Get files in a project

Component Methods

  1. figma_get_team_components - Get components in a team
  2. figma_get_file_components - Get components in a file
  3. figma_get_component - Get a component by key
  4. figma_get_team_component_sets - Get component sets in a team
  5. figma_get_file_component_sets - Get component sets in a file
  6. figma_get_component_set - Get a component set by key

Style Methods

  1. figma_get_team_styles - Get styles in a team
  2. figma_get_file_styles - Get styles in a file
  3. figma_get_style - Get a style by key

Webhook Methods (V2 API)

  1. figma_post_webhook - Create a webhook
  2. figma_get_webhook - Get a webhook by ID
  3. figma_update_webhook - Update a webhook
  4. figma_delete_webhook - Delete a webhook
  5. figma_get_team_webhooks - Get webhooks for a team

Library Analytics Methods

  1. figma_get_library_analytics_component_usages - Get library analytics component usage data
  2. figma_get_library_analytics_style_usages - Get library analytics style usage data
  3. figma_get_library_analytics_variable_usages - Get library analytics variable usage data

Installation

Installing via Smithery

To install mcp-figma for Claude Desktop automatically via Smithery:

npx @smithery/cli@latest install @jayarrowz/mcp-figma --client claude

Prerequisites

  • Node.js (v16 or later)
  • npm or yarn

Installing the package

# 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

Setup

To use this MCP server, you need to set up your Figma API token. You can do this in one of three ways:

1. Environment Variable

Create a .env file in the project root or set the environment variable directly:

FIGMA_API_KEY=your_figma_api_key

2. Command Line Arguments

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

Usage with Claude Desktop

Add the following to your claude_desktop_config.json:

Using npx

{ "mcpServers": { "figma": { "command": "npx", "args": ["@jayarrowz/mcp-figma", "--figma-token", "your_figma_api_key"] } } }

Direct Node.js (with environment variable)

{ "mcpServers": { "figma": { "command": "node", "args": ["/path/to/mcp-figma/dist/index.js"], "env": { "FIGMA_API_KEY": "your_figma_api_key" } } } }

Direct Node.js (with command-line argument)

{ "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.

Examples

Get a Figma File

// Get a Figma file const result = await callTool("figma_get_file", { fileKey: "abcXYZ123" });

Get Comments from a File

// Get comments from a file const comments = await callTool("figma_get_comments", { fileKey: "abcXYZ123", as_md: true });

Create a Webhook

// 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" });

Development

# 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

License

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

Provides a complete set of Figma API methods through the Model Context Protocol, allowing interaction with Figma files, components, styles, and other Figma resources.

  1. Tools
    1. User Methods
    2. File Methods
    3. Comment Methods
    4. Team and Project Methods
    5. Component Methods
    6. Style Methods
    7. Webhook Methods (V2 API)
    8. Library Analytics Methods
  2. Installation
    1. Installing via Smithery
    2. Prerequisites
    3. Installing the package
  3. Setup
    1. 1. Environment Variable
    2. 2. Command Line Arguments
    3. Usage with Claude Desktop
  4. Examples
    1. Get a Figma File
    2. Get Comments from a File
    3. Create a Webhook
  5. Development
    1. License