Skip to Content

Figma

Description: Enable agents to interact with Figma

Author: Arcade

Auth: User authorization

PyPI VersionLicensePython VersionsWheel StatusDownloads

The Figma MCP Server provides a comprehensive set of tools for interacting with Figma’s design files, components, and collaboration features. Built on the Figma REST API , this MCP Server enables you to:

  • Files: Access Figma file structures, pages, specific nodes, and export designs as images
  • Components: Browse published components, component sets (variants), and styles from files or team libraries
  • Comments: Read and add comments to Figma files, reply to existing discussions
  • Navigation: Access team projects and files (requires private OAuth app)
  • User Context: Get authenticated user profile information

Available tools

Tool NameDescription
Figma.WhoAmIGet the authenticated user's profile
Figma.GetFileGet a Figma file's structure including pages and metadata
Figma.GetPagesGet a list of pages in a Figma file
Figma.GetFileNodesGet specific nodes from a Figma file by their IDs
Figma.ExportImageExport Figma frames/nodes as images
Figma.GetComponentsGet published components from a file or team library
Figma.GetComponentGet metadata for a specific component by its key
Figma.GetStylesGet published styles from a file or team library
Figma.GetStyleGet metadata for a specific style by its key
Figma.GetComponentSetsGet published component sets from a file or team library
Figma.GetComponentSetGet metadata for a specific component set by its key
Figma.GetCommentsGet comments on a Figma file
Figma.AddCommentOrReplyAdd a comment to a Figma file or reply to an existing comment
Figma.GetTeamProjectsGet all projects in a Figma team
Figma.GetProjectFilesGet all files in a Figma project

If you need to perform an action that’s not listed here, you can get in touch with us to request a new tool, or create your own tools.

Each tool includes behavior hints as defined by the Model Context Protocol  specification. These hints are not yet supported, but we’ve added them to help you understand the side effects of each tool:

  • readOnlyHint — The tool only reads data, no modifications
  • openWorldHint — The tool interacts with external systems (Figma’s API)
  • destructiveHint — The tool may cause irreversible changes (e.g., deletion)
  • idempotentHint — Repeated calls with the same arguments have no additional effect

The projects:read scope is ONLY available in private Figma OAuth apps. This scope is required for:

  • GetTeamProjects — Get all projects in a Figma team
  • GetProjectFiles — Get all files in a Figma project

If you need these navigation tools, you must create a private OAuth app in your Figma organization. All other tools work with public OAuth apps.

Learn more about Figma OAuth scopes 


User context tools

Figma.WhoAmI

Get the authenticated user’s profile.


Returns the current user’s information including their name, email, and profile image.

Parameters

This tool takes no parameters.

  • current_user:read — Read access to the authenticated user’s profile

View Figma Users API documentation 

  • readOnlyHint: true - Only reads user profile, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


File tools

Figma.GetFile

Get a Figma file’s structure including pages and metadata.


Returns the file name, version, thumbnail, and list of pages. Use depth parameter to limit how much of the tree is returned for large files.

Parameters

  • file_key (string, required) File key. Can be found in Figma URL: https://www.figma.com/file/{FILE_KEY}/ 
  • depth (integer, optional) How deep to traverse the node tree. Default traverses full depth. Use 1 for pages only, 2 for pages and top-level frames. Default is None.
  • file_content:read — Read access to file structure and content

View Figma Files API documentation 

  • readOnlyHint: true - Only reads file data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetPages

Get a list of pages in a Figma file.


Returns page IDs and names without the full node tree.

Parameters

  • file_content:read — Read access to file structure and content

View Figma Files API documentation 

  • readOnlyHint: true - Only reads file data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetFileNodes

Get specific nodes from a Figma file by their IDs.


Returns the requested nodes with their properties and optionally their children. Use this to fetch specific parts of a file without loading the entire document.

Parameters

  • file_key (string, required) File key. Can be found in Figma URL: https://www.figma.com/file/{FILE_KEY}/ 
  • node_ids (array, required) List of node IDs to retrieve. Node IDs can be found in Figma URL after ?node-id= parameter (URL encoded, e.g., ‘0:1’ or ‘1-2’).
  • depth (integer, optional) How deep to traverse from each node. Use 1 for direct children only. Default returns all descendants. Default is None.
  • file_content:read — Read access to file structure and content

View Figma Files API documentation 

  • readOnlyHint: true - Only reads file data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.ExportImage

Export Figma frames/nodes as images.


Returns temporary URLs to download images. URLs valid for approximately 14 days.

Parameters

  • file_key (string, required) File key. Can be found in Figma URL: https://www.figma.com/file/{FILE_KEY}/ 
  • node_ids (array, required) List of node IDs to export as images.
  • image_format (enum, optional) Image format. Options: png, jpg, svg, pdf. Default is png.
  • scale (number, optional) Scale factor (0.01 to 4.0). Only applies to PNG/JPG. Default is None (1.0).
  • file_content:read — Read access to file content for image export

View Figma Files API documentation 

  • readOnlyHint: true - Only exports, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Component tools

Figma.GetComponents

Get published components from a file or team library.


For file: Returns all published components in the file. For team: Returns paginated list of components across team library.

Parameters

  • source (enum, required) Source type. Options: file, team.
  • source_id (string, required) File key (if source=‘file’) or team ID (if source=‘team’).
  • page_size (integer, optional) Number of items per page (team mode only, 1-50). Default is 10.
  • after_cursor (integer, optional) Cursor for next page (team mode only). Default is None.
  • library_content:read — Read access to published library content (file mode)
  • team_library_content:read — Read access to team library content (team mode)

