export_node_as_image
Export design elements from Figma as images in PNG, JPG, SVG, or PDF formats for use in documentation, presentations, or development workflows.
Instructions
Export a node as an image from Figma
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"nodeId": "<nodeId>"
},
"name": "export_node_as_image"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to export | |
| format | No | Export format | |
| scale | No | Export scale |
Implementation Reference
- src/talk_to_figma_mcp/server.ts:860-902 (handler)This is the complete MCP tool definition including registration, input schema validation using Zod, and the handler function that executes the tool logic by forwarding the export request to the Figma plugin via WebSocket and returning the image data.
// Export Node as Image Tool server.tool( "export_node_as_image", "Export a node as an image from Figma", { nodeId: z.string().describe("The ID of the node to export"), format: z .enum(["PNG", "JPG", "SVG", "PDF"]) .optional() .describe("Export format"), scale: z.number().positive().optional().describe("Export scale"), }, async ({ nodeId, format, scale }) => { try { const result = await sendCommandToFigma("export_node_as_image", { nodeId, format: format || "PNG", scale: scale || 1, }); const typedResult = result as { imageData: string; mimeType: string }; return { content: [ { type: "image", data: typedResult.imageData, mimeType: typedResult.mimeType || "image/png", }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error exporting node as image: ${error instanceof Error ? error.message : String(error) }`, }, ], }; } } );