Connect your account, then chat with AI to run tools.
Figma REST API for design file management, components, styles, and collaboration. Access files, nodes, components, styles, variables, comments, and project data. Perfect for design systems, asset extraction, design-to-code workflows, and design automation.
Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.
Browse all toolsDomain knowledge for Figma — workflow patterns, data models, and gotchas for your AI agent.
Figma's REST API addresses everything by file, team, or global key.
file_key — the segment after /design/ or /file/ in a Figma share URL: figma.com/design/<FILE_KEY>/Name. The credential carries an optional default; pass file_key explicitly to target a different file.team_id — the segment after /team/ in a team URL: figma.com/files/team/<TEAM_ID>/. The credential carries an optional default.node_id — <page_id>:<index> (e.g. 1:2); discoverable from the file tree.component_key / component_set_key / style_key — global keys used to fetch a single library entity directly.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.
file_keys when you don't already have one.ids= to read only those nodes — same response shape, partial reads are dramatically cheaper for large design systems.component_key / component_set_key / style_key) for single fetch; otherwise scope to file_key (file-local) or team_id (published library). file_key wins when both are supplied. Team scope supports cursor pagination via page_size + before / after.ids= (comma-separated node ids) to switch from "full file tree" to "deep node read" — the response shape matches.kind (component / style / variable) and mode (actions time series / usages current map).webhook_id for single, otherwise list scoped to team_id.file_key, optionally narrowed to one node_id.upsert_* tools dispatch on whether an id-like argument is present:
webhook_id to create (POST), pass it to update (PUT). Use status='PAUSED' to temporarily stop delivery without deleting.id go in the create batch (POST), items with id go in the update batch (PUT). The response merges both branches and surfaces per-item errors.variableCollections, variableModes, variables, and variableModeValues in one transaction with per-item action of CREATE / UPDATE / DELETE. Temporary client ids (tmp_…) round-trip in the response.create_* / delete_* rather than upsert_*. To "edit" a comment, delete and recreate.scale runs 0.01–4 (retina = 2).svg_outline_text=true (default) converts text to vector paths for pixel parity; svg_include_id / svg_include_node_id emit attributes for round-tripping.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:
400 Upgrade to professional team to enable webhooks. Listing webhooks works on every plan.org:activity_log_read scope.Two credential shapes are supported. The framework injects whichever is bound for the workspace:
X-Figma-TokenAuthorization: Bearer …Figma rate-limits per token (~Tier 3 endpoints are tighter — payments, activity logs). On 429, back off; rate-limit windows reset within ~60 seconds.
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...
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 ...
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.
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 th...
Delete one dev resource by id. Permanent — there is no undo. file_key defaults to the credential.
Delete a webhook. Permanent — there is no undo. To stop delivery without deleting, use figma_upsert_webhook with status='PAUSED'. Requires team admin ...
Read the org activity log. Filter on events (comma-separated list of event types — empty returns every event), start_time / end_time (Unix seconds — d...
List reactions on a Figma comment. Each row carries the reacting user, the emoji shortcode, and created_at. Cursor pagination via cursor=. Reaction em...
List comments on a Figma file. Each comment carries id, message, user, created_at, resolved_at, parent_id (for replies), client_meta (the canvas regio...
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). Oth...
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 ...
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 ...
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-nod...
Read lightweight metadata for a Figma file — name, role, last_touched_at, editor_type, link_access, creator, owner, and folder ancestry — without down...
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 back t...
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=IM...
Read library analytics for a published Figma library. kind picks the entity (component / style / variable) and mode picks the metric family — 'actions...
Read the variable collections, variables, modes, and resolved values defined inside one Figma file (the local-only / unpublished surface). Returns var...
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...
Read payment information for a Community resource you own (plugin / widget / file). Two query modes: (1) plugin/widget runtime — pass plugin_payment_t...
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 metad...
Read the variables a file has published to its team library (the surface other files consume). Returns variableCollections and variables keyed by thei...
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 crede...
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. R...
Read the recent delivery attempts for a webhook. Each row includes request_info (event_type, endpoint, payload, sent_at) and response_info (status, re...
Read webhooks. Pass webhook_id to fetch one webhook (returns id, team_id, event_type, endpoint, status, description, passcode, plan_api_id). Otherwise...
Render specific Figma nodes as image assets. Returns a dict keyed by node id → download URL (valid ~30 days). format=png (default, lossless+alpha) | j...
Create or update dev resources in bulk (max 100 per call). Items without an id are POSTed (create — node_id, name, url all required); items with an id...
Bulk create / update / delete variable collections, variables, modes, and modeValues in one transactional call. The body is Figma's batch envelope — e...
Create or update a webhook. Omit webhook_id to create (POST /v2/webhooks — event_type, endpoint, passcode required; team_id defaults to credential). P...
Figma REST API for design file management, components, styles, and collaboration. Access files, nodes, components, styles, variables, comments, and project data. Perfect for design systems, asset extraction, design-to-code workflows, and design automation. It provides 30 tools that AI agents can use through the Model Context Protocol (MCP).
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.
Connect Figma to any MCP client in minutes
Model Context Protocol lets AI tools call external capabilities securely through a single URL. This MCP server groups tools behind an endpoint that many clients can use.
Skip the manual setup! Use the .mcpb file format for one-click installation. Check the Claude Desktop tab for setup instructions.
Select ChatGPT, Cursor, Claude Code, or another tab for copy-paste config.
More collaboration integrations you might like
Agent Arena Registry allows users to search for agents, retrieve their profiles, and register new ag...
This server provides a full-featured platform for managing job listings and agent interactions, incl...
Official Airtable MCP server providing AI-powered access to Airtable bases, tables, records, and sch...
This server facilitates the creation and management of design assets, allowing users to convert desi...
Online proofing and design review platform for creative teams. Provides annotation tools, version co...
Atlassian provides software development and collaboration tools including Jira for project tracking,...