View Figma Component Types API documentation 

  • readOnlyHint: true - Only reads component data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetComponent

Get metadata for a specific component by its key.


Parameters

  • component_key (string, required) The unique component key.
  • library_assets:read — Read access to individual library assets

View Figma Component Types API documentation 

  • readOnlyHint: true - Only reads component data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetStyles

Get published styles from a file or team library.


For file: Returns all published styles in the file. For team: Returns paginated list of styles across team library.

Parameters

  • source (enum, required) Source type. Options: file, team.
  • source_id (string, required) File key (if source=‘file’) or team ID (if source=‘team’).
  • page_size (integer, optional) Number of items per page (team mode only, 1-50). Default is 10.
  • after_cursor (integer, optional) Cursor for next page (team mode only). Default is None.
  • library_content:read — Read access to published library content (file mode)
  • team_library_content:read — Read access to team library content (team mode)

View Figma Component Types API documentation 

  • readOnlyHint: true - Only reads style data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetStyle

Get metadata for a specific style by its key.


Parameters

  • style_key (string, required) The unique style key.
  • library_assets:read — Read access to individual library assets

View Figma Component Types API documentation 

  • readOnlyHint: true - Only reads style data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetComponentSets

Get published component sets (groups of component variants) from a file or team library.


Component sets are groups of related component variants, like a Button with states: default, hover, pressed, disabled.

For file: Returns all published component sets in the file. For team: Returns paginated list of component sets across team library.

Parameters

  • source (enum, required) Source type. Options: file, team.
  • source_id (string, required) File key (if source=‘file’) or team ID (if source=‘team’).
  • page_size (integer, optional) Number of items per page (team mode only, 1-50). Default is 10.
  • after_cursor (integer, optional) Cursor for next page (team mode only). Default is None.
  • library_content:read — Read access to published library content (file mode)
  • team_library_content:read — Read access to team library content (team mode)

View Figma Component Types API documentation 

  • readOnlyHint: true - Only reads component set data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetComponentSet

Get metadata for a specific component set by its key.


A component set is a group of related component variants.

Parameters

  • component_set_key (string, required) The unique component set key.
  • library_assets:read — Read access to individual library assets

View Figma Component Types API documentation 

  • readOnlyHint: true - Only reads component set data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Comment tools

Figma.GetComments

Get comments on a Figma file.


Returns comments with pagination support.

Parameters

  • file_key (string, required) File key. Can be found in Figma URL: https://www.figma.com/file/{FILE_KEY}/ 
  • offset (integer, optional) Starting offset for pagination. Default is 0.
  • max_items (integer, optional) Maximum number of comments to return (1-50). Default is 10.
  • file_comments:read — Read access to file comments

View Figma Comments API documentation 

  • readOnlyHint: true - Only reads comment data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.AddCommentOrReply

Add a comment to a Figma file or reply to an existing comment.


If parent_comment_id is provided, creates a reply to that comment. Otherwise creates a new comment (optionally attached to a node).

Parameters

  • file_key (string, required) File key. Can be found in Figma URL: https://www.figma.com/file/{FILE_KEY}/ 
  • message (string, required) The comment or reply text.
  • parent_comment_id (string, optional) Parent comment ID to reply to. If provided, creates a reply. Default is None.
  • node_id (string, optional) Node ID to attach the comment to. Ignored for replies. Default is None.
  • x (number, optional) X position offset on the node. Only used with node_id. Default is None.
  • y (number, optional) Y position offset on the node. Only used with node_id. Default is None.
  • file_comments:write — Write access to create comments and replies

View Figma Comments API documentation 

  • readOnlyHint: false - Creates new comment or reply
  • destructiveHint: false - Additive operation, creates new content
  • idempotentHint: false - Each call creates a new comment/reply
  • openWorldHint: true - Interacts with Figma’s external API

Makes 1 API call.


Figma.GetTeamProjects

Get all projects in a Figma team.


Projects are containers within a team that group related design files.

Parameters

  • projects:read — Read access to team projects

View Figma Projects API documentation 

  • readOnlyHint: true - Only reads project data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

This tool requires the projects:read scope, which is ONLY available for private Figma OAuth apps. Public OAuth apps cannot use this scope.

Learn how to configure a private OAuth app in the Figma auth provider documentation.

Makes 1 API call.


Figma.GetProjectFiles

Get all files in a Figma project.


Files are Figma design documents containing pages and frames.

Parameters

  • project_id (string, required) Project ID. Can be obtained from get_team_projects.
  • projects:read — Read access to project files

View Figma Projects API documentation 

  • readOnlyHint: true - Only reads file data, no modifications
  • openWorldHint: true - Interacts with Figma’s external API

This tool requires the projects:read scope, which is ONLY available for private Figma OAuth apps. Public OAuth apps cannot use this scope.

Learn how to configure a private OAuth app in the Figma auth provider documentation.

Makes 1 API call.


Auth

The Arcade Figma MCP Server uses the Figma auth provider to connect to users’ Figma accounts. Please refer to the Figma auth provider documentation to learn how to configure auth.

The projects:read scope is ONLY available in private Figma OAuth apps. This scope is required for the navigation tools (GetTeamProjects and GetProjectFiles).

If you need these navigation tools, you must create a private OAuth app through your Figma organization settings. All other tools work with public OAuth apps.

Last updated on

Figma | Arcade Docs