Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.prisme.ai/llms.txt

Use this file to discover all available pages before exploring further.

Figma The Figma app provides access to the Figma design platform via its REST API. It can be used either as a Builder app (automations call Figma instructions directly) or as a remote MCP server consumed by an AI agent — covering files, nodes, rendered images, comments, projects, components, styles, webhooks, variables, dev resources and library analytics. The MCP layer groups the 46 operations into 13 entity tools, each driven by an action argument. Supports both a static Personal Access Token and OAuth2 authorization-code per-user delegation.

Design Files

Files, nodes, rendered images, version history, components and styles

Collaboration

Comments, reactions, dev resources, webhooks and library analytics

Flexible Auth

Static Personal Access Token shared across the tenant, or OAuth2 per-user delegation (each user signs in with their own Figma account)

Prerequisites

  • A Figma account
  • Either a Personal Access Token (Figma Settings > Security > Personal access tokens) with the read/write scopes you need, or an OAuth2 app registered at Figma > Developers > My apps (https://www.figma.com/developers/apps)
  • Some endpoints require specific scopes: variables need file_variables:read / file_variables:write, library analytics need library_analytics:read, and activity logs need an OAuth token with org:activity_log_read (Enterprise only)
  • Base URL (default: https://api.figma.com — paths already include /v1 or /v2)
Figma variables, dev resources and library analytics are gated by plan tier (Enterprise / Organization). The connector exposes them, but the Figma API returns 403 if your account or token is not entitled.

Installation

  1. Go to Apps in your workspace
  2. Search for Figma and install it
  3. Open the app instance configuration and fill in the required fields

Configuration

FieldDescription
Figma API Base URLBase URL of the Figma API (default https://api.figma.com).
Personal Access TokenFigma Personal Access Token, stored as a workspace secret. Optional if OAuth2 is configured. Sent as the X-Figma-Token header.
OAuth2 Client IDFigma OAuth app Client ID. Create an app at https://www.figma.com/developers/apps. Stored as a workspace secret.
OAuth2 Client SecretFigma OAuth app Client Secret, stored as a workspace secret.
OAuth Callback URLAuto-populated on install — paste this value into the OAuth app’s redirect URL field at Figma.
OAuth Authorize URLDefault https://www.figma.com/oauth.
OAuth Token URLDefault https://api.figma.com/v1/oauth/token (the refresh endpoint /v1/oauth/refresh is derived from it).
OAuth ScopesSpace-separated Figma OAuth scopes. A broad read/write default is provided.
Refresh Token TTL (seconds)How long to retain the stored refresh token. Default 7776000 (90 days).
MCP EndpointAuto-populated on install — URL of the MCP endpoint for this instance.
MCP API KeyAuto-populated on install — signed key used in the mcp-api-key header. Do not modify.
MCP Endpoint and MCP API Key are generated automatically by the onInstall flow and are only needed to expose this instance as an MCP server (see the next tab).

OAuth2 per-user setup (optional)

To let each user act with their own Figma account instead of a shared token:
  1. Create an OAuth app at Figma > Developers > My apps.
  2. After installing the Prisme.ai app, copy the OAuth Callback URL from the configuration and paste it into the Figma OAuth app’s redirect URL field.
  3. Paste the Figma app’s Client ID and Client Secret into OAuth2 Client ID / OAuth2 Client Secret.
  4. Users authorize on first use via the connect tool (MCP) — a per-user refresh token is stored and reused.

Available Instructions

Every instruction resolves credentials from the workspace configuration.

Files

InstructionArguments
getFilefile_key*, version, ids, depth, geometry, plugin_data, branch_data
getFileNodesfile_key, ids, version, depth, geometry, plugin_data
getFileMetafile_key*
getFileVersionsfile_key*, page_size, before, after

Images

InstructionArguments
getImagesfile_key, ids, version, scale, format, svg_outline_text, svg_include_id, svg_include_node_id, svg_simplify_stroke, contents_only, use_absolute_bounds
getImageFillsfile_key*

Comments

InstructionArguments
getCommentsfile_key*, as_md
postCommentfile_key, message, comment_id, client_meta
deleteCommentfile_key, comment_id
getCommentReactionsfile_key, comment_id, cursor
postCommentReactionfile_key, comment_id, emoji*
deleteCommentReactionfile_key, comment_id, emoji*

Projects

InstructionArguments
getTeamProjectsteam_id*
getProjectFilesproject_id*, branch_data

Components

InstructionArguments
getTeamComponentsteam_id*, page_size, after, before
getFileComponentsfile_key*
getComponentkey*
getTeamComponentSetsteam_id*, page_size, after, before
getFileComponentSetsfile_key*
getComponentSetkey*

Styles

InstructionArguments
getTeamStylesteam_id*, page_size, after, before
getFileStylesfile_key*
getStylekey*

Users

InstructionArguments
getMe

Webhooks

InstructionArguments
getWebhookscontext, context_id, plan_api_id, cursor
postWebhookevent_type, endpoint, passcode*, team_id, status, description, plan_api_id, context, context_id
getWebhookwebhook_id*
putWebhookwebhook_id*, event_type, endpoint, passcode, status, description
deleteWebhookwebhook_id*
getTeamWebhooksteam_id*
getWebhookRequestswebhook_id*

Variables

InstructionArguments
getLocalVariablesfile_key*
getPublishedVariablesfile_key*
postVariablesfile_key*, variableCollections, variableModes, variables, variableModeValues

Dev Resources

InstructionArguments
getDevResourcesfile_key*, node_ids
postDevResourcesdev_resources*
putDevResourcesdev_resources*
deleteDevResourcefile_key, dev_resource_id

Library Analytics

InstructionArguments
getLibraryAnalyticsComponentActionsfile_key, group_by, cursor, start_date, end_date
getLibraryAnalyticsComponentUsagesfile_key, group_by, cursor
getLibraryAnalyticsStyleActionsfile_key, group_by, cursor, start_date, end_date
getLibraryAnalyticsStyleUsagesfile_key, group_by, cursor
getLibraryAnalyticsVariableActionsfile_key, group_by, cursor, start_date, end_date
getLibraryAnalyticsVariableUsagesfile_key, group_by, cursor

Activity Logs

InstructionArguments
getActivityLogsevents, start_time, end_time, limit, order

Embed

InstructionArguments
getOEmbedurl*, maxwidth, maxheight
Arguments flagged with * are required.

DSUL Examples

Read a file’s metadata

- Figma.getFileMeta:
    file_key: '{{fileKey}}'
    output: meta

Post a comment on a file

- Figma.postComment:
    file_key: '{{fileKey}}'
    message: Please review the updated hero section.
    output: comment

Render PNGs of selected nodes

- Figma.getFile:
    file_key: '{{fileKey}}'
    depth: 1
    output: file
- Figma.getImages:
    file_key: '{{fileKey}}'
    ids: '1:23,1:45'
    format: png
    scale: 2
    output: renders

Subscribe to file updates with a webhook

- Figma.postWebhook:
    event_type: FILE_UPDATE
    context: file
    context_id: '{{fileKey}}'
    endpoint: 'https://example.com/figma-hook'
    passcode: '{{webhookSecret}}'
    output: webhook

Error Handling

HTTP StatusErrorSolution
400Bad requestCheck argument shapes (node ids, dates, enum values)
401UnauthorizedVerify the Personal Access Token, or re-authorize OAuth
403ForbiddenThe token lacks the required scope or plan entitlement — Figma names the missing scope in the error message
404Not FoundVerify the file_key, team_id, project_id or resource id
429Rate LimitedFigma throttles per token; back off and retry
500Server ErrorTransient Figma issue; retry after a few seconds

Common Issues

“Not configured” — The app instance has no credentials. Add a Personal Access Token (or configure OAuth2) in the app configuration. “Invalid API key” (MCP) — The mcp-api-key header does not match the central app secret. Reinstall the app instance to regenerate a signed key. “Credentials lookup failed” — The MCP endpoint could not reach the getConfig webhook of the installed app. Verify that the app instance is still installed in the expected workspace. “Invalid scope” — The Personal Access Token (or OAuth grant) was created without a scope an endpoint requires. Variables endpoints need file_variables:read / file_variables:write, library analytics need library_analytics:read. Regenerate the token with the missing scope enabled. Activity logs require OAuthgetActivityLogs (the activityLogs tool) only accepts an OAuth bearer token with org:activity_log_read; a Personal Access Token is rejected. This endpoint is Enterprise-only. PAT vs OAuth headers — A Personal Access Token is sent as the X-Figma-Token header; OAuth delegated tokens are sent as Authorization: Bearer. The connector selects the correct header automatically based on how the credential was supplied. OAuth per-user delegation — Each Figma user must click the connect tool once (from the AI agent) to authorize; the connector stores a per-user refresh token. Use disconnect to clear it. Figma has no token-revocation endpoint, so disconnect deletes the stored tokens.

External Resources

Figma REST API

Official Figma REST API reference

Tool Agents

Plug MCP servers into AI Knowledge agents