Skip to main content

Annotation System Overview

Figma’s native annotation system allows you to attach notes, comments, and documentation directly to design elements. The Talk to Figma MCP provides tools to work with annotations programmatically.

Available Annotation Tools

  • get_annotations - Retrieve all annotations in a document or node
  • set_annotation - Create or update a single annotation
  • set_multiple_annotations - Batch create/update annotations efficiently
  • scan_nodes_by_types - Find potential annotation targets

Converting Manual Annotations

Many designs use manual annotation systems (numbered markers with text descriptions). Converting these to native Figma annotations improves collaboration and maintains design system integrity.

Process Overview

  1. Get selection and initial setup
  2. Scan annotation text nodes
  3. Scan target UI elements
  4. Match annotations to targets
  5. Apply native Figma annotations
  6. Verify and clean up

Step 1: Initial Setup

Get Selection

Start by identifying the frame or component containing annotations:
Figma provides default annotation categories. Understanding available categories helps you classify annotations appropriately.

Step 2: Scan Annotation Text Nodes

Identify Markers and Descriptions

Scan all text nodes to find annotation components:

Common Marker Patterns

Markers are usually identified by:
  • Text content: Single character or number (“1”, “A”, “①”)
  • Container names: “Marker”, “Annotation”, “Dot”, “Number”
  • Font weight: Often bold (700+)
  • Size: Typically smaller than body text

Description Patterns

Descriptions typically have:
  • Longer text content
  • Located near markers
  • Matching numbers in layer path
  • Explanatory content
Manual annotation systems vary widely. Analyze your specific design pattern to identify the correct matching logic.

Step 3: Scan Target UI Elements

Find Annotation Targets

Identify UI elements that annotations refer to:
Native Figma annotations can be attached to COMPONENT, INSTANCE, and FRAME nodes. Scan for these types to find valid targets.

Target Node Types

  • COMPONENT - Main component definitions
  • INSTANCE - Component instances
  • FRAME - Frame containers
Other node types (TEXT, RECTANGLE, etc.) cannot receive native annotations directly.

Step 4: Match Annotations to Targets

Matching Strategies

Use multiple strategies in order of priority:

1. Path-Based Matching (Highest Priority)

Match based on layer hierarchy:
When to use:
  • Markers are grouped with their target elements
  • Layer hierarchy follows naming conventions
  • Annotations are organized in frames

2. Name-Based Matching

Match based on description content:
When to use:
  • Descriptions mention specific element names
  • Form fields, buttons, and labeled components
  • Semantic naming conventions are followed

3. Proximity-Based Matching (Fallback)

Match based on spatial position:
When to use:
  • Other strategies fail
  • Markers positioned near their targets
  • Simple spatial layouts
Proximity-based matching can be inaccurate in dense layouts. Always verify results when using this strategy.

Combined Matching Strategy

Step 5: Apply Native Annotations

Determine Category

Classify annotations based on content:

Batch Create Annotations

Use set_multiple_annotations for efficiency:
Batch operations are significantly more efficient than creating annotations one at a time. Always use set_multiple_annotations when possible.

Annotation Properties

Determine additional properties based on context:

Step 6: Verify and Clean Up

Verify Annotations

Check that annotations were created correctly:

Delete Legacy Markers

After successful conversion, remove manual annotation nodes:
Only delete manual annotations after verifying native annotations were created successfully. Always create a backup first.

Single Annotation Creation

For individual annotations, use set_annotation:

Markdown Support

Annotation labels support markdown formatting:
Use markdown formatting to create rich, informative annotations with headings, lists, links, and emphasis.

Retrieving Annotations

Get All Annotations

Filter by Category

Best Practices

Organization

  • Create annotations at the appropriate hierarchy level
  • Use consistent category assignment logic
  • Group related annotations together
  • Use descriptive, actionable text

Content Guidelines

  • Write clear, concise annotation text
  • Include context and reasoning
  • Link to relevant documentation
  • Mention stakeholders when appropriate (using @mentions)
  • Add priority indicators for critical items

Performance

  • Use set_multiple_annotations for batch operations
  • Limit annotation count per frame (aim for < 20)
  • Clean up resolved annotations regularly
  • Use categories to organize large annotation sets
Too many annotations can clutter the design view. Focus on actionable, relevant annotations.

Common Use Cases

Design Review Annotations

Development Handoff

QA Bug Tracking

Troubleshooting

Annotation Not Appearing

  • Verify target node type (must be COMPONENT, INSTANCE, or FRAME)
  • Check node ID is correct
  • Ensure node is not deleted or removed
  • Verify WebSocket connection is active

Wrong Target Element

  • Review matching strategy priority
  • Check layer naming conventions
  • Verify marker positioning
  • Consider using manual set_annotation for edge cases

Category Not Found

  • Use get_annotations with includeCategories: true to list available categories
  • Verify category ID is correct
  • Category may be from different Figma file

Annotation Workflow Checklist

  • Get selection and available categories
  • Scan text nodes for markers and descriptions
  • Scan target nodes (COMPONENT, INSTANCE, FRAME)
  • Match annotations using multiple strategies
  • Determine appropriate categories
  • Use set_multiple_annotations for batch creation
  • Verify annotations were created
  • Delete legacy manual annotations (after verification)
  • Document annotation conversion process