Back to Browse

Figma MCP Server

DesignLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

A local MCP server with full Figma REST API coverage.

About

A local MCP server with full Figma REST API coverage.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 4 medium validity signals). 8 code issues detected. No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry. 8 finding(s) downgraded by scanner intelligence.

12 files analyzed · 9 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

Figma personal access tokenRequired

Environment variable: FIGMA_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-planetabhi-figma-mcp-server": {
      "env": {
        "FIGMA_API_KEY": "your-figma-api-key-here"
      },
      "args": [
        "-y",
        "figma-mcp-server"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Figma MCP Server

A local MCP server with full Figma REST API coverage. Works with Claude Desktop, Cursor, VS Code, the Gemini CLI, and any MCP client.

How it works

The server exposes the Figma REST API as MCP tools. Each endpoint is one tool. Tools are auto-discovered at startup from tools/figma/, so adding an endpoint is just adding a file. Every tool is self-describing with a JSON Schema, and required parameters are validated before each call. It runs over stdio by default (how desktop clients spawn it) or over SSE with the --sse flag. It ships with a single runtime dependency, the MCP SDK, and requires Bun.

Prerequisites

  • Bun (>= 1.2). Node is not supported.

Install

Available on npm and the official MCP Registry. Bun-native (raw TypeScript, uses Bun.Glob), so run it with bunx, not npx.

bunx figma-mcp-server

Or install it globally:

bun add -g figma-mcp-server

Figma API key

Create a personal access token in Figma under Settings > Security > Personal access tokens > Generate new token. Provide it as FIGMA_API_KEY, ideally in your client config's env block (see below).

Configure your client

Every client uses the same server. Point command at bunx, or its absolute path (which bunx) if the client cannot find it on PATH.

{
  "mcpServers": {
    "figma": {
      "command": "bunx",
      "args": ["figma-mcp-server"],
      "env": {
        "FIGMA_API_KEY": "your_figma_api_key_here"
      }
    }
  }
}

Config file locations:

  • Claude Desktop: Settings > Developer > Edit Config (claude_desktop_config.json)
  • Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json per project
  • Gemini CLI: ~/.gemini/settings.json
  • VS Code: .vscode/mcp.json, using the servers key with "type": "stdio"

Restart the client after editing its config.

Tool coverage

Full coverage of the Figma REST API (non-deprecated endpoints). 49 tools.

Files and nodes

  • get_figma_file, get_file_nodes, render_images, get_image_fills, get_file_meta, get_file_version_history

Variables (design tokens)

  • list_file_variables, get_published_variables, modify_variables

Components, component sets, styles

  • list_components, get_published_component_by_key, get_team_components
  • list_component_sets, get_component_set, get_team_component_sets
  • list_styles_in_file, get_published_style, get_team_styles

Comments and reactions

  • list_comments, post_comment, delete_comment
  • get_comment_reactions, post_comment_reaction, delete_comment_reaction

Projects and users

  • list_projects_in_team, list_files_in_project, get_project_meta, get_current_user

Dev resources

  • list_dev_resources, create_dev_resources, update_dev_resources, delete_dev_resource

Webhooks

  • get_webhooks, create_webhook, get_webhook, update_webhook, delete_webhook, get_webhook_requests

Library analytics

  • get_library_component_actions, get_library_component_usages
  • get_library_style_actions, get_library_style_usages
  • get_library_variable_actions, get_library_variable_usages

Organization (Enterprise)

  • get_activity_logs, get_developer_logs, get_ai_usage_daily

Embeds and payments

  • get_oembed, get_payments

Plan requirements

Most tools work with any plan's personal access token. These need higher tiers:

  • Variables (list_file_variables, get_published_variables, modify_variables): Enterprise organization.
  • Library analytics (get_library_*): Organization or Enterprise plan.
  • Activity logs, developer logs, AI usage: Enterprise organization with an admin or plan access token.

SSE transport

The server runs over stdio by default. To serve over SSE instead:

bunx figma-mcp-server --sse

Default port is 3001; override with PORT.

Troubleshooting

  • Invalid or missing FIGMA_API_KEY: set it in your client config's env block.
  • bunx not found: use its absolute path from which bunx.
  • SSE port in use: run with PORT=<port>.

MIT License · By @planetabhi ⋛⋋( ⊙◊⊙)⋌⋚

Reviews

No reviews yet

Be the first to review this server!

Figma MCP Server - A local MCP server with full Figma REST API coverage. | MCP Marketplace