set_corner_radius
Modify a Figma node's corner radius by specifying a radius value and optionally selecting which corners to round, using node ID for targeted adjustments.
Instructions
Set the corner radius of a node in Figma
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| corners | No | Optional array of 4 booleans to specify which corners to round [topLeft, topRight, bottomRight, bottomLeft] | |
| nodeId | Yes | The ID of the node to modify | |
| radius | Yes | Corner radius value |
Implementation Reference
- src/cursor_mcp_plugin/code.js:769-818 (handler)Core handler function that retrieves a Figma node by ID and sets its corner radius, either uniformly or individually per corner based on the 'corners' parameter.async function setCornerRadius(params) { const { nodeId, radius, corners } = params || {}; if (!nodeId) { throw new Error("Missing nodeId parameter"); } if (radius === undefined) { throw new Error("Missing radius parameter"); } const node = await figma.getNodeByIdAsync(nodeId); if (!node) { throw new Error(`Node not found with ID: ${nodeId}`); } // Check if node supports corner radius if (!("cornerRadius" in node)) { throw new Error(`Node does not support corner radius: ${nodeId}`); } // If corners array is provided, set individual corner radii if (corners && Array.isArray(corners) && corners.length === 4) { if ("topLeftRadius" in node) { // Node supports individual corner radii if (corners[0]) node.topLeftRadius = radius; if (corners[1]) node.topRightRadius = radius; if (corners[2]) node.bottomRightRadius = radius; if (corners[3]) node.bottomLeftRadius = radius; } else { // Node only supports uniform corner radius node.cornerRadius = radius; } } else { // Set uniform corner radius node.cornerRadius = radius; } return { id: node.id, name: node.name, cornerRadius: "cornerRadius" in node ? node.cornerRadius : undefined, topLeftRadius: "topLeftRadius" in node ? node.topLeftRadius : undefined, topRightRadius: "topRightRadius" in node ? node.topRightRadius : undefined, bottomRightRadius: "bottomRightRadius" in node ? node.bottomRightRadius : undefined, bottomLeftRadius: "bottomLeftRadius" in node ? node.bottomLeftRadius : undefined, }; }
- src/cursor_mcp_plugin/code.js:101-102 (registration)Switch case in the command dispatcher that routes 'set_corner_radius' calls to the setCornerRadius handler.case "set_corner_radius": return await setCornerRadius(params);
- src/talk_to_figma_mcp/server.ts:636-671 (registration)MCP server.tool registration for 'set_corner_radius', including schema validation and proxy handler that forwards to Figma plugin.server.tool( "set_corner_radius", "Set the corner radius of a node in Figma", { nodeId: z.string().describe("The ID of the node to modify"), radius: z.number().min(0).describe("Corner radius value"), corners: z.array(z.boolean()).length(4).optional().describe("Optional array of 4 booleans to specify which corners to round [topLeft, topRight, bottomRight, bottomLeft]") }, async ({ nodeId, radius, corners }) => { try { const result = await sendCommandToFigma('set_corner_radius', { nodeId, radius, corners: corners || [true, true, true, true] }); const typedResult = result as { name: string }; return { content: [ { type: "text", text: `Set corner radius of node "${typedResult.name}" to ${radius}px` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error setting corner radius: ${error instanceof Error ? error.message : String(error)}` } ] }; } } );
- Type definition including 'set_corner_radius' in FigmaCommand union type.| 'set_corner_radius';