# Figma MCP connector

The Figma connector lets Claude, ChatGPT, Cursor, and the Elaichi Agent read your Figma files, components, styles, versions, and comments, and post comments back, with every person signed in as themselves and every action logged.

Source: https://elaichi.ai/connectors/figma/

## Facts

| | |
| --- | --- |
| Application | Figma |
| Category | Design |
| AI tools | 45 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 45 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Figma is connected

- List the files in our Design System project.
- Show unresolved comments on the checkout flow file.
- Which components changed in this file since last week?

## Connect Figma in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Figma.
2. Optionally set Share with, then press Connect.
3. Supply your own Figma app, then approve. Figma needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Figma tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Figma to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Figma to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Figma to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Figma to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Figma tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Figma through Elaichi

### Read the comment thread before a review

Design. Ask for every open comment on a file and who left it, then walk into the review already knowing where the disagreements are.

### Leave feedback without opening the file

Product. Post a comment on a specific frame in Figma from Claude while writing the spec, and react to a teammate's comment to show it has been seen.

### Find the right component before building

Engineering. Look up a component or component set by name, read its description, and confirm which file it lives in so the build matches the library.

### Check a page against the style library

Brand. Pull the team's color and text styles from Figma and compare them with what a landing page or deck is actually using.

### See what changed in a file this week

Design ops. List a file's version history and the team's recent activity in Figma to catch up after time away or prepare a weekly update.

### Grab a frame for the launch post

Marketing. Ask for an image of a named frame in Figma and drop it into release notes or a campaign brief without exporting by hand.

## Frequently asked questions

### How do I connect Figma to Claude?

Connect Figma in Elaichi first, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Figma asks each company to register its own OAuth application inside Figma, so an administrator brings a client ID and secret once when setting up the connector in Elaichi. After that, each person simply approves access in the normal Figma sign-in window and nobody else handles a credential.

### Does Figma work with ChatGPT and Cursor as well as Claude?

Yes. Once Figma is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Figma once and every client your team uses can reach it.

### What can an AI agent actually do with my Figma files?

An agent can browse your Figma teams, projects, and files, read the comments on a file, list version history and recent activity, and look up components, component sets, and styles from your libraries. It can also fetch an image of a frame, post a comment, and add or remove a reaction. Short, specific asks such as "list open comments on the checkout file" work better than long paragraphs.

### Does connecting Figma give the AI access to every file in my workspace?

No. Access follows the person who signed in, so the agent only sees the Figma teams, projects, and files that person can already open. Elaichi can narrow that further with restrictions, and it can never widen access beyond what Figma itself allows that person.

### Can my team share one Figma connection?

Yes. One person connects Figma in Elaichi and shares the connection with a team, so nobody else has to register an application or touch a client secret. Each teammate still signs in to Figma as themselves, so their own permissions apply and the audit log names the actual person behind every comment or lookup.

### Can I stop an agent from deleting or changing things in Figma?

Yes. In Figma the connector can only create and delete comments and reactions, and each of those actions can be blocked separately in Elaichi. A blocked action is never shown to Claude, ChatGPT, Cursor, or any other client, so no prompt can trigger it, and the rest of the connector keeps working read-only.

### What happens to a Figma connection when someone leaves the company?

Offboarding a person in Elaichi ends their access to Figma through every AI client at once. If they connected Figma and shared it with a team, the shared connection keeps working for everyone else. Disconnecting Figma once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 45 Figma tools

