Add to your AI client, then sign in once when you connect.
Inspect Figma files, nodes, components, styles, variables, comments, exports, webhooks, and design-system libraries from chat.
This listing identifies a third-party integration. MCPBundles is not affiliated with, sponsored by, or endorsed by the service or its operator unless stated on this page.
Live probe refreshed Nov 3, 2026 · Endpoint host mcp.mcpbundles.com
Built for
Design Systems, Product Design, Design Engineering, Design QA
Connect Figma to any MCP client in minutes
https://mcp.mcpbundles.com/bundle/figmaThis server may ask you to sign in when your AI client connects.
Prefer the browser? Open in MCPBundles Studio
Sign in to connect your credentials and start running tools from the chat.
Connect to your AI clientMCPBundles publishes this directory for MCP discovery. Except where we host or operate an offering, third-party services run under their own terms. Product and company names on this page are used in a descriptive, identifying way (including under nominative fair use where applicable); they remain the property of their owners. Nothing here grants you rights in those marks, and nothing here is an offer to sell a third party's services. Terms
https://mcp.mcpbundles.com/bundle/figmaThis server may ask you to sign in when your AI client connects.
Prefer the browser? Open in MCPBundles Studio
Choose your AI client below. When you connect, sign in to MCPBundles once — we store your service credentials for every client.
Browse all toolsAudit a design system
Connects file-local and published library design-system objects.
Read this Figma file's components, component sets, styles, and variables, then summarize inconsistencies that could break a design system rollout.
Extract implementation context
Uses node reads and render exports for design-to-code work.
Read selected Figma nodes, render screenshots, and summarize layout, copy, colors, and component structure for engineering handoff.
Review comments and feedback
Turns file comments into a structured review queue.
List comments on this Figma file, group unresolved feedback by page or frame, and suggest what needs product or design follow-up.
Plan webhook or dev-resource updates
Covers collaboration automation beyond static file reads.
Inspect Figma webhooks and dev resources for the team, then recommend which resources should be added or paused for the current project.
What can MCPBundles do with Figma?
It can inspect files, nodes, images, components, component sets, styles, variables, comments, projects, webhooks, dev resources, and selected library analytics depending on account plan and credential scope.
What identifiers do Figma workflows need?
Most workflows need a file key, team id, node id, or global library key. File keys come from Figma design or file URLs, and node ids identify specific frames or elements.
Can agents render Figma designs?
Yes. The render workflow can export selected nodes as PNG, JPG, SVG, or PDF, which helps agents inspect visuals and produce engineering notes.
Related editorial
Figma Workflows with AI
How AI agents can read files, browse components and styles, edit variables, post review comments, and pull library analytics for design ops.
Domain knowledge for Figma — workflow patterns, data models, and gotchas for your AI agent.
Figma content is addressed by file, team, or global library key.
Team → Project → File → Page → Frame → Node. Components, component sets, styles, and variables are scoped to a file (the local view) and may also be published to the team library, which is what other files consume.
The Figma REST API exposes endpoints that are gated on the workspace's Figma plan, not on the credential. These will return 403 / 400 for accounts that don't have the corresponding entitlement, even when the token is otherwise valid:
Two credential shapes are supported. The framework injects whichever is bound for the workspace:
Figma rate-limits per token (~Tier 3 endpoints are tighter — payments, activity logs). On 429, back off; rate-limit windows reset within ~60 seconds.
Some files return 403 File not exportable even when the token can read metadata elsewhere. That is a file or team export policy, not missing OAuth scopes — reconnecting on MCPBundles will not fix it. Use a file you can export in the Figma UI or ask the owner to allow export/download.
Start here
Figma
Figma Create Comment
figma_create_commentCreate a comment on a Figma file. Required: message. Optional: comment_id (the parent comment id — when set, this becomes a threaded reply rather than a new root comment); client_meta (anchor the comment to the canvas: pass {'x': float, 'y': float} for absolute coordinates, or {'node_id': '1:2', 'node_offset': {'x': 0, 'y': 0}} to anchor to a specific node). Comments are immutable once posted — to edit, delete and recreate.
Open in Studio[
{
"name": "figma_create_comment",
"title": "Figma Create Comment",
"description": "Create a comment on a Figma file. Required: message. Optional: comment_id (the parent comment id — when set, this becomes a threaded reply rather than a new root comment); client_meta (anchor the comment to the canvas: pass {'x': float, 'y': float} for absolute coordinates, or {'node_id': '1:2', 'node_offset': {'x': 0, 'y': 0}} to anchor to a specific node). Comments are immutable once posted — to edit, delete and recreate."
},
{
"name": "figma_create_comment_reaction",
"title": "Figma Create Comment Reaction",
"description": "Add a reaction to a Figma comment. emoji must be one of the Figma-supported shortcodes: :eyes:, :heart_eyes:, :heavy_plus_sign:, :+1:, :-1:. The same user can only have one of each emoji per comment."
},
{
"name": "figma_delete_comment",
"title": "Figma Delete Comment",
"description": "Delete a comment from a Figma file. Only the author or a team admin can delete; other callers get 403. Deleting a thread root removes all replies."
},
{
"name": "figma_delete_comment_reaction",
"title": "Figma Delete Comment Reaction",
"description": "Remove the calling user's reaction (matching emoji) from a Figma comment. emoji is sent as a query parameter, not a body. Only the user who created the reaction can delete it."
},
{
"name": "figma_delete_dev_resource",
"title": "Figma Delete Dev Resource",
"description": "Delete one dev resource by id. Permanent — there is no undo. file_key defaults to the credential."
},
{
"name": "figma_delete_webhook",
"title": "Figma Delete Webhook",
"description": "Delete a webhook. Permanent — there is no undo. To stop delivery without deleting, update the webhook with status='PAUSED'. Requires team admin permission."
},
{
"name": "figma_read_activity_logs",
"title": "Figma Read Activity Logs",
"description": "Read the org activity log. Filter on events (comma-separated list of event types — empty returns every event), start_time / end_time (Unix seconds — defaults are one year ago and now), limit (max 1000 per page, default 1000), and order ('asc' default oldest-first or 'desc' newest-first). Pagination uses 'cursor': when the response carries next_page=true, re-call with cursor= the value from meta.cursor. Requires the org:activity_log_read scope and an Enterprise plan; lower plans / non-admins retu"
},
{
"name": "figma_read_comment_reactions",
"title": "Figma Read Comment Reactions",
"description": "List reactions on a Figma comment. Each row carries the reacting user, the emoji shortcode, and created_at. Cursor pagination via cursor=. Reaction emojis Figma supports: :eyes:, :heart_eyes:, :heavy_plus_sign:, :+1:, :-1:."
},
{
"name": "figma_read_comments",
"title": "Figma Read Comments",
"description": "List comments on a Figma file. Each comment carries id, message, user, created_at, resolved_at, parent_id (for replies), client_meta (the canvas region the comment is anchored to — frame_offset on a node, or absolute coordinates), and order_id. Pass as_md=true to receive messages rendered as Markdown instead of Figma's plain text with @mention metadata. Threads are flat: replies have parent_id pointing at the root comment id."
},
{
"name": "figma_read_components",
"title": "Figma Read Components",
"description": "Read components. Pass component_key to fetch one component by its global key (the key surfaced inside the file's components map and on instances). Otherwise scope to a file (file_key, defaults to credential) or to a team's published library (team_id, defaults to credential). file_key wins over team_id when both are supplied. Team-scope supports cursor pagination (page_size, before, after)."
},
{
"name": "figma_read_component_sets",
"title": "Figma Read Component Sets",
"description": "Read component sets (the variant containers). Pass component_set_key to fetch one. Otherwise scope to a file (file_key, defaults to credential) or to a team's published library (team_id, defaults to credential). file_key wins over team_id when both are supplied. Team scope supports cursor pagination (page_size, before, after)."
},
{
"name": "figma_read_dev_resources",
"title": "Figma Read Dev Resources",
"description": "List the dev resources (Dev Mode code connections) attached to nodes in a Figma file. Each row carries id, file_key, node_id, name, url. Pass node_id to scope to one node, otherwise returns every resource in the file."
},
{
"name": "figma_read_file",
"title": "Figma Read File",
"description": "Read a Figma file by file_key. Pass ids='1:2,1:3' to fetch only those nodes (and their descendants) — the response is shape-equivalent to the deep-node endpoint and avoids downloading the full document tree, which can be many MB on large design systems. Other params: depth (1=pages only, 2=pages+top-level frames), version (specific version id from the file's version history), geometry='paths' to include vector path data, plugin_data='shared,<plugin_id>' to include plugin metadata, branch_data=tr"
},
{
"name": "figma_read_file_meta",
"title": "Figma Read File Meta",
"description": "Read lightweight metadata for a Figma file — name, role, last_touched_at, editor_type, link_access, creator, owner, and folder ancestry — without downloading the document tree. Use this to confirm access, discover ownership, or check freshness before paying for a full file read."
},
{
"name": "figma_read_file_versions",
"title": "Figma Read File Versions",
"description": "Read the version history of a Figma file. Returns a list of named saves (version id, label, description, created_at, user). Pass any version id to the file read's version parameter to read a historical snapshot of the document. Pagination via page_size + before/after cursors."
},
{
"name": "figma_read_image_fills",
"title": "Figma Read Image Fills",
"description": "Read the URL map of every image fill referenced inside a Figma file. Returns a dict keyed by image_ref (the same hash you'll see on a Paint of type=IMAGE inside the file document tree) → S3 download URL valid for ~30 days. Use this to bulk download all bitmap assets out of a file in one round-trip."
},
{
"name": "figma_read_library_analytics",
"title": "Figma Read Library Analytics",
"description": "Read library analytics for a published Figma library. kind picks the entity (component / style / variable) and mode picks the metric family — 'actions' returns time-series insertion / detachment / update counts (date-bucketed); 'usages' returns the current attached-file map (one row per consuming file). Optional date window for the actions modes (YYYY-MM-DD; Figma keeps roughly 90 days). Enterprise-plan feature: lower plans get 403 even when the token is otherwise valid."
},
{
"name": "figma_read_local_variables",
"title": "Figma Read Local Variables",
"description": "Read the variable collections, variables, modes, and resolved values defined inside one Figma file (the local-only / unpublished surface). Returns variableCollections, variables, modeValues, and codeSyntax. Enterprise plan only — non-Enterprise calls return 403 with 'Variables API is only available to full members of Enterprise organizations.'"
},
{
"name": "figma_read_me",
"title": "Figma Read Me",
"description": "Read the Figma user the credential authenticates as. Returns id, email, handle, and img_url. Use as a low-cost validation probe before exercising team- or file-scoped tools."
},
{
"name": "figma_read_payments",
"title": "Figma Read Payments",
"description": "Read payment information for a Community resource you own (plugin / widget / file). Two query modes: (1) plugin/widget runtime — pass plugin_payment_token from getPluginPaymentTokenAsync; (2) server-side — pass user_id plus exactly one of plugin_id, widget_id, community_file_id. Returns the PaymentInformation object: paid status, subscription / one-time, price tier, purchase / grant date. Only your own resources are visible — other authors' resources return 404. Tier 3 endpoint."
},
{
"name": "figma_read_project_files",
"title": "Figma Read Project Files",
"description": "List files inside a Figma project. Returns each file's key, name, thumbnail_url, and last_modified. Pass branch_data=true to also receive branch metadata for files that have branches. project_id is required (no credential default — discover it from the team projects listing)."
},
{
"name": "figma_read_published_variables",
"title": "Figma Read Published Variables",
"description": "Read the variables a file has published to its team library (the surface other files consume). Returns variableCollections and variables keyed by their published subscription_key (the key used when consuming the variable from another file). Enterprise plan only."
},
{
"name": "figma_read_styles",
"title": "Figma Read Styles",
"description": "Read color, text, effect, and grid styles. Pass style_key to fetch one style by its global key. Otherwise scope to a file (file_key, defaults to credential) or to a team's published library (team_id, defaults to credential). file_key wins over team_id when both are supplied. Team scope supports cursor pagination (page_size, before, after). Each style row carries node_id (the source node inside its file), file_key, key, name, description, style_type, and thumbnail_url."
},
{
"name": "figma_read_team_projects",
"title": "Figma Read Team Projects",
"description": "List the projects (folders) inside a Figma team. team_id defaults to the value stored on the credential — pass team_id to scope to a different team. Returns each project's id and name. Requires a Figma Personal Access Token: Figma's /v1/teams/{id}/projects endpoint returns 404 for non-allowlisted OAuth public apps regardless of granted scopes."
},
{
"name": "figma_read_webhook_requests",
"title": "Figma Read Webhook Requests",
"description": "Read the recent delivery attempts for a webhook. Each row includes request_info (event_type, endpoint, payload, sent_at) and response_info (status, received_at, response_text). Use this to debug webhook delivery — non-2xx responses surface here with the body the receiver returned. Figma keeps a rolling window of recent attempts; older history is dropped."
}
]It can inspect files, nodes, images, components, component sets, styles, variables, comments, projects, webhooks, dev resources, and selected library analytics depending on account plan and credential scope.
Most workflows need a file key, team id, node id, or global library key. File keys come from Figma design or file URLs, and node ids identify specific frames or elements.
© 2026 ThinkChain Inc. All rights reserved.
Capabilities
30 tools · 1 groups
21 read · 9 write
Connector pricing
Yes. The render workflow can export selected nodes as PNG, JPG, SVG, or PDF, which helps agents inspect visuals and produce engineering notes.
Figma gates capabilities such as variables, webhooks, library analytics, activity logs, and dev resources by workspace plan, scopes, or seat type.
Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/figma. Authentication is handled automatically.
Figma provides 30 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.
Figma uses API Key or One-click sign in. Figma requires credentials. Connect via MCPBundles and authentication is handled automatically.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.
Other MCP servers in this category from the directory index