figma_export_ imagesRenders images from a file.
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
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_ imagesRenders images from a file.
figma_get_ fileReturns the document identified by file_key as a JSON object.
figma_get_ file_ metaGet file metadata Works with a personal access token, a plan access token or an OAuth sign-in.
figma_get_ file_ nodesReturns the nodes referenced to by ids as a JSON object.
figma_get_ image_ fillsReturns download links for all images present in image fills in a document.
figma_list_ file_ versionsThis endpoint fetches the version history of a file, allowing you to see the progression of a file over time.
figma_create_ webhookCreate a new webhook which will call the specified endpoint when the event triggers.
figma_delete_ webhookDeletes the specified webhook.
figma_extract_ design_ tokensA 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_ textEvery 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_ outlineThe 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_ nodeRead 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_ filesA Figma team's folders and the files in each (file keys, names, last change, links), in one call.
figma_list_ webhooksReturns a list of webhooks corresponding to the context or plan provided, if they exist.
figma_parse_ linkRead 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_ filesGet a list of the files directly within the specified folder.
figma_list_ subfoldersGet a list of the direct subfolders within the specified folder.
figma_list_ team_ foldersGet a list of the top-level folders (previously called "projects") within the specified team.
figma_create_ dev_ resourcesBulk create dev resources across multiple files.
figma_list_ dev_ resourcesGet dev resources in a file Works with a personal access token, a plan access token or an OAuth sign-in.
figma_add_ comment_ reactionPosts a new comment reaction on a file comment.
figma_create_ commentPosts a new comment on the file.
figma_delete_ commentDeletes a specific comment.
figma_get_ componentGet metadata on a component by key.
figma_get_ local_ variablesThis API is available to full members of Enterprise orgs.
figma_get_ published_ variablesThis API is available to full members of Enterprise orgs.
figma_get_ styleGet metadata on a style by key.
figma_list_ commentsGets a list of comments left on the file.
figma_list_ file_ component_ setsGet a list of published component sets within a file library.
figma_list_ file_ componentsGet a list of published components within a file library.
figma_list_ file_ stylesGet a list of published styles within a file library.
figma_list_ team_ componentsGet a paginated list of published components within a team library.
figma_list_ team_ stylesGet a paginated list of published styles within a team library.
figma_get_ current_ userReturns the user information for the currently authenticated user.
figma_duplicate_ fileDuplicates a main file or branch into the specified folder as a new standalone file.
figma_get_ library_ component_ actionsReturns a list of library analytics component actions data broken down by the requested dimension.
figma_get_ library_ component_ usagesReturns a list of library analytics component usage data broken down by the requested dimension.
figma_get_ library_ style_ actionsReturns a list of library analytics style actions data broken down by the requested dimension.
figma_get_ library_ style_ usagesReturns a list of library analytics style usage data broken down by the requested dimension.
figma_get_ library_ variable_ actionsReturns a list of library analytics variable actions data broken down by the requested dimension.
figma_get_ library_ variable_ usagesReturns a list of library analytics variable usage data broken down by the requested dimension.
figma_get_ webhookGet a webhook by ID.
figma_list_ webhook_ requestsReturns all webhook requests sent within the last week.
figma_update_ webhookUpdate a webhook by ID.
figma_create_ team_ folderCreates a top-level folder in a team.
figma_get_ folder_ metaGet metadata for a folder (name, thumbnail, file count, timestamps) without enumerating its files.
figma_delete_ dev_ resourceDelete a dev resource from a file Works with a personal access token, a plan access token or an OAuth sign-in.
figma_update_ dev_ resourcesBulk update dev resources across multiple files.
figma_create_ teamCreates a team in the Enterprise plan associated with a private OAuth app.
figma_delete_ comment_ reactionDeletes a specific comment reaction.
figma_get_ component_ setGet metadata on a published component set by key.
figma_get_ teamReturns metadata for a team the caller can access.
figma_invite_ team_ membersInvites users to a team with the requested role.
figma_list_ comment_ reactionsGets a paginated list of reactions left on the comment.
figma_list_ team_ component_ setsGet a paginated list of published component sets within a team library.
figma_update_ variablesThis API is available to full members of Enterprise orgs with Editor seats.
figma_get_ discovery_ text_ eventsLinks 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_ oembedReturns oEmbed data for a Figma file or published Make site URL, following the oEmbed specification.
figma_get_ paymentsThere are two methods to query for an user's payment information on a plugin, widget, or Community file.
figma_list_ activity_ logsReturns a list of activity log events Enterprise plan, organization admins only.
figma_list_ ai_ usageReturns per-user, per-day AI credit usage for the plan associated with the calling token.
figma_list_ developer_ logsReturns a list of developer log entries for REST API and MCP server requests made within the organization.
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.
••••••••••••3f7ahttps://www.figma.com/files/team/1234567890/My-teamPosting and deleting comments, adding dev resources, creating webhooks and changing variables happen the moment the AI calls them. New connections start read-only until an owner or admin allows writes, and every call reaches only what your Figma user can open.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Figma credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Give me a map of this Figma file and export the hero frame as a PNG
figma_get_file_outlineok
Then just ask for the work
“Give me a map of this Figma file and export the hero frame as a PNG”
“Describe this frame for a developer: layout, spacing, colors, fonts and the components it uses”
“Pull the color and text styles from our design system file as tokens”
“Proofread every text layer on the pricing page and list the typos with their layer names”
“Summarize the open comments on the checkout file and reply to the ones you can answer”
“Which files in our team changed this week?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Figma behind an AI client.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Launch a hosted MCP endpoint for Figma, keep tool access under control, and start testing real workflow prompts right away.