All skills
figma avatar

/figma-use-slides

@a5e7e04 official
by figmafigma/mcp-server-guide2k stars
194

This skill helps agents use Figma's use_figma MCP tool in the Slides context. Can be used alongside figma-use which has foundational context for using the use_figma tool.

Use this Skill: https://skilld.dev/gh/figma/mcp-server-guide/figma-use-slides

This session only. Nothing lands on disk.

referencesslide-lifecycle.md

≈552 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Slide Lifecycle

Creating slides

// Append a slide to the end of the deck (last child of last row)
const slide = figma.createSlide();

// Create a slide at a specific position in the grid (row 0, column 2)
const slide = figma.createSlide(0, 2);

createSlide returns a SlideNode (extends BaseFrameMixin). The slide is automatically parented into the slide grid.

Creating slide rows

// Append a new row to the end of the slide grid
const row = figma.createSlideRow();

// Insert a row at a specific position (index 0 = first row)
const row = figma.createSlideRow(0);

createSlideRow returns a SlideRowNode. New rows start empty — create slides within them using createSlide(rowIndex, colIndex).

Slide sections

Every slide row is a section. Without a name set, a row shows up in the UI as "Section" (the default label); setting name replaces that with a custom one. Sections surface in two places: the editor shows the section name next to the row, and the presenter view shows which section the current slide belongs to (and lets the speaker jump between sections).

So when the user asks to organize a deck into sections, group slides under topics, or label parts of a deck, setting name on the SLIDE_ROW is the move. Although SLIDE_ROW is otherwise opaque (no fills, effects, or layout), name is settable.

// Rename the second section in the deck
const grid = figma.currentPage.children[0];  // SLIDE_GRID
const row = grid.children[1];                // SLIDE_ROW
row.name = "Demo";

Cloning slides

const original = figma.getNodeById("SLIDE_ID");
const copy = original.clone();

Cloned slides are appended to the current page by default. Use setSlideGrid to position them in the grid.

Important: SlideGridNode.clone() throws at runtime — you cannot copy the slide grid itself.

Deleting slides

const slide = figma.getNodeById("SLIDE_ID");
slide.remove();

Removing a slide automatically updates the grid. If you remove all slides in a row, the row remains but is empty.

Reordering slides

Use getSlideGrid / setSlideGrid to rearrange slides. See slide-grid.md for details.

Source: SKILL.md on GitHub

No alerts17d3 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    The skill provides technical guidance for automating Figma Slides. It is categorized as low risk because its core functionality—generating scripts based on user-provided briefs—creates a surface area for indirect prompt injection and involves dynamic execution of code.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

Signed by skilld at a5e7e04. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 3 months ago
disable-model-invocation
false
  • MCP
  • Design
  • figma
  • slides
  • plugin-api
  • presentation
  • deck-building

README badge

README badge for figma/mcp-server-guide/figma-use-slides

This skill provides Slides-specific context for the use_figma MCP tool, covering critical positioning rules, theme management, and the slide grid structure that differ from Figma's Design API. It includes a two-phase deck-building workflow with design thinking guidance and batch validation patterns for building multi-slide presentations via the Plugin API.

Generated from the current SKILL.md.

Do I need to load figma-use as well as figma-use-slides?
Yes. figma-use-slides provides Slides-specific context, but figma-use contains foundational context for the use_figma MCP tool and advanced plugin API use cases not covered here.
Can I use figma.createPage() in Slides files?
No. createPage() is Design-file only and will throw a TypeError in Slides. Use the slide grid (SLIDE_GRID / SLIDE_ROW / SLIDE) to organize deck structure instead.
What's the critical rule about setting x and y coordinates on new nodes?
Always call appendChild before setting x/y. Setting coordinates before appending causes nodes to land 240 pixels off their intended position. Use the helper pattern in slide-gotchas.md to make the order impossible to get wrong.
Does get_metadata work on Slides files?
No. Use read-only use_figma scripts for validation instead, and return created node positions in closePlugin() output to verify no overlapping bounding boxes.
When modifying an existing deck, should I delete and rebuild slides or edit in place?
Always modify slides in place unless the user explicitly asks to start over or redo from scratch. Inspect the existing deck to match its color palette, typography, and spatial habits.

Generated from the current SKILL.md. These answers refresh after source changes.