100+ integrations are ready to connect to your AI.Connect your first MCP

Figma MCP server for your AI

Ask what a frame looks like, export it as PNG or SVG, turn a design system into tokens, proofread every text layer, answer comments and attach Dev Mode links, all from your AI client.

PopMCPFigma

Give me a map of this Figma file and export the hero frame as a PNG

Supported Figma tools

Every Figma REST API call a token can make, from files, nodes and image exports to comments, components, styles, variables, folders, webhooks and organization logs, with link-aware tools that read only what a question needs.

62 tools in the full catalog: 47 read and 15 write. 34 load by default, and the rest are found with tool search.

figma_export_images

Renders images from a file.

figma_get_file

Returns the document identified by file_key as a JSON object.

figma_get_file_meta

Get file metadata Works with a personal access token, a plan access token or an OAuth sign-in.

figma_get_file_nodes

Returns the nodes referenced to by ids as a JSON object.

figma_get_image_fills

Returns download links for all images present in image fills in a document.

figma_list_file_versions

This endpoint fetches the version history of a file, allowing you to see the progression of a file over time.

figma_create_webhook

Create a new webhook which will call the specified endpoint when the event triggers.

figma_delete_webhook

Deletes the specified webhook.

figma_extract_design_tokens

A Figma file's design tokens with their actual values: published color styles as hex (and gradients), text styles with font family, weight, size, line height and letter spacing, effect styles (shadows, blurs) and grid styles, plus the file's variables and their values per mode when the file is on a Figma Enterprise plan.

figma_extract_text

Every text layer in a Figma file, page or frame, with its node id, layer name and path, for copy review, proofreading or translation.

figma_get_file_outline

The map of a Figma file: its name, editor type, last change, and every page with its top-level frames, sections and components (node ids and links), from one file read at depth 2.

figma_inspect_node

Read one frame, component or layer the way a developer or reviewer needs it: a compact layer tree with sizes, auto layout (direction, gap, padding, alignment), fill and stroke colors as hex, corner radius, effects, text with font family, weight and size, the components used and their properties, plus a PNG render link (30 days).

figma_list_team_files

A Figma team's folders and the files in each (file keys, names, last change, links), in one call.

figma_list_webhooks

Returns a list of webhooks corresponding to the context or plan provided, if they exist.

figma_parse_link

Read any Figma link into its parts without calling Figma: the file key (the branch key for a branch link), the node id in API form (12:345), the editor (design, figjam, slides, prototype, make, site), or a team or folder id from a file browser link.

figma_list_folder_files

Get a list of the files directly within the specified folder.

figma_list_subfolders

Get a list of the direct subfolders within the specified folder.

figma_list_team_folders

Get a list of the top-level folders (previously called "projects") within the specified team.

figma_create_dev_resources

Bulk create dev resources across multiple files.

figma_list_dev_resources

Get dev resources in a file Works with a personal access token, a plan access token or an OAuth sign-in.

figma_add_comment_reaction

Posts a new comment reaction on a file comment.

figma_create_comment

Posts a new comment on the file.

figma_delete_comment

Deletes a specific comment.

figma_get_component

Get metadata on a component by key.

figma_get_local_variables

This API is available to full members of Enterprise orgs.

figma_get_published_variables

This API is available to full members of Enterprise orgs.

figma_get_style

Get metadata on a style by key.

figma_list_comments

Gets a list of comments left on the file.

figma_list_file_component_sets

Get a list of published component sets within a file library.

figma_list_file_components

Get a list of published components within a file library.

figma_list_file_styles

Get a list of published styles within a file library.

figma_list_team_components

Get a paginated list of published components within a team library.

figma_list_team_styles

Get a paginated list of published styles within a team library.

figma_get_current_user

Returns the user information for the currently authenticated user.

figma_duplicate_file

Duplicates a main file or branch into the specified folder as a new standalone file.

figma_get_library_component_actions

Returns a list of library analytics component actions data broken down by the requested dimension.

figma_get_library_component_usages

Returns a list of library analytics component usage data broken down by the requested dimension.

figma_get_library_style_actions

Returns a list of library analytics style actions data broken down by the requested dimension.

figma_get_library_style_usages

Returns a list of library analytics style usage data broken down by the requested dimension.

figma_get_library_variable_actions

Returns a list of library analytics variable actions data broken down by the requested dimension.

figma_get_library_variable_usages

Returns a list of library analytics variable usage data broken down by the requested dimension.

figma_get_webhook

Get a webhook by ID.

figma_list_webhook_requests

Returns all webhook requests sent within the last week.

figma_update_webhook

Update a webhook by ID.

figma_create_team_folder

Creates a top-level folder in a team.

figma_get_folder_meta

Get metadata for a folder (name, thumbnail, file count, timestamps) without enumerating its files.

figma_delete_dev_resource

Delete a dev resource from a file Works with a personal access token, a plan access token or an OAuth sign-in.

figma_update_dev_resources

