Skip to main content
Glama

set_auto_layout

Configure auto layout properties for Figma design elements to control spacing, alignment, and arrangement of components within frames or groups.

Instructions

Configure auto layout properties for a node in Figma

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nodeIdYesThe ID of the node to configure auto layout
layoutModeYesLayout direction
paddingTopNoTop padding in pixels
paddingBottomNoBottom padding in pixels
paddingLeftNoLeft padding in pixels
paddingRightNoRight padding in pixels
itemSpacingNoSpacing between items in pixels
primaryAxisAlignItemsNoAlignment along primary axis
counterAxisAlignItemsNoAlignment along counter axis
layoutWrapNoWhether items wrap to new lines
strokesIncludedInLayoutNoWhether strokes are included in layout calculations

Implementation Reference

  • MCP tool registration for 'set_auto_layout', including input schema (Zod), description, and handler function that forwards the command to Figma via WebSocket.
    server.tool( "set_auto_layout", "Configure auto layout properties for a node in Figma", { nodeId: z.string().describe("The ID of the node to configure auto layout"), layoutMode: z.enum(["HORIZONTAL", "VERTICAL", "NONE"]).describe("Layout direction"), paddingTop: z.number().optional().describe("Top padding in pixels"), paddingBottom: z.number().optional().describe("Bottom padding in pixels"), paddingLeft: z.number().optional().describe("Left padding in pixels"), paddingRight: z.number().optional().describe("Right padding in pixels"), itemSpacing: z.number().optional().describe("Spacing between items in pixels"), primaryAxisAlignItems: z.enum(["MIN", "CENTER", "MAX", "SPACE_BETWEEN"]).optional().describe("Alignment along primary axis"), counterAxisAlignItems: z.enum(["MIN", "CENTER", "MAX"]).optional().describe("Alignment along counter axis"), layoutWrap: z.enum(["WRAP", "NO_WRAP"]).optional().describe("Whether items wrap to new lines"), strokesIncludedInLayout: z.boolean().optional().describe("Whether strokes are included in layout calculations") }, async ({ nodeId, layoutMode, paddingTop, paddingBottom, paddingLeft, paddingRight, itemSpacing, primaryAxisAlignItems, counterAxisAlignItems, layoutWrap, strokesIncludedInLayout }) => { try { const result = await sendCommandToFigma("set_auto_layout", { nodeId, layoutMode, paddingTop, paddingBottom, paddingLeft, paddingRight, itemSpacing, primaryAxisAlignItems, counterAxisAlignItems, layoutWrap, strokesIncludedInLayout }); const typedResult = result as { name: string }; return { content: [ { type: "text", text: `Applied auto layout to node "${typedResult.name}" with mode: ${layoutMode}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error setting auto layout: ${error instanceof Error ? error.message : String(error)}` } ] }; } } );
  • The handler function executes the tool by sending a 'set_auto_layout' command to Figma with the provided parameters and returns a formatted response.
    async ({ nodeId, layoutMode, paddingTop, paddingBottom, paddingLeft, paddingRight, itemSpacing, primaryAxisAlignItems, counterAxisAlignItems, layoutWrap, strokesIncludedInLayout }) => { try { const result = await sendCommandToFigma("set_auto_layout", { nodeId, layoutMode, paddingTop, paddingBottom, paddingLeft, paddingRight, itemSpacing, primaryAxisAlignItems, counterAxisAlignItems, layoutWrap, strokesIncludedInLayout }); const typedResult = result as { name: string }; return { content: [ { type: "text", text: `Applied auto layout to node "${typedResult.name}" with mode: ${layoutMode}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error setting auto layout: ${error instanceof Error ? error.message : String(error)}` } ] }; } }
  • Zod input schema defining parameters for the set_auto_layout tool.
    nodeId: z.string().describe("The ID of the node to configure auto layout"), layoutMode: z.enum(["HORIZONTAL", "VERTICAL", "NONE"]).describe("Layout direction"), paddingTop: z.number().optional().describe("Top padding in pixels"), paddingBottom: z.number().optional().describe("Bottom padding in pixels"), paddingLeft: z.number().optional().describe("Left padding in pixels"), paddingRight: z.number().optional().describe("Right padding in pixels"), itemSpacing: z.number().optional().describe("Spacing between items in pixels"), primaryAxisAlignItems: z.enum(["MIN", "CENTER", "MAX", "SPACE_BETWEEN"]).optional().describe("Alignment along primary axis"), counterAxisAlignItems: z.enum(["MIN", "CENTER", "MAX"]).optional().describe("Alignment along counter axis"), layoutWrap: z.enum(["WRAP", "NO_WRAP"]).optional().describe("Whether items wrap to new lines"), strokesIncludedInLayout: z.boolean().optional().describe("Whether strokes are included in layout calculations") },
  • Type definition including 'set_auto_layout' in FigmaCommand union type.
    | "set_auto_layout"

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/arinspunk/claude-talk-to-figma-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server