Custom Figma MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for the local server (default 3333). Use to change port if conflict. | |
| FIGMA_CLIENT_ID | No | Figma OAuth client ID for REST API access (comments, versions, external files, remote resources). Optional for normal canvas editing. | |
| FIGMA_CLIENT_SECRET | No | Figma OAuth client secret for REST API access. Optional for normal canvas editing. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| figma.get_documentA | Return serialized pages and top-level nodes from the open Figma document. |
| figma.get_current_pageA | Return serialized data for the current Figma page. |
| figma.get_selectionA | Return serialized data for the current Figma selection. |
| figma.find_nodesC | Search nodes by name, type, CSS-like query, page, or document scope. |
| figma.get_nodeC | Return serialized data for a specific node. |
| figma.create_frameC | Create a native Figma frame. |
| figma.create_textB | Create editable native Figma text, loading the requested font first. |
| figma.create_rectangleC | Create a native Figma rectangle. |
| figma.create_componentC | Create a native Figma component. |
| figma.create_autolayoutC | Create a Figma auto-layout frame. |
| figma.create_nodeB | Call any current or future figma.create* method discovered from official typings, then optionally set properties and reparent the result. |
| figma.update_nodeC | Update node properties, styles, layout, bounds, or text. |
| figma.move_nodeC | Move a node within the canvas or reparent it. |
| figma.resize_nodeD | Resize a node. |
| figma.delete_nodeC | Delete a node from the open Figma file. |
| figma.duplicate_nodeC | Duplicate a node by cloning it. |
| figma.export_nodeC | Export a node as PNG, JPG, SVG, or PDF and return base64 content. |
| figma.list_stylesA | List local text, paint, effect, and grid styles. |
| figma.list_variablesA | List local variable collections and variables. |
| figma.update_variableC | Update a local or imported Figma variable mode value. |
| figma.batch_operationsB | Run multiple plugin commands in sequence with undo-backed transactional rollback by default. |
| figma.get_api_schemaC | Return the generated contract parsed from official Figma Plugin API typings and REST OpenAPI sources. |
| figma.call_apiC | Dynamically call any Plugin API method on figma, a node, page, style, variable, or API namespace. |
| figma.get_propertyC | Read any serializable Plugin API property from figma, a node, page, style, variable, or API namespace. |
| figma.set_propertyC | Set any writable Plugin API property on figma, a node, page, style, variable, or API namespace. |
| figma.rest_requestC | Call any official Figma REST API operation by operationId or raw method/path using stored OAuth tokens. |
| figma.subscribe_eventC | Subscribe to a Figma Plugin API event on figma or another event-capable API target and queue events for polling. |
| figma.unsubscribe_eventA | Remove a previously registered Figma Plugin API event subscription by subscription id or event type. |
| figma.poll_eventsC | Poll queued Figma Plugin API events captured by subscribe_event. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mahmudcoding/figma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server