Bulk update dev resources across multiple files.

figma_create_team

Creates a team in the Enterprise plan associated with a private OAuth app.

figma_delete_comment_reaction

Deletes a specific comment reaction.

figma_get_component_set

Get metadata on a published component set by key.

figma_get_team

Returns metadata for a team the caller can access.

figma_invite_team_members

Invites users to a team with the requested role.

figma_list_comment_reactions

Gets a paginated list of reactions left on the comment.

figma_list_team_component_sets

Get a paginated list of published component sets within a team library.

figma_update_variables

This API is available to full members of Enterprise orgs with Editor seats.

figma_get_discovery_text_events

Links to JSON files of the text events in the organization's files (text on layers, cursor chat, comments and reactions, component documentation, Dev Mode annotations and links, AI prompts), one file per hour, for up to 24 hours from start_date.

figma_get_oembed

Returns oEmbed data for a Figma file or published Make site URL, following the oEmbed specification.

figma_get_payments

There are two methods to query for an user's payment information on a plugin, widget, or Community file.

figma_list_activity_logs

Returns a list of activity log events Enterprise plan, organization admins only.

figma_list_ai_usage

Returns per-user, per-day AI credit usage for the plan associated with the calling token.

figma_list_developer_logs

Returns a list of developer log entries for REST API and MCP server requests made within the organization.

Connect Figma to Claude, ChatGPT and Claude Code

Credentials off one Figma screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In Figma open Settings, then the Security tab, and click Generate new token under Personal access tokens. Set Expiration to 90 days, give each permission its highest option, generate the token and add it in PopMCP. An optional team link lets the AI list your team's files.

Personal access token••••••••••••3f7a
Team link (optional)https://www.figma.com/files/team/1234567890/My-team
ConnectionVerified

Then just ask for the work

  • “Give me a map of this Figma file and export the hero frame as a PNG”

    • get_file_outline
    • export_images
  • “Describe this frame for a developer: layout, spacing, colors, fonts and the components it uses”

    • inspect_node
  • “Pull the color and text styles from our design system file as tokens”

    • extract_design_tokens
  • “Proofread every text layer on the pricing page and list the typos with their layer names”

    • extract_text
  • “Summarize the open comments on the checkout file and reply to the ones you can answer”

    • list_comments
    • create_comment
  • “Which files in our team changed this week?”

    • list_team_files

Use Figma from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Figma MCP server questions

What teams ask before putting Figma behind an AI client.

What do I need to connect Figma?

A Figma personal access token. In Figma click your account menu, choose Settings, open the Security tab and click Generate new token under Personal access tokens. Set Expiration to 90 days (the longest Figma allows), set each permission to Read-only or Write, click Generate token and add it in PopMCP. It works on every Figma plan, the free Starter plan included.

Why does the token expire, and what happens then?

Figma stopped issuing tokens that never expire in 2025, so a personal access token lasts at most 90 days. When it expires, Figma's tools answer that the token is no longer accepted; generate a new one in Figma and reconnect. Organization and Enterprise admins can use a plan access token from figma.com/developers/tokens instead, which lasts up to a year and also reaches activity logs, developer logs and AI usage.

Can it read large Figma files?

Yes. A real design file can be tens of megabytes of JSON, so the tools read only what a question needs: get_file_outline maps the pages and frames, inspect_node reads one frame with its layout, colors, fonts and components, and get_file trims an answer that would not fit and says which node ids to ask for next. Paste a link to a file or to a frame and the tools work out the ids, including the 12-345 node ids in links.

How do Figma's rate limits affect the AI?

Figma limits each user by seat and by endpoint. Reading file JSON and exporting images are the scarcest: View and Collab seats get only a handful of those a month, while Dev and Full seats get 10 to 20 a minute. Every tool says which calls are scarce, image exports take many nodes in one call, and a 429 answer says how long to wait.

Can the AI list my team's files?

Yes, with a team link. Figma has no API that lists a user's teams, so add your team page's link on the connect form (or give it in the chat) and list_team_files returns each folder and its files. Folders need a personal access token: Figma does not let public sign-in apps list folders.

Does it cover variables, Dev Mode and webhooks?

Yes. Variables can be read and changed on Figma Enterprise plans; extract_design_tokens returns published color, text, effect and grid styles with their values on any plan, and variables too on Enterprise. Dev resources (the links in Dev Mode) can be listed, added and removed. Webhooks attach to a team you administer or to a folder or file you can edit, for edits, saved versions, comments, deletes, library publishes and Dev Mode status changes.

Do I have to run or host the Figma MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Figma to Claude Code?

Connect Figma in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Figma on the consent screen. The Figma tools are then available in that session, and no Figma credential is stored on your machine.

Why do only 34 of the 62 tools load by default?

Loading 62 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 34-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 62 here. A trigger is something PopMCP watches for you: 6 Figma events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Figma.

Connect Figma to your AI in minutes

Launch a hosted MCP endpoint for Figma, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP