# FigmaApi import StarterToolInfo from "@/app/_components/starter-tool-info"; import ToolInfo from "@/app/_components/tool-info"; import Badges from "@/app/_components/badges"; import TabbedCodeBlock from "@/app/_components/tabbed-code-block"; import TableOfContents from "@/app/_components/table-of-contents"; import ToolFooter from "@/app/_components/tool-footer"; import { Callout } from "nextra/components"; The FigmaApi MCP Server offers a comprehensive suite of tools for interacting with Figma files and projects. Users can efficiently manage design assets and collaborate on projects by performing actions such as: ## Available Tools If you need to perform an action that's not listed here, you can [get in touch with us](mailto:contact@arcade.dev) to request a new tool, or [create your own tools](/guides/create-tools/tool-basics/build-mcp-server). ## FigmaApi.FetchFigmaFile
Retrieve a Figma file as a JSON object using its file key. **Parameters** - **file_key** (`string`, required) The unique key of the Figma file or branch to retrieve as JSON. - **version_id** (`string`, optional) Specify the version ID to retrieve a specific version of the file. Default is the current version. - **node_ids_of_interest** (`string`, optional) Comma-separated list of node IDs to retrieve specific parts of the Figma document. - **traversal_depth** (`number`, optional) Positive integer indicating the depth in the document tree to retrieve. For example, 1 returns only Pages; 2 returns Pages and top-level objects. - **export_vector_data** (`string`, optional) Set to "paths" to include vector data in the response. - **include_plugin_data** (`string`, optional) Comma separated list of plugin IDs and/or 'shared'. Includes plugin data in the result. - **include_branch_metadata** (`boolean`, optional) Set to true to include metadata about branches related to the file. If false, branch information will not be returned. ## FigmaApi.GetFigmaFileNodes
Retrieve nodes and metadata from a Figma file. **Parameters** - **node_ids_to_retrieve** (`string`, required) A comma-separated list of Figma node IDs to retrieve as JSON. - **figma_file_key** (`string`, required) The file or branch key from which to export JSON data in Figma. - **specific_version_id** (`string`, optional) Specify a version ID to retrieve a particular version of the Figma file. If omitted, the current version is retrieved. - **node_tree_depth** (`number`, optional) Positive integer indicating how deep into the node tree to traverse from the starting node. A value of 1 returns only immediate children. Leaving it unset returns all nodes. - **export_vector_data** (`string`, optional) Set to "paths" to include vector data in the response. - **include_plugin_data** (`string`, optional) Comma-separated plugin IDs and/or 'shared' to include plugin-related data in results. ## FigmaApi.RenderFigmaImages
Fetch rendered images from Figma files by node IDs. **Parameters** - **node_ids_to_render** (`string`, required) A comma-separated list of node IDs for images to be rendered. - **figma_file_key** (`string`, required) The key for the Figma file or branch to export images from. Use with the `branch_data` query parameter to obtain branch key if needed. - **version_id** (`string`, optional) Specify a version ID to retrieve a particular version of a Figma file. If omitted, will use the current version. - **image_scale_factor** (`number`, optional) A number between 0.01 and 4, representing the image scaling factor for rendering. - **image_output_format** (`string`, optional) Specify the image format for the output. Options are 'jpg', 'png', 'svg', or 'pdf'. - **render_text_as_outlines** (`boolean`, optional) Determines if text elements are rendered as outlines in SVGs. Set `true` for visual consistency; `false` for selectable text. - **include_svg_id_attributes** (`boolean`, optional) Include id attributes for all SVG elements. Adds the layer name to the 'id' attribute. - **include_node_id_in_svg_elements** (`boolean`, optional) Set to true to include node ID attributes for all SVG elements, adding the node ID to a `data-node-id` attribute. - **svg_stroke_simplification_enabled** (`boolean`, optional) Set to true to simplify inside/outside strokes in SVG using stroke attributes instead of ``. - **exclude_overlapping_content** (`boolean`, optional) Set to true to exclude overlapping content from rendering. Set to false to include overlaps, which may increase processing time. - **use_full_dimensions_without_cropping** (`boolean`, optional) Export using full node dimensions, ignoring cropping and empty space. Ensures text nodes are fully visible. ## FigmaApi.FetchImageFillLinks
Retrieve download links for images in a Figma document. **Parameters** - **file_or_branch_key** (`string`, required) The file or branch key from which to retrieve image URLs. Use `GET /v1/files/:key` to get the branch key if needed. ## FigmaApi.GetFileMetadata
Retrieve metadata for a specified Figma file. **Parameters** - **file_identifier** (`string`, required) File or branch key to get metadata for. Use the `branch_data` query param to get the branch key. ## FigmaApi.FigmaGetTeamProjects
Fetch all projects within a specified Figma team. **Parameters** - **team_id** (`string`, required) The unique ID of the Figma team to list projects from. This is required to specify which team's projects to retrieve. ## FigmaApi.GetFigmaProjectFiles
Retrieve all files from a specific Figma project. **Parameters** - **project_identifier** (`string`, required) The unique string ID of the Figma project from which to list files. - **include_branch_metadata** (`boolean`, optional) Include branch metadata for each main file with a branch in the project. Set to true to receive this data, otherwise false. ## FigmaApi.FetchFileVersionHistory
Fetch the version history of a Figma file. **Parameters** - **target_file_key** (`string`, required) The key of the file or branch to fetch version history for. Use this to specify the Figma file whose version history you need. - **number_of_items_per_page** (`number`, optional) Specify the number of items to return per page. Defaults to 30 if not provided. - **get_versions_before_id** (`number`, optional) A version ID to get versions before it in the history. Used for pagination. - **after_version_id** (`number`, optional) Version ID to fetch subsequent versions. Used for pagination. Omit if not paginating. ## FigmaApi.GetFigmaFileComments
Retrieve comments from a Figma file. **Parameters** - **figma_file_or_branch_key** (`string`, required) Specify the file or branch key to retrieve comments from. Use the `GET /v1/files/:key` endpoint with `branch_data` query param for branch keys. - **return_comments_as_markdown** (`boolean`, optional) Set to true to return comments as markdown equivalents when applicable. ## FigmaApi.AddCommentToFigmaFile
Posts a new comment on a Figma file. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **figma_file_key** (`string`, optional) File or branch key for the Figma file where the comment will be added. Retrieve this using `GET /v1/files/:key` with the `branch_data` query param for branch keys. Required when mode is 'execute', ignored when mode is 'get_request_schema'. - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.DeleteFigmaComment
Delete your comment from a Figma file. **Parameters** - **figma_file_key** (`string`, required) The file or branch key from which to delete the comment. Use `GET /v1/files/:key` with `branch_data` to obtain the branch key. - **comment_identifier** (`string`, required) The ID of the comment you wish to delete from the Figma file. Only the original commenter can perform this action. ## FigmaApi.FetchCommentReactions
Retrieve reactions from a specific comment in Figma. **Parameters** - **file_or_branch_key** (`string`, required) The key for the file or branch to retrieve the comment reactions from in Figma. - **comment_id** (`string`, required) ID of the comment from which to retrieve reactions. - **pagination_cursor** (`string`, optional) Cursor for pagination. Use the cursor from the previous call's response to retrieve the next set of reactions. ## FigmaApi.AddFigmaCommentReaction
Add a reaction to a comment on a Figma file. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **file_or_branch_key** (`string`, optional) Key of the file or branch where the comment reaction should be posted. Can be obtained via the Figma API. Required when mode is 'execute', ignored when mode is 'get_request_schema'. - **comment_id** (`string`, optional) The unique identifier of the comment you want to react to in a Figma file. Required when mode is 'execute', ignored when mode is 'get_request_schema'. - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.DeleteMyCommentReaction
Deletes your specific comment reaction in Figma. **Parameters** - **reaction_emoji** (`string`, required) The emoji associated with the reaction to be deleted. Only the emoji used for the reaction you added can be deleted. - **file_or_branch_key** (`string`, required) Key of the Figma file or branch where the reaction should be deleted. Use `GET /v1/files/:key` with the `branch_data` query param to obtain the branch key if needed. - **comment_id** (`string`, required) The ID of the comment from which you want to delete your reaction. ## FigmaApi.GetUserInformation
Retrieve information for the authenticated Figma user. **Parameters** This tool does not take any parameters. ## FigmaApi.GetTeamComponents
Retrieve published components from a team's Figma library. **Parameters** - **team_id** (`string`, required) The unique identifier of the team whose components you want to retrieve. This ID is necessary to specify the source team library in Figma. - **number_of_items_per_page** (`number`, optional) Specify the number of components to return in one page. Defaults to 30, maximum is 1000. - **cursor_after_id** (`number`, optional) Cursor indicating which ID to start retrieving components after. Cannot be used with 'before'. - **cursor_before** (`number`, optional) Cursor to retrieve components starting before a specific id. Exclusive with 'cursor_after'. ## FigmaApi.GetFigmaFileComponents
Retrieve published components from a Figma file library. **Parameters** - **file_key** (`string`, required) Main file key to list components from. Must not be a branch key. ## FigmaApi.GetFigmaComponentMetadata
Retrieve metadata for a Figma component by key. **Parameters** - **component_key** (`string`, required) The unique identifier of the Figma component to retrieve metadata for. ## FigmaApi.GetTeamComponentSets
Fetch published component sets from a Figma team library. **Parameters** - **team_id** (`string`, required) The unique identifier for the team from which to list component sets. - **number_of_items_per_page** (`number`, optional) Specify the number of items to return per page in the results. Defaults to 30. - **start_after_cursor** (`number`, optional) Cursor indicating the starting point for retrieving component sets, exclusive with `end_before_cursor`. This cursor is an internally tracked integer not corresponding to any IDs. - **cursor_before_id** (`number`, optional) Cursor ID indicating the point before which to retrieve component sets. It must be exclusive with the 'after' cursor. ## FigmaApi.GetPublishedComponentSets
Retrieve published component sets from a Figma file. **Parameters** - **main_file_key** (`string`, required) The main file key of the Figma file to list component sets from. Must not be a branch key. ## FigmaApi.GetFigmaComponentSet
Retrieve metadata for a Figma component set using its key. **Parameters** - **component_set_key** (`string`, required) The unique key identifier for the Figma component set to retrieve metadata. ## FigmaApi.GetTeamStyles
Retrieve a list of published styles from a team's library in Figma. **Parameters** - **team_id** (`string`, required) The unique identifier of the team from which to retrieve published styles. - **items_per_page** (`number`, optional) Specify the number of styles to return per page. Defaults to 30 if not provided. - **start_after_cursor** (`number`, optional) Cursor to start retrieving styles after a specific ID. Cannot be used with before. Internally tracked integer. - **cursor_before_id** (`number`, optional) Cursor for retrieving styles before a specific ID. Use this to paginate backwards. Exclusive with after. ## FigmaApi.GetPublishedStylesFromFile
Retrieve published styles from a Figma file library. **Parameters** - **main_file_key** (`string`, required) Main file key to list styles from. Must not be a branch key. ## FigmaApi.GetStyleMetadata
Retrieve Figma style metadata by key. **Parameters** - **style_key** (`string`, required) The unique identifier of the Figma style to retrieve metadata for. ## FigmaApi.GetFigmaWebhooks
Retrieve a list of webhooks from Figma. **Parameters** - **webhook_context** (`string`, optional) Specify the context for the webhooks. Accepts 'team', 'project', or 'file'. - **context_identifier** (`string`, optional) The ID of the context to fetch attached webhooks. Cannot be used with plan_api_id. - **plan_id_for_webhooks** (`string`, optional) The ID of your plan for retrieving webhooks across all accessible contexts. Cannot be used with context or context_id. - **pagination_cursor** (`string`, optional) Cursor for pagination when using plan_api_id. Provide next_page or prev_page from previous response to navigate pages. ## FigmaApi.CreateFigmaWebhook
Create a new webhook for Figma events. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.GetFigmaWebhook
Retrieve a Figma webhook by its ID. **Parameters** - **webhook_id** (`string`, required) Unique identifier of the Figma webhook to retrieve. ## FigmaApi.UpdateFigmaWebhook
Update a Figma webhook by its ID. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **webhook_id_to_update** (`string`, optional) Provide the ID of the Figma webhook you want to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'. - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.DeleteFigmaWebhook
Delete a specified webhook in Figma. **Parameters** - **webhook_id_to_delete** (`string`, required) The unique identifier of the webhook you wish to delete. This ID is required for the deletion operation. ## FigmaApi.GetRecentWebhookRequests
Retrieve recent webhook requests from the last week. **Parameters** - **webhook_subscription_id** (`string`, required) The ID of the webhook subscription for which to retrieve recent events. ## FigmaApi.RetrieveFigmaLocalVariables
Retrieve local and remote variables from a Figma file. **Parameters** - **file_or_branch_key** (`string`, required) The key for the file or branch to retrieve variables from in Figma. If a branch, use `GET /v1/files/:key` with the `branch_data` query param to get the branch key. ## FigmaApi.GetPublishedVariables
Retrieve published variables from a Figma file. **Parameters** - **main_file_key** (`string`, required) The key of the Figma file to retrieve published variables from. Only use the main file key, not a branch key. ## FigmaApi.ManageFigmaVariables
Manage and organize Figma variable collections in bulk. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **file_identifier** (`string`, optional) Specifies the Figma file or branch key to modify variables. Retrieve branch key using `GET /v1/files/:key` with `branch_data` parameter. Required when mode is 'execute', ignored when mode is 'get_request_schema'. - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.GetDevResources
Retrieve development resources from a Figma file. **Parameters** - **file_key** (`string`, required) The main file key for fetching development resources from a Figma file. Ensure it is not a branch key. - **target_node_ids** (`string`, optional) Comma separated list of node IDs to filter dev resources. If left blank, returns resources for all nodes. ## FigmaApi.CreateBulkDevResources
Bulk create developer resources in multiple Figma files. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.BulkUpdateFigmaDevResources
Update multiple Figma dev resources in bulk. **Parameters** - **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation - **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema' ## FigmaApi.DeleteDevResource
Delete a dev resource from a Figma file. **Parameters** - **target_file_key** (`string`, required) The main file key from which to delete the dev resource. Must not be a branch key. - **dev_resource_id** (`string`, required) The ID of the developer resource to delete from the Figma file. ## FigmaApi.GetLibraryAnalyticsComponentActions
Get analytics for library component actions. **Parameters** - **group_by_dimension** (`string`, required) Specify the dimension to group the analytics data by. Options are 'component' or 'team'. - **library_file_key** (`string`, required) The unique file key for the Figma library to retrieve analytics data from. - **data_page_cursor** (`string`, optional) Cursor indicating the specific page of data to fetch, obtained from a previous API call. - **earliest_start_date** (`string`, optional) ISO 8601 date string (YYYY-MM-DD) for the earliest week to include. Rounded back to the start of a week. Defaults to one year prior. - **latest_inclusion_date** (`string`, optional) ISO 8601 date string (YYYY-MM-DD) of the latest week to include, rounded forward to the nearest week's end. Defaults to the latest computed week. ## FigmaApi.FetchComponentUsageData
Fetch library analytics component usage data by dimension. **Parameters** - **group_by_dimension** (`string`, required) A dimension to group the returned analytics data. Choose between 'component' or 'file'. - **library_file_key** (`string`, required) The file key of the library to fetch analytics data for. Required for specifying the target library. - **data_page_cursor** (`string`, optional) Cursor indicating which page of data to fetch, obtained from a prior API call. ## FigmaApi.GetLibraryStyleActions
Retrieve library style analytics actions data by dimension. **Parameters** - **group_by_dimension** (`string`, required) Specify the dimension ('style' or 'team') to group the returned analytics data by. - **library_file_key** (`string`, required) The unique file key of the Figma library to retrieve analytics data for. - **pagination_cursor** (`string`, optional) A cursor to indicate which page of data to fetch. Obtain this from a prior API call. - **earliest_week_start_date** (`string`, optional) ISO 8601 date string (YYYY-MM-DD) for the earliest week to include. Dates round back to the nearest week start. Defaults to one year prior. - **end_date** (`string`, optional) ISO 8601 date string (YYYY-MM-DD) for the latest week to include, rounded to the week's end. Defaults to the latest computed week if not specified. ## FigmaApi.GetLibraryStyleUsageData
Retrieve style usage data from Figma library analytics. **Parameters** - **group_by_dimension** (`string`, required) Dimension to group the returned analytics data by. Options are 'style' or 'file'. - **library_file_key** (`string`, required) The file key of the Figma library to fetch analytics data for. This is required to specify the source library. - **pagination_cursor** (`string`, optional) Cursor indicating which page of data to fetch, obtained from a previous API call. ## FigmaApi.FetchLibraryAnalyticsVariableActions
Retrieve library analytics variable actions data from Figma. **Parameters** - **group_by_dimension** (`string`, required) A dimension to group the returned analytics data by. Options: 'variable', 'team'. - **library_file_key** (`string`, required) The file key of the library for which to fetch analytics data. - **page_cursor** (`string`, optional) Cursor to indicate which page of data to fetch, obtained from a previous API call. - **earliest_week_start_date** (`string`, optional) ISO 8601 date string (YYYY-MM-DD) representing the earliest week to include. Rounded back to the nearest week's start. Defaults to one year prior. - **end_date** (`string`, optional) ISO 8601 date string (YYYY-MM-DD) for the latest week to include. Defaults to the latest computed week. ## FigmaApi.GetLibraryAnalyticsVariableUsages
Retrieve analytics on library variable usage. **Parameters** - **group_by_dimension** (`string`, required) Specifies the dimension ('variable' or 'file') for grouping library analytics data. - **library_file_key** (`string`, required) The unique key of the library to fetch analytics data from. - **page_cursor** (`string`, optional) A token to fetch the specific page of results, received from a previous API call. --- ## Auth The Arcade Figma MCP Server uses the [Figma auth provider](/references/auth-providers/figma) to connect to users' Figma accounts. With the Arcade Cloud Platform, there's nothing to configure. Your users will see `Arcade` as the name of the application that's requesting permission. With a self-hosted installation of Arcade, you need to [configure the Figma auth provider](/references/auth-providers/figma#configuring-figma-auth) with your own Figma app credentials. ## Reference Below is a reference of enumerations used by some of the tools in the FigmaApi MCP Server: ### ToolMode - **GET_REQUEST_SCHEMA**: `get_request_schema` - **EXECUTE**: `execute`