Every tool below is callable through https://api.elaichi.ai/mcp once Figma is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Figma activity logs** (List). List activity logs in Figma. Returns fields such as event type, timestamp, and user details. Requires id of organization context automatically inferred from the token.
- **List all Figma me** (List). Get information about the authenticated user in Figma. Returns id (unique user identifier), handle (user name), img_url (profile image URL), and email (user email).
- **Get single Figma file by ID** (Get). Get details of a file in Figma using id. Returns name, lastModified, thumbnailUrl, editorType, linkAccess, and version as metadata, along with document structure, components, componentSets, schemaVersion, styles, mainFileKey, and branches.
- **List all Figma team projects** (List). List projects in a specified Figma team using team_id. Returns project fields such as id, name, and last_modified that identify and describe each visible project.
- **List all Figma project files** (List). List files in a given project in Figma. Requires project_id. Returns file details such as name, key, thumbnail_url, and file type in the response.
- **List all Figma comments** (List). Get comments for a file in Figma using key. Returns an array of comments, each containing message text, user info, created time, and related file context.
- **Create a Figma comment** (Create). Create a new comment in Figma for the specified file_key. Returns the created comment including id, message, and position metadata.
- **Delete a Figma comment by ID** (Delete). Delete a specific comment in Figma using file_key and id. Only the user who created the comment can delete it. The response returns no content.
- **List all Figma comments reactions** (List). List reactions on a comment in Figma. Requires file_key and comment_id. Returns reaction details including emoji type, user who reacted, and timestamp.
- **Create a Figma comments reaction** (Create). Create a reaction on a specific comment in Figma. Requires file_key and comment_id. Returns no content in the response.
- **Delete a Figma comments reaction by ID** (Delete). Delete a specific comment reaction in Figma. Requires file_key and comment_id. Only the reaction author can delete it. Returns no content in the response.
- **List all Figma file versions** (List). List all versions of a file in Figma. Requires key. Returns an array of versions along with pagination details including prev_page and next_page.
- **List all Figma team components** (List). List published team-components in Figma using team_id. Returns component key, name, description, containing frame, file key, and thumbnail URL.
- **List all Figma file components** (List). List published file-components in Figma for a specified file_key. Returns component metadata including name, description, and key identifiers. Requires a main file_key (not a branch key).
- **Get single Figma component by ID** (Get). Get metadata about a specific component in Figma using id. Returns key properties such as name, description, and component metadata for the specified id.
- **List all Figma team component sets** (List). List published component sets in a team library in Figma. Requires team_id. Returns component set details like name, key, and description for each published component set.
- **List all Figma file component sets** (List). List published component sets in a Figma file. Requires file_key as the main file key (not a branch). Returns each component set’s key, name, description, and node_id for published components.
- **Get single Figma component set by ID** (Get). Get metadata about a specific component-set in Figma using id. Returns key details such as key, file_key, node_id, thumbnail_url, name, description, updated_at, created_at, user, and containing_frame.
- **List all Figma team styles** (List). List published team-styles in Figma for the specified team_id. Returns style id, name, description, key, file_key, node_id, and other metadata.
- **List all Figma file styles** (List). List published file-styles in Figma for a given file_key. The response returns each style’s id, key, name, style_type, and description.
- **Get single Figma style by ID** (Get). Get metadata about a specific style in Figma. Requires id. Returns fields such as name, description, style_type, key, and file_key representing the style's attributes and source file.
- **Get single Figma file node by ID** (Get). Get nodes from a specific file in Figma using key and ids. Returns metadata fields such as name, lastModified, thumbnailUrl, editorType, version, as well as document, components, and styles mappings. Some nodes may be null if ids are invalid.
- **Get single Figma image by ID** (Get). Get rendered images from a specific file in Figma. Requires key. Returns a map of node IDs to image URLs, with null values for nodes that failed rendering. Images expire after 30 days.
- **Get single Figma image fill by ID** (Get). Get image fills in Figma for a file identified by key. Requires key. Returns a mapping of image references to temporary download URLs that expire after 14 days.
- **Get single Figma file metadatum by ID** (Get). Get metadata for a specific file in Figma using id. Returns key file details such as name, last_modified, and thumbnail_url in the response.
- **List all Figma webhooks** (List). List webhooks in Figma. Returns information about webhooks such as id, event type, team or project context, and callback URL. Requires context, context_id, or plan_api_id.
- **Get single Figma webhook by ID** (Get). Get details about a specific webhook in Figma using id. Returns webhook id, event type, and related configuration information.
- **Create a Figma webhook** (Create). Create a new webhook in Figma that triggers when the specified event occurs. Requires event_type, context, context_id, endpoint, and passcode. Returns WebhookV2 with fields like id, event_type, and status in the response.
- **Update a Figma webhook by ID** (Update). Update a specific webhook in Figma using id. Returns the updated webhook object including event_type, endpoint, passcode, status, and description fields.
- **Delete a Figma webhook by ID** (Delete). Delete a specific webhook in Figma using id. Returns the deleted WebhookV2 object, confirming the webhook was successfully removed.
- **List all Figma discovery** (List). Get text event discovery data from Figma for a given time range. Requires start_date. Returns urls containing downloadable JSON files of text events organized by hour, along with error, status, and i18n fields.
- **Get single Figma payment by ID** (Get). Get payment information in Figma using plugin_payment_token. Returns details such as payment status, amount, and user-related payment data.
- **List all Figma variables** (List). List local and remote variables for a given file in Figma. Requires file_key. Returns variable and variable collection objects including modes and subscribed_id for remote variables.
- **Create a Figma variable** (Create). Bulk create, update, or delete variables and variable collections in Figma for a file identified by file_key. Returns tempIdToRealId mapping for created objects and ensures atomic operations across variableCollections, variableModes, variables, and variableModeValues.
- **List all Figma published variables** (List). Get published variables in Figma for a specific file using file_key. Returns each variable's id, subscribed_id, key, and updatedAt timestamps, showing current published state and update times.
- **List all Figma dev resources** (List). Get dev resources in a Figma file. Requires file_key. Returns dev_resources including metadata about developer resources associated with nodes in the file.
- **Create a Figma dev resource** (Create). Create multiple dev-resources across Figma files. Returns links_created containing successfully created dev-resources and errors listing any failures due to invalid file_key, duplicate URLs, or resource limits.
- **Update a Figma dev resource by ID** (Update). Bulk update dev resources in Figma. Requires a list of dev_resources. Returns links_updated for successfully updated resources and errors for failed ones.
- **Delete a Figma dev resource by ID** (Delete). Delete a specific dev resource from a Figma file using file_key and id. Nothing is returned from this endpoint.
- **List all Figma component actions** (List). Get historical component actions in Figma for a specific library using library_file_key and group_by. Returns action counts (insertions and detachments) ordered from most recent to least recent.
- **List all Figma component usage** (List). Get component usage data in Figma for a specific library using library_file_key. Returns usage information grouped by components or files, including component names, number of files, teams, and instance counts.
- **List all Figma styles actions** (List). Get style usage analytics actions in Figma for a specific library_file_key and required group_by parameter. Returns time series data of style actions ordered from most recent to least recent, including style or team breakdowns.
- **List all Figma styles usage** (List). Get style usage data in Figma for a specific library_file_key. Returns usage grouped by style or file, including details on how styles are used across files and teams. Rows include only teams or styles with data.
- **List all Figma variables actions** (List). Get variable usage analytics actions in Figma for a specific library_file_key and group_by parameter. Returns time series data including actions grouped by variable or team, listed from most recent to least recent.
- **List all Figma variables usages** (List). Get usage data of variables in Figma using library_file_key and group_by. Returns files_using, teams_using, usages, variable_key, variable_name, variable_type, collection_key, and collection_name in the response.
