create_ellipse
Create ellipses in Figma designs by specifying position, dimensions, colors, and styling for visual elements.
Instructions
Create a new ellipse in Figma
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position | |
| y | Yes | Y position | |
| width | Yes | Width of the ellipse | |
| height | Yes | Height of the ellipse | |
| name | No | Optional name for the ellipse | |
| parentId | No | Optional parent node ID to append the ellipse to | |
| fillColor | No | Fill color in RGBA format | |
| strokeColor | No | Stroke color in RGBA format | |
| strokeWeight | No | Stroke weight |
Implementation Reference
- MCP tool registration, input schema (Zod), and handler implementation for 'create_ellipse'. The handler sends a 'create_ellipse' command to Figma via WebSocket and returns the result ID or error.server.tool( "create_ellipse", "Create a new ellipse in Figma", { x: z.number().describe("X position"), y: z.number().describe("Y position"), width: z.number().describe("Width of the ellipse"), height: z.number().describe("Height of the ellipse"), name: z.string().optional().describe("Optional name for the ellipse"), parentId: z.string().optional().describe("Optional parent node ID to append the ellipse to"), fillColor: z .object({ r: z.number().min(0).max(1).describe("Red component (0-1)"), g: z.number().min(0).max(1).describe("Green component (0-1)"), b: z.number().min(0).max(1).describe("Blue component (0-1)"), a: z.number().min(0).max(1).optional().describe("Alpha component (0-1)"), }) .optional() .describe("Fill color in RGBA format"), strokeColor: z .object({ r: z.number().min(0).max(1).describe("Red component (0-1)"), g: z.number().min(0).max(1).describe("Green component (0-1)"), b: z.number().min(0).max(1).describe("Blue component (0-1)"), a: z.number().min(0).max(1).optional().describe("Alpha component (0-1)"), }) .optional() .describe("Stroke color in RGBA format"), strokeWeight: z.number().positive().optional().describe("Stroke weight"), }, async ({ x, y, width, height, name, parentId, fillColor, strokeColor, strokeWeight }) => { try { const result = await sendCommandToFigma("create_ellipse", { x, y, width, height, name: name || "Ellipse", parentId, fillColor, strokeColor, strokeWeight, }); const typedResult = result as { id: string, name: string }; return { content: [ { type: "text", text: `Created ellipse with ID: ${typedResult.id}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error creating ellipse: ${error instanceof Error ? error.message : String(error)}` } ] }; } } );
- src/talk_to_figma_mcp/tools/index.ts:15-15 (registration)Registration of creation tools module (including create_ellipse) within the aggregate registerTools function.registerCreationTools(server);
- src/talk_to_figma_mcp/server.ts:34-34 (registration)Top-level call to register all tools, which chains to registerCreationTools and thus create_ellipse.registerTools(server);
- Type definition for FigmaCommand union including 'create_ellipse' used internally for command typing.| "create_ellipse"