Skip to main content
Glama
yhc984
by yhc984

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
NameRequiredDescriptionDefault
cornersNoOptional array of 4 booleans to specify which corners to round [topLeft, topRight, bottomRight, bottomLeft]
nodeIdYesThe ID of the node to modify
radiusYesCorner radius value

Implementation Reference

  • 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, }; }
  • Switch case in the command dispatcher that routes 'set_corner_radius' calls to the setCornerRadius handler.
    case "set_corner_radius": return await setCornerRadius(params);
  • 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';

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/yhc984/cursor-talk-to-figma-mcp-main'

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