oabolade avatar

Figma MCP Server

oabolade/figma_mcp_server_actor

Brings Figma's REST API into your AI workflow so you can analyze design files, list components, export assets, and manage comments through natural language. Runs as a long-running web server on Apify or locally, exposing an MCP JSON-RPC endpoint at /mcp. Supports both personal access tokens and OAuth 2.0 for team access. Ships with MCP resources for browsing files and prompts for common design workflows. Reach for this when you want Claude or Cursor to pull design structure, export nodes as PNG/SVG, or automate documentation tasks without opening Figma's UI. The OAuth flow requires a real browser for token exchange, and container URLs change per Apify run.

GitHub stars
1
tools
31
auth
Secret needed
transport
STDIO
env var
1
last updated
Dec 16, 2025

Tools

31 tools

Public tool metadata for what this MCP can expose to an agent.

figma_get_meGet the current user

Get the current user

No parameter schema in public metadata yet.

figma_get_fileGet a Figma file by key7 params

Get a Figma file by key

Parameters* required
branch_databoolean
Returns branch metadata for the requested file
depthnumber
Positive integer representing how deep into the document tree to traverse
fileKeystring
The file key to use for the operation
geometrystring
Set to "paths" to export vector data
idsstring
Comma separated list of nodes that you care about in the document
plugin_datastring
A comma separated list of plugin IDs and/or the string "shared"
versionstring
A specific version ID to get
figma_get_file_nodesGet specific nodes from a Figma file6 params

Get specific nodes from a Figma file

Parameters* required
depthnumber
Positive integer representing how deep into the node tree to traverse
fileKeystring
The file key to use for the operation
geometrystring
Set to "paths" to export vector data
idsstring
A comma separated list of node IDs to retrieve and convert
plugin_datastring
A comma separated list of plugin IDs and/or the string "shared"
versionstring
A specific version ID to get
figma_get_imagesRender images from a Figma file11 params

Render images from a Figma file

Parameters* required
contents_onlyboolean
Whether content that overlaps the node should be excluded from rendering
fileKeystring
The file key to use for the operation
formatstring
A string enum for the image output formatone of jpg · png · svg · pdf
idsstring
A comma separated list of node IDs to render
scalenumber
A number between 0.01 and 4, the image scaling factor
svg_include_idboolean
Whether to include id attributes for all SVG elements
svg_include_node_idboolean
Whether to include node id attributes for all SVG elements
svg_outline_textboolean
Whether text elements are rendered as outlines (vector paths) or as <text> elements in SVGs
svg_simplify_strokeboolean
Whether to simplify inside/outside strokes and use stroke attribute if possible
use_absolute_boundsboolean
Use the full dimensions of the node regardless of whether or not it is cropped
versionstring
A specific version ID to get
figma_get_image_fillsGet image fills in a Figma file1 params

Get image fills in a Figma file

Parameters* required
fileKeystring
The file key to use for the operation
figma_get_file_versionsGet version history of a Figma file4 params

Get version history of a Figma file

Parameters* required
afternumber
A version ID for one of the versions in the history. Gets versions after this ID
beforenumber
A version ID for one of the versions in the history. Gets versions before this ID
fileKeystring
The file key to use for the operation
page_sizenumber
The number of items returned in a page of the response
figma_get_commentsGet comments in a Figma file2 params

Get comments in a Figma file

Parameters* required
as_mdboolean
Whether to return the comments as markdowndefault: false
fileKeystring
The file key to use for the operation
figma_post_commentAdd a comment to a Figma file4 params

Add a comment to a Figma file

Parameters* required
client_metavalue
The position where to place the comment
comment_idstring
The ID of the comment to reply to, if any
fileKeystring
The file key to use for the operation
messagestring
The text contents of the comment to post
figma_delete_commentDelete a comment from a Figma file2 params

Delete a comment from a Figma file

Parameters* required
commentIdstring
The ID of the comment to delete
fileKeystring
The file key to use for the operation
figma_get_comment_reactionsGet reactions for a comment3 params

Get reactions for a comment

Parameters* required
commentIdstring
The ID of the comment to get reactions for
cursorstring
Cursor for pagination
fileKeystring
The file key to use for the operation
figma_post_comment_reactionAdd a reaction to a comment3 params

Add a reaction to a comment

Parameters* required
commentIdstring
The ID of the comment to add a reaction to
emojistring
The emoji to react with
fileKeystring
The file key to use for the operation
figma_delete_comment_reactionDelete a reaction from a comment3 params

Delete a reaction from a comment

Parameters* required
commentIdstring
The ID of the comment to delete a reaction from
emojistring
The emoji to remove
fileKeystring
The file key to use for the operation
figma_get_team_projectsGet projects in a team1 params

Get projects in a team

Parameters* required
teamIdstring
The ID of the team to get projects for
figma_get_project_filesGet files in a project2 params

Get files in a project

Parameters* required
branch_databoolean
Returns branch metadata in the response
projectIdstring
The ID of the project to get files for
figma_get_team_componentsGet components in a team4 params

Get components in a team

Parameters* required
afternumber
Cursor indicating which id after which to start retrieving components for
beforenumber
Cursor indicating which id before which to start retrieving components for
page_sizenumber
Number of items to return in a paged list of results
teamIdstring
The ID of the team to get components for
figma_get_file_componentsGet components in a file1 params

Get components in a file

Parameters* required
fileKeystring
The file key to use for the operation
figma_get_componentGet a component by key1 params

Get a component by key

Parameters* required
keystring
The key of the component to get
figma_get_team_component_setsGet component sets in a team4 params

Get component sets in a team

Parameters* required
afternumber
Cursor indicating which id after which to start retrieving component sets for
beforenumber
Cursor indicating which id before which to start retrieving component sets for
page_sizenumber
Number of items to return in a paged list of results
teamIdstring
The ID of the team to get component sets for
figma_get_file_component_setsGet component sets in a file1 params

Get component sets in a file

Parameters* required
fileKeystring
The file key to use for the operation
figma_get_component_setGet a component set by key1 params

Get a component set by key

Parameters* required
keystring
The key of the component set to get
figma_get_team_stylesGet styles in a team4 params

Get styles in a team

Parameters* required
afternumber
Cursor indicating which id after which to start retrieving styles for
beforenumber
Cursor indicating which id before which to start retrieving styles for
page_sizenumber
Number of items to return in a paged list of results
teamIdstring
The ID of the team to get styles for
figma_get_file_stylesGet styles in a file1 params

Get styles in a file

Parameters* required
fileKeystring
The file key to use for the operation
figma_get_styleGet a style by key1 params

Get a style by key

Parameters* required
keystring
The key of the style to get
figma_post_webhookCreate a webhook6 params

Create a webhook

Parameters* required
descriptionstring
User provided description or name for the webhook
endpointstring
The HTTP endpoint that will receive a POST request when the event triggers
event_typestring
An enum representing the possible events that a webhook can subscribe to
passcodestring
String that will be passed back to your webhook endpoint to verify that it is being called by Figma
statusstring
State of the webhook, including any error state it may be in
team_idstring
Team id to receive updates about
figma_get_webhookGet a webhook by ID1 params

Get a webhook by ID

Parameters* required
webhook_idstring
The ID of the webhook to get
figma_update_webhookUpdate a webhook5 params

Update a webhook

Parameters* required
descriptionstring
User provided description or name for the webhook
endpointstring
The HTTP endpoint that will receive a POST request when the event triggers
passcodestring
String that will be passed back to your webhook endpoint to verify that it is being called by Figma
statusstring
State of the webhook, including any error state it may be in
webhook_idstring
The ID of the webhook to update
figma_delete_webhookDelete a webhook1 params

Delete a webhook

Parameters* required
webhook_idstring
The ID of the webhook to delete
figma_get_team_webhooksGet webhooks for a team1 params

Get webhooks for a team

Parameters* required
team_idstring
The ID of the team to get webhooks for
figma_get_library_analytics_component_usagesGet library analytics component usage data3 params

Get library analytics component usage data

Parameters* required
cursorstring
Cursor indicating what page of data to fetch
fileKeystring
The file key to use for the operation
group_bystring
A dimension to group returned analytics data byone of component · file
figma_get_library_analytics_style_usagesGet library analytics style usage data3 params

Get library analytics style usage data

Parameters* required
cursorstring
Cursor indicating what page of data to fetch
fileKeystring
The file key to use for the operation
group_bystring
A dimension to group returned analytics data byone of style · file
figma_get_library_analytics_variable_usagesGet library analytics variable usage data3 params

Get library analytics variable usage data

Parameters* required
cursorstring
Cursor indicating what page of data to fetch
fileKeystring
The file key to use for the operation
group_bystring
A dimension to group returned analytics data byone of variable · file

Sponsors

Configuration

FIGMA_ACCESS_TOKEN*secret

Figma Personal Access Token for API authentication. Get yours at https://www.figma.com/developers/api#access-tokens

Readme

Figma MCP Server (Apify Actor)

Model Context Protocol (MCP) server that exposes Figma REST API capabilities to AI assistants (Cursor, Claude, custom agents). Runs as a long-running web server on the Apify platform (standby / container URL) or locally via apify run.

Features

  • File analysis — structure, metadata, styles, depth-limited trees
  • Components — list, details, usage
  • Assets — export nodes (PNG, SVG, PDF, JPG)
  • Comments — read and create
  • Projects / teams — listings and metadata
  • MCP resources & prompts for guided workflows

Authentication

Personal Access Token (default)

Recommended for solo use. Set figmaAccessToken in Actor input (or FIGMA_ACCESS_TOKEN in env).

OAuth 2.0 (optional — team / shared files)

Use when you omit figmaAccessToken and provide a Figma OAuth app:


View the full README on GitHub

Details

Repository
github.com/oabolade/figma_mcp_server_actor
Category
Design & Creative
Package
@oabolade-pegasus/figma-mcp-server
Transport
STDIO
Auth
Required
Registry
MCP registry, active

Related Design & Creative MCP servers

View all
1malnati avatarVaults Diagram Toolsmalnati/vaults-diagram-toolsMermaid to assets. Source code to maps. MCP for agents.0stars
2yuzu-hub avatarVoltPlan Wiring Diagramsyuzu-hub/wiring-diagram-mcpGenerate 12V/24V/48V wiring diagrams and size wires, fuses, batteries, solar, and inverters.0stars
3ahujasid avatarBlenderahujasid/blender-mcpConnects Blender to Claude AI via MCP, enabling scene inspection, object manipulation, material control, and code execution from Claude.21.7Kstars
4glips avatarFigma Context Mcpglips/figma-context-mcpGive your coding agent access to your Figma data. Implement designs in any framework in one-shot.16.2Kstars
5grab avatarTalk to Figmagrab/cursor-talk-to-figma-mcpTalkToFigma: MCP integration between AI Agent (Cursor, Claude Code) and Figma, allowing Agentic AI to communicate with Figma for reading designs and modifying t6.8Kstars
6funplayai avatarFunplay Unity MCPfunplayai/funplay-unity-mcpstdio bridge for the local Unity Editor MCP server from FunplayAI/funplay-unity-mcp.304stars