Figma
Design files, prototypes, team libraries.
Verdict
Common use cases
- Post design feedback from standup chat
- Create webhooks for file update notifications
- Batch-update design tokens across components
- Attach dev tickets to specific frame nodes
- React to comments without opening Figma
Integration
- Vendor
- Figma
- Category
- developer-tools
- Auth
- OAUTH2
- Tools
- 49
- Composio slug
figma
Tools
- Add a comment to a file
Posts a new comment to a figma file or branch, optionally replying to an existing root comment (replies cannot be nested); `region height` and `region width` in `client meta` must be positive if defining a comment region.
- Add a reaction to a comment
Posts a specified emoji reaction to an existing comment in a figma file or branch, requiring valid file key and comment id.
- Create a webhook
Creates a figma webhook for a `team id` to send post notifications for an `event type` to a publicly accessible https `endpoint`; an initial ping is sent unless `status` is `paused`.
- Create dev resources
Creates and attaches multiple uniquely-urled development resources to specified figma nodes, up to 10 per node.
- Create, modify, or delete variablesdestructive
Manages variables, collections, modes, and their values in a figma file via batch create/update/delete operations; use temporary ids to link new related items in one request and ensure `variablemodevalues` match the target variable's `resol
- Delete a commentdestructive
Deletes a specific comment from a figma file or branch, provided the authenticated user is the original author of the comment.
- Delete a reactiondestructive
Deletes a specific emoji reaction from a comment in a figma file; the user must have originally created the reaction.
- Delete a webhookdestructive
Permanently deletes an existing webhook, identified by its unique `webhook id`; this operation is irreversible.
- Delete dev resourcedestructive
Deletes a development resource (used to link figma design elements to external developer information like code or tasks) from a specified figma file.
- Design tokens to tailwind
Convert design tokens to tailwind css configuration. takes the output from extractdesigntokens and generates: - tailwind.config.ts/js with theme extensions - optional globals.css with font imports note: shadow colors can be provided in eith
- Detect background
Detect background layers for selected nodes. uses geometric analysis, z-index ordering, and visual properties to identify potential background layers.
- Discover Figma Resources
🔍 smart figma resource discovery - never guess ids again! 🎯 easiest method: just paste any figma url to get all ids: • file urls: https://www.figma.com/file/abc123/design → get file key • design urls: https://www.figma.com/design/abc123/d
- Download Figma Images
Download images from figma file nodes. renders specified nodes as images and downloads them using mercury's filedownloadable infrastructure. supports png, svg, jpg, and pdf formats.
- Extract design tokens
Extract design tokens from figma files. combines styles, variables, and extracted values to create a comprehensive design token system.
- Extract Prototype Interactions
Extract prototype interactions and animations from figma files. analyzes the prototype data to extract: - user interactions (clicks, hovers, etc.) - transition animations - component variant states - user flows and navigation
- Get activity logs
Retrieves activity log events from figma, allowing filtering by event types, time range, and pagination.
- Get a webhook
Retrieves detailed information about a specific webhook by its id, provided the webhook exists and is accessible to the user.
- Get comments in a file
Retrieves all comments from an existing figma file, identified by a valid `file key`, returning details like content, author, position, and reactions, with an option for markdown formatted content.
- Get component
Get component data with automatic simplification. returns clean, ai-friendly component structure.
- Get component set
Retrieves detailed metadata for a specific published figma component set using its unique `key`.
- Get current user
Retrieves detailed information for the currently authenticated figma user.
- Get dev resources
Retrieves development resources (e.g., jira/github links) for a figma main file, optionally filtering by specific node ids.
- Get file components
Retrieves published components from a figma file, which must be a main file (not a branch) acting as a library.
- Get file component sets
Retrieves all published component sets from the specified figma main file (file key must not be for a branch).
- Get file json
Get figma file data with automatic simplification. this enhanced version automatically transforms verbose figma json into clean, ai-friendly format with: - css-like property names - deduplicated variables - removed empty values - 70%+ size
- Get files in a project
Fetches a list of files in a figma project, optionally including branch metadata.
- Get file styles
Retrieves a list of published styles (like colors, text attributes, effects, and layout grids) from a specified main figma file (not a branch).
- Get image fills
Retrieves temporary (14-day expiry) download urls for all image fills in a figma file; requires `imageref` from `paint` objects to map urls.
- Get library analytics component action data
Retrieves component insertion and detachment analytics for a specified figma library, groupable by 'component' or 'team' and filterable by a date range (yyyy-mm-dd).
- Get library analytics component usage data
Retrieves component usage analytics for a specified figma library file (identified by `file key`), with data groupable by 'component' or 'file'.
- Get library analytics style action data
Retrieves style usage analytics (insertions, detachments) for a figma library, grouped by 'style' or 'team'; if providing a date range, ensure end date is not before start date.
- Get library analytics style usage data
Retrieves style usage analytics for a figma library (specified by a valid `file key`), allowing data to be grouped by 'file' or 'style'.
- Get library analytics variable action data
Retrieves weekly, paginated analytics data on variable insertions and detachments for a specified figma library (identified by `file key`), groupable by 'variable' or 'team', and filterable by an optional date range.
- Get library analytics variable usage data
Retrieves paginated analytics data on variable usage from a specified figma library, grouped by 'file' or 'variable', for libraries with enabled analytics.
- Get local variables
Retrieves all local/remote variables for a figma file/branch; crucial for obtaining mode-specific values which `/v1/files/{file key}/variables/published` omits.
- Get payments
Retrieves a user's payment information for a figma plugin, widget, or community file; the authenticated identity must own the resource.
- Get projects in a team
Retrieves projects within a specified figma team that are visible to the authenticated user.
- Get published variables
Retrieves variables published from a specified figma file; this api is available only to full members of enterprise organizations.
- Get reactions for a comment
Retrieves reactions for a specific comment in a figma file.
- Get style
Retrieves detailed metadata for a specific style in figma using its unique style key.
- Get team components
Retrieves components published in a specific figma team's library; the team must have published components, otherwise an empty list is returned.
- Get team component sets
Retrieves a paginated list of published component sets (collections of reusable ui elements) from a specified figma team's library.
- Get team styles
Retrieves a paginated list of published styles, such as colors or text attributes, from a specified figma team's library.
- Get team webhooks
Retrieves all webhooks registered for a specified figma team.
- Get versions of a file
Retrieves the version history for a figma file or branch, as specified by its `file key`.
- Get webhook requests
Retrieves a history of webhook requests for a specific figma webhook subscription; data is available for requests sent within the last seven days.
- Render images of file nodes
Renders specified nodes from a figma file as images (jpg, pdf, png, svg), returning a map of node ids to image urls (or `null` for failed nodes); images expire after 30 days and are capped at 32 megapixels (larger requests are scaled down).
- Update a webhook
Updates an existing figma webhook, identified by `webhook id`, allowing modification of its event type, endpoint, passcode, status, or description.
- Update dev resources
Updates the name and/or url of one or more existing figma dev resources, each identified by its unique `id`.
Setup
Setup guide
- 11. In Switchy, open your Space settings and click 'Add Integration'. 2. Search for Figma and click 'Connect'. 3. You'll land on Figma's OAuth consent screen — sign in with your Figma account and authorize Switchy to read and write files, comments, and webhooks for your team. 4. Grant the 'file:read', 'file:write', 'webhooks:write', and 'comments:write' scopes when prompted. 5. After redirect, Switchy confirms the connection and shows which Figma team you linked. 6. Test it by opening a Space, typing '@Figma list recent files', and confirming you see your team's projects. 7. To invoke a tool, @mention Figma in any message — for example '@Figma add comment to file [file-key] saying "Ship this version"' posts directly to that file.
What teammates see: by default, memories from Figma are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Comment on Latest Mockup
@Figma add a comment to the latest file in project [project-name] saying 'Approved for dev handoff, let's sync on spacing tomorrow.'Open in a Space →
Set Up Change Webhook
@Figma create a webhook for team [team-id] that sends FILE_UPDATE events to this Space's endpoint.Open in a Space →
Batch Update Variables
@Figma update all color variables in collection [collection-id] to match the new brand palette: primary #0066FF, secondary #00CC88.Open in a Space →
Attach Dev Resource
@Figma attach dev resource https://jira.company.com/browse/PROJ-123 to node [node-id] in file [file-key].Open in a Space →
React to Feedback
@Figma add a thumbs-up reaction to comment [comment-id] in file [file-key].Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@figma show me all comments on the design-system-tokens file from the last week that mention color variables
Found 7 comments on design-system-tokens matching your criteria. Three discuss the new semantic color tokens (primary-action, surface-elevated), two flag accessibility contrast issues in the dark mode palette, and two request documentation for the gradient variables. Most recent comment from Sarah Chen 2 days ago: 'Should we alias these to the primitive tokens or keep them independent?' All comments include thread context and timestamps for follow-up.
This example shows Figma's comment-retrieval capabilities paired with AI filtering. Requires read:comment OAuth scope. The MCP returns raw comment data; the AI interprets 'mentions color variables' by scanning comment text. Useful for design-system audits, but won't catch comments on frames/layers without explicit text matches.
@figma create a dev resource linking the Button component in our library to the React implementation in GitHub, then add a comment tagging the eng team
Created dev resource on Button component (node ID: 123:456) with URL https://github.com/acme/ui/blob/main/src/Button.tsx and name 'React Implementation'. Posted comment: '@eng-team React component now linked directly in Figma — props match design tokens 1:1.' The resource appears in Figma's Dev Mode inspect panel, and the comment notifies all tagged users. Both actions logged to your team's activity feed.
Demonstrates write capabilities: dev resources bridge design-to-code, and comments notify collaborators. Requires file:write and comment:write scopes. Side-effect: the comment is permanent and visible to all file viewers. Dev resources support up to 10 URLs per node; exceeding this returns a 400 error.
@figma compare the color variables in our staging file versus production, then draft a migration plan for any mismatches
Retrieved 42 color variables from staging (file ABC123) and 38 from production (file XYZ789). Found 4 discrepancies: staging adds `accent-purple` and `warning-amber`, production still uses deprecated `alert-red` and `highlight-yellow`. Staging's `surface-elevated` uses a different hex value (#F5F5F7 vs #F0F0F2). Draft migration: (1) create the 2 new variables in production via batch operation, (2) alias old names to new for backwards compatibility, (3) update 14 components referencing deprecated tokens. Estimated 2-hour design-system sync required.
Showcases variable-management tools plus AI synthesis. The MCP fetches variable collections from both files; the AI diffs them and proposes a plan. Requires variables:read scope (variables:write needed to execute the plan). Variable operations are batched—up to 1000 changes per request—but complex migrations may need multiple calls to stay under Figma's rate limits.
Use-case deep-dives
When Figma MCP closes the designer-engineer gap
A 6-person product team ships features every two weeks. Engineers pull specs from Figma, but questions pile up in Slack threads that designers answer hours later. The Figma MCP lets the team's shared AI agent read file metadata, post clarifying questions as comments, and attach dev resources (Storybook links, implementation notes) directly to nodes—all without leaving the chat. The agent can also pull variable definitions to confirm token usage before a PR goes up. This works when your design system lives in Figma and handoffs happen multiple times a week. If your team uses Figma only for mockups and never comments in-file, the MCP is overkill—stick with screenshot uploads. For teams doing continuous delivery with a living design system, this MCP turns Figma into a two-way collaboration surface instead of a one-way export tool.
How Figma webhooks automate feature request triage
A 3-person support team fields 40+ feature requests a week. They log patterns in a spreadsheet, then manually tag designers in Figma files once a month. The Figma MCP's webhook tooling lets the team's AI agent subscribe to file updates and comment activity, then cross-reference new designs against the request backlog. When a designer publishes a prototype that matches a logged request, the agent posts a comment tagging the support lead and links the original ticket. This saves 2-3 hours of manual triage per sprint. The threshold: your team must already use Figma comments as a source of truth. If designers work in branches and never publish to shared files, webhooks fire on noise you don't care about. For support-driven product teams with active Figma collaboration, this MCP closes the loop between customer voice and design iteration without adding a new tool.
When variable management scales beyond manual updates
A 10-person engineering org maintains 8 repos that consume design tokens from Figma. A designer updates the primary color palette, but 4 repos still reference the old hex values two weeks later. The Figma MCP's variable batch operations let the team's AI agent read the current token set, compare it against code, and flag drift in a daily standup summary. The agent can also create new variables when a designer describes a token change in chat, then confirm the update landed in Figma before engineers start a refactor. This works when your design system is the source of truth and token changes happen at least monthly. If your tokens live in code and Figma is just a visual reference, the MCP adds complexity you don't need. For teams doing design-system-first development with Figma as the canonical source, this MCP prevents the silent drift that breaks visual consistency.
Frequently asked
What can Switchy do with Figma MCP?
Switchy's Figma MCP lets your AI agents read designs, post comments, manage dev resources, create webhooks, and manipulate variables across files and branches. It's useful for automating design handoff tasks, syncing design tokens to code, or building bots that comment on review cycles. The MCP doesn't edit canvas objects directly — it works with metadata, comments, and developer-facing resources.
What OAuth scopes does Figma MCP request?
Figma OAuth typically requests file read/write, comment write, webhook management, and variables access. You'll authenticate once in Switchy; the token covers all 49 tools. If your Figma workspace has SSO or restricted API access, check with your admin before connecting — some orgs lock down OAuth apps by default.
Can Figma MCP edit design layers or create new frames?
No. The MCP reads file structure and metadata but doesn't modify canvas content. You can't add rectangles, change fill colours, or duplicate frames. For that, use Figma's REST API directly or the desktop plugin API. Switchy's MCP is built for comment workflows, dev resource tagging, and variable management — not visual design automation.
How is this different from just using Figma's API?
Figma's REST API requires you to write auth flows, parse JSON responses, and handle pagination yourself. Switchy's MCP wraps those calls into natural-language tools your AI agents can invoke directly. If you're already scripting Figma in Python or Node, stick with the API. If you want agents to comment on files or sync variables without writing code, use the MCP.
Who on the team should connect Figma to Switchy?
Whoever owns the Figma workspace or has admin rights to approve OAuth apps. The connected account's permissions determine what the MCP can access — if they can't edit a file, neither can Switchy. For shared workflows, connect a service account or bot user so the integration doesn't break when someone leaves.