F-MCP (Figma MCP Bridge)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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_list_connected_filesA | List all currently connected Figma/FigJam plugin instances (Figma Desktop, FigJam browser, Figma browser). Returns fileKey, fileName, and connection time for each. Use when multiple windows or agents are active. Pass the returned fileKey (or a Figma/FigJam URL via figmaUrl) to other tools to target a specific file. |
| figma_get_file_dataA | Get file structure and document tree from the open Figma file. No REST API or token. Use fileKey or figmaUrl to target a specific file when multiple plugins are connected. Defaults to depth=1, verbosity='summary'. Cached 60s per session. |
| figma_get_design_contextA | Design context for a node or whole file: structure + text, layout/visual/typography. Defaults to depth=1, verbosity='summary' for context safety. Pass depth/verbosity explicitly for deeper data. Cached 60s per session. |
| figma_get_variablesA | Get design tokens and variables from the open Figma file. No REST API or token. Use fileKey or figmaUrl to target a specific file when multiple plugins are connected. |
| figma_get_componentA | Get component metadata by node ID from the open Figma file. No REST API. Use fileKey or figmaUrl to target a specific file. |
| figma_get_stylesA | Get local paint, text, and effect styles from the open Figma file. No REST API. Use fileKey or figmaUrl to target a specific file. |
| figma_executeA | Run JavaScript in the Figma plugin context. Full Plugin API available. Use fileKey or figmaUrl to target a specific file. v1.8.1+: Static analysis detects design-system discipline violations (hardcoded colors, missing token bindings, no-instance usage, hardcoded typography). SEVERE warnings are promoted to the top of the response as _designSystemViolations — Claude must read and self-correct. Also detects gotchas: FILL/ABSOLUTE before appendChild, sync API usage, missing loadFontAsync, sync currentPage assignment. For component instances: use setProperties({...}), NOT findAll(TEXT). v1.9.6+: Post-execute scan — eğer kod |
| figma_clone_screen_to_deviceA | ⚠️ NARROW USE CASE — Device migration ONLY. Clone a Figma screen to a target device dimension, preserving library instances, bound variables, and auto-layout. USE ONLY WHEN: same design system + same layout structure + only screen size changes. DO NOT USE FOR: creating alternatives, variations, or new designs — these REQUIRE building from scratch with figma_execute following the generate-figma-screen SKILL Step 5 pattern (search_assets → instantiate_component → setBoundVariable → auto-layout FILL). Clone copies benchmark's EXISTING mistakes (hardcoded rectangles, missing token bindings, non-responsive layouts). Benchmark is INSPIRATION, not a copy source for variations. If the user says 'alternatif', 'varyasyon', 'farklı', 'yeni', 'tasarla' — USE figma_execute + Step 5, NOT this tool. Device presets: iPhone 17, iPhone 16 Pro Max, Android Compact, iPad Pro 11, Desktop, and more. Custom: 'WxH' format. |
| figma_validate_screenA | Validate a screen against design-system discipline criteria. Returns a compliance score (0-100) across 3 dimensions: instance coverage (library usage), token binding coverage (bound variables), and auto-layout coverage. Use this AFTER creating a screen to verify DS compliance. If score < minScore, Claude should delete the screen and rebuild it using DS components + token bindings. v1.9.4: |
| figma_scan_ds_complianceA | v1.9.4: FINAL GATE — Full DS compliance scan for a completed screen. Returns the same score + breakdown as figma_validate_screen PLUS: (1) |
| figma_create_mini_dsA | v1.9.7: Boş Figma dosyası için minimal Design System oluştur. Tek tool çağrısı ile 12 color variable + 8 sizing variable (spacing + radius) + 3 text style + Button/Input/Card component'leri kurar. Kullanıcı 'Blank File 4-option dialog'da (b) Mini DS seçerse çağır. Parametreler opsiyonel: primaryColor (default '#1464FF'), fontFamily (default 'Inter'), name (default 'Mini DS'), includeComponents (default true). Sonuç: { success, dsName, variableCollectionIds, textStyleIds, componentIds, summary } — sonrasında figma_execute ile ekran kurulabilir. |
| figma_capture_screenshotA | v1.9.5: 4 returnMode ile screenshot. Default 'file' (dosyaya yazar, base64 context'te YOK). 'summary' screenshot çekmeden metadata özeti (planlama için), 'regions' büyük ekranları children/slices olarak parçalar, 'base64' eski davranış (opt-in, ~30K token maliyetli). Context-aware fallback: >%80 context kullanımında base64/file → summary'ye otomatik düşer. Karar ağacı: planlama→summary, teslimat→file, scroll'lu ekran→regions, son çare→base64. |
| figma_set_instance_propertiesB | Set component instance properties (TEXT, BOOLEAN, VARIANT, etc.). Use fileKey or figmaUrl to target a specific file. |
| figma_update_variableA | Update a variable value in a mode. Get IDs from figma_get_variables. |
| figma_create_variableA | Create a variable in a collection. Get collectionId from figma_get_variables. |
| figma_create_variable_collectionC | Create a variable collection. |
| figma_delete_variableC | Delete a variable. |
| figma_delete_variable_collectionC | Delete a variable collection. |
| figma_rename_variableC | Rename a variable. |
| figma_add_modeC | Add a mode to a collection. |
| figma_rename_modeC | Rename a mode in a collection. |
| figma_get_design_system_summaryA | Get a compact overview: variable collection names and component counts. Minimal tokens. Use fileKey or figmaUrl to target a specific file. |
| figma_search_componentsA | Search local components by name. Returns nodeIds and names. No REST API. Use fileKey or figmaUrl to target a specific file. |
| figma_instantiate_componentA | Create a component instance. Use componentKey from figma_search_components, figma_search_assets, or REST API. Supports library components (importComponentByKeyAsync) and local components (by nodeId). After creation: use overrides with setProperties({...}) for component properties — do NOT use findAll(TEXT) to modify instance text. |
| figma_refresh_variablesC | Refresh variables from the file. |
| figma_get_console_logsA | Get plugin console logs (log/warn/error) from the F-MCP plugin buffer. No CDP. Limit default 50. |
| figma_watch_consoleA | Stream new plugin console logs until timeout. Polls the plugin buffer. Timeout default 30s. |
| figma_clear_consoleA | Clear the plugin console log buffer. |
| figma_set_descriptionB | Set description on a component, component set, or style node. Supports markdown (descriptionMarkdown). |
| figma_get_component_imageB | Get screenshot of a node (component/frame). Returns base64 image. Defaults to JPG@1x q70 (v1.8.0 context-safe). |
| figma_get_component_for_developmentA | Get component metadata plus base64 screenshot in one call. For design-to-code workflows. Defaults to JPG@1x q70 (v1.8.0 context-safe). |
| figma_batch_create_variablesA | Create up to 100 variables in one call. Each item: collectionId, name, resolvedType (COLOR/FLOAT/STRING/BOOLEAN), value, modeId. Returns created and failed lists. |
| figma_batch_update_variablesA | Update up to 100 variables. Each item: variableId, modeId, value. Returns updated and failed lists. |
| figma_setup_design_tokensA | Atomically create a variable collection + modes + variables. Rollback on any error. Params: collectionName, modes (array), tokens (array of { name, type?, value? or values? }). |
| figma_arrange_component_setA | Combine multiple component nodes into one Figma component set (combineAsVariants). Params: nodeIds (array of at least 2 component node IDs). Returns new component set nodeId. |
| figma_check_design_parityA | Compare Figma design tokens (variables + styles) with code-side tokens. Critical for design-code gap analysis. Returns matching, inFigmaOnly, inCodeOnly, and divergent (same name, different value). Optional codeTokens: JSON string of expected tokens, e.g. {"primary": "#0066cc", "spacing.md": 16} or {"primary": {"value": "#0066cc"}}. |
| figma_get_token_browserA | Token Browser: hierarchical view of design tokens for browsing. Returns variable collections with variables and modes, plus paint and text styles. Use for exploring and auditing tokens in the open Figma file. No REST API. |
| figma_get_statusB | Check if F-MCP ATezer Bridge plugin is connected and list all connected files. No REST API or token. |
| figma_create_frameA | Create a new frame node with optional auto-layout. Returns the created node ID. v1.8.0: defaults to layoutMode='VERTICAL' with paddingTop/Bottom=16, paddingLeft/Right=16, itemSpacing=12, primaryAxisSizingMode='AUTO', counterAxisSizingMode='AUTO'. Pass layoutMode='NONE' for legacy free-form frames. |
| figma_create_textA | Create a new text node on the current page. Returns the created node ID. IMPORTANT: fontFamily defaults to 'Inter' — if using a design system (e.g. SUI uses SHBGrotesk), specify the DS font. For DS text with proper token binding, prefer figma_execute with importStyleByKeyAsync + setTextStyleIdAsync instead. |
| figma_create_rectangleC | Create a new rectangle node on the current page. |
| figma_create_groupB | Group existing nodes into a new group. Provide node IDs to group. |
| figma_export_nodesA | Export one or multiple nodes as SVG, PNG, JPG, or PDF. Returns base64-encoded data for each node. Supports batch export (up to 50 nodes). No REST API token needed — uses plugin exportAsync. SVG preserves vectors; PNG/JPG are rasterized at configurable scale. v1.8.0: default scale=1 for context safety (was 2). Override for high-DPI exports. |
| figma_search_assetsA | Search for design system assets in the current Figma file. Returns: (1) team library VARIABLES via figma.teamLibrary API (all enabled libraries), (2) file-local COMPONENTS / COMPONENT_SETS, and (3) v1.8.0+: REMOTE LIBRARY COMPONENTS discovered by scanning existing INSTANCE nodes (returned as 'libraryComponents'). For library components to appear, at least one DS instance must exist in the file — place one manually first if empty. Pass currentPageOnly=false to scan all pages for instance discovery. Use the returned componentKey with figma_instantiate_component to place new instances. Pass assetTypes to filter: ['variables'], ['components'], or both (default). |
| figma_get_code_connectA | Get Code Connect hints for components/instances: documentationLinks, componentKey, name, description. Pass nodeIds for specific nodes, or scanCurrentPage=true to scan the current page for COMPONENT/COMPONENT_SET/INSTANCE nodes. Note: Full Code Connect source map lives in figma.config / Figma CLI; this tool returns plugin-accessible hints only. Use Figma's official MCP get_code_connect_map for native repo paths. |
| figma_useA | High-level orchestrator that bundles component, token and design-context lookups in one call. intent='component' -> node detail + Code Connect hint. intent='token' -> team library variable search. intent='design_context' -> full bundle (component + hints + tokens). Prefer this before implementing a design to collect all references in a single round-trip. |
| figma_get_library_variablesA | List variables from team library collections with import keys. Uses figma.teamLibrary API — works in the TARGET file, no need to connect the DS source file. Returns variable name, key (for importVariableByKeyAsync), resolvedType, collection, and library name. Use the returned keys with figma_bind_variable or figma.variables.importVariableByKeyAsync() in figma_execute. |
| figma_bind_variableA | Import a library variable by key and bind it to a node property. For colors: binds to fills or strokes via setBoundVariableForPaint. For spacing/sizing: binds via setBoundVariable (paddingLeft, itemSpacing, cornerRadius, etc.). Get variableKey from figma_get_library_variables. The node's fill/spacing will dynamically update when the DS token changes. |
| figma_import_styleA | Import a text, paint, or effect style from a team library by key, and optionally apply it to a node. IMPORTANT: This API only imports PUBLISHED LIBRARY styles, NOT local file styles. For local styles, use 'node.fillStyleId = style.id' (or textStyleId/effectStyleId) directly via figma_execute. Get library style keys from .claude/libraries/ cache or REST API: figma_rest_api GET /v1/files/{fileKey}/styles. For TEXT styles: applies via setTextStyleIdAsync (includes font, size, weight). For PAINT styles: applies via fillStyleId. For EFFECT styles: applies via effectStyleId. |
| figma_plugin_diagnosticsA | Get diagnostic info about plugin connection health: uptime, connected clients, pending requests, bridge version, memory usage. |
| figma_set_portA | Change the WebSocket bridge port at runtime. Stops the current bridge and restarts on the new port. Use when the default port is busy (e.g. another AI tool holds it). After calling this, the Figma plugin must reconnect to the new port. Valid range: 5454–5470. |
| figma_set_rest_tokenA | Set Figma REST API token for REST API calls (export, comments, version history, etc.). Token is stored in memory only — never written to disk. Cleared on restart. Get a token from Figma → Settings → Personal access tokens (max 90 days). |
| figma_clear_rest_tokenA | Clear the stored Figma REST API token from memory. |
| figma_rest_apiA | Call Figma REST API directly. Requires a token set via figma_set_rest_token. Use for: file export (SVG/PNG), comments, version history, team/project listing, image fills, and anything not available through the plugin bridge. Endpoint examples: GET /v1/files/:fileKey, GET /v1/images/:fileKey, GET /v1/files/:fileKey/comments |
| figma_create_prototype_connectionA | Create a prototype reaction between two nodes (source -> destination). Maps Figma Prototype panel: trigger (On click/hover/press/drag, After delay, Mouse events, Key/gamepad) + action (Navigate/Overlay/Swap/Back/Close/Change to/Scroll to/Open link) + transition type (Dissolve/Smart animate/Scroll animate/Move in-out/Push/Slide in-out) with direction (LEFT/RIGHT/TOP/BOTTOM) + easing + duration (ms, converted to seconds internally) + matchLayers (only on DirectionalTransition per Figma schema). Uses Figma Plugin API setReactionsAsync (reactions property is readonly in 2024+ API). v1 scope: SET_VARIABLE, SET_VARIABLE_MODE, UPDATE_MEDIA_RUNTIME, CONDITIONAL actions are NOT included (future release). Overlay background/close-on-outside are readonly in Plugin API — configure in Figma UI (Prototype tab -> Advanced -> Overlay). |
| figma_get_prototype_connectionsA | Read prototype reactions on a node subtree or the whole current page. Read-only audit — returns trigger, action, navigation, destinationId, transition, flowStartingPoints. Uses getReactionsAsync if available, falls back to node.reactions getter. At least one of nodeId or pageScope=true must be provided. |
| figma_set_flow_starting_pointA | Mark a FRAME as a prototype flow starting point (shown in Figma Prototype panel). Uses page.setFlowStartingPointsAsync if available (future API), falls back to direct assignment. Description is stored via pluginData (Figma FlowStartingPoint shape is { nodeId, name } only). |
| figma_create_interactionB | Create a variant state-change interaction on an INSTANCE/variant node (hover/press/focus -> variant). Uses reactions API with navigation: CHANGE_TO. Target variant resolved by id or name within the same COMPONENT_SET. Uses getMainComponentAsync for deprecation-safe main component access. v1 supports INSTANT/DISSOLVE/SMART_ANIMATE transitions (DirectionalTransition not applicable to variants). |
| figma_set_scroll_behaviorA | Set a node's scroll behavior (Figma Prototype panel > Scroll behavior). overflowDirection (FrameNode): NONE/HORIZONTAL/VERTICAL/BOTH — defines prototype scroll axis. scrollBehavior (SceneNode): SCROLLS/FIXED/STICKY_SCROLLS — FIXED = sticky header, STICKY_SCROLLS = becomes sticky after scrolling past. At least one of overflowDirection or scrollBehavior must be provided. |
| figma_get_rest_token_statusA | Check if a Figma REST API token is set and view rate limit usage. |
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
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/atezer/FMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server