204 lines
6.3 KiB
Markdown
204 lines
6.3 KiB
Markdown
|
|
# MCP Tools
|
||
|
|
|
||
|
|
The editor exposes its entire API through MCP (Model Context Protocol). Every operation available to a human is available to AI. 117 tools across 15 categories.
|
||
|
|
|
||
|
|
## AI Workflow
|
||
|
|
|
||
|
|
1. **Read** — `node_tree`, `find`, `analyze_*`
|
||
|
|
2. **Create/Modify** — `create_*`, `set_*`, `node_*`, `render` (JSX)
|
||
|
|
3. **Verify** — `export_screenshot` → inspect the image
|
||
|
|
4. **Iterate** — `diff_create` to see changes, fix issues
|
||
|
|
5. **Export** — `export_jsx`, `export_storybook` for developer handoff
|
||
|
|
|
||
|
|
## Create (14 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `create_frame` | Create a frame |
|
||
|
|
| `create_rect` | Create a rectangle |
|
||
|
|
| `create_ellipse` | Create an ellipse |
|
||
|
|
| `create_text` | Create a text node |
|
||
|
|
| `create_line` | Create a line |
|
||
|
|
| `create_polygon` | Create a polygon |
|
||
|
|
| `create_star` | Create a star |
|
||
|
|
| `create_vector` | Create a vector path |
|
||
|
|
| `create_component` | Create a component |
|
||
|
|
| `create_instance` | Create a component instance |
|
||
|
|
| `create_section` | Create a section |
|
||
|
|
| `create_page` | Create a page |
|
||
|
|
| `create_slice` | Create a slice |
|
||
|
|
| `create_icon` | Create an icon from Iconify |
|
||
|
|
|
||
|
|
## Set / Modify (18 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `set_fill` | Set fill color (hex or variable ref) |
|
||
|
|
| `set_stroke` | Set stroke color and weight |
|
||
|
|
| `set_stroke-align` | Set stroke alignment |
|
||
|
|
| `set_radius` | Set corner radius |
|
||
|
|
| `set_opacity` | Set opacity |
|
||
|
|
| `set_rotation` | Set rotation angle |
|
||
|
|
| `set_blend` | Set blend mode |
|
||
|
|
| `set_visible` | Set visibility |
|
||
|
|
| `set_locked` | Set locked state |
|
||
|
|
| `set_text` | Set text content |
|
||
|
|
| `set_text-resize` | Set text auto resize mode |
|
||
|
|
| `set_font` | Set font properties |
|
||
|
|
| `set_font-range` | Set font for a text range |
|
||
|
|
| `set_effect` | Set effect (shadow, blur) |
|
||
|
|
| `set_image` | Set image fill |
|
||
|
|
| `set_layout` | Set auto-layout properties |
|
||
|
|
| `set_constraints` | Set resize constraints |
|
||
|
|
| `set_minmax` | Set min/max width and height |
|
||
|
|
|
||
|
|
## Node Operations (15 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `node_get` | Get node properties |
|
||
|
|
| `node_tree` | Get node tree with properties |
|
||
|
|
| `node_children` | Get child nodes |
|
||
|
|
| `node_ancestors` | Get ancestor chain to root |
|
||
|
|
| `node_bounds` | Get bounding box |
|
||
|
|
| `node_bindings` | Get variable bindings |
|
||
|
|
| `node_move` | Move a node |
|
||
|
|
| `node_resize` | Resize a node |
|
||
|
|
| `node_rename` | Rename a node |
|
||
|
|
| `node_clone` | Clone node(s) |
|
||
|
|
| `node_delete` | Delete node(s) |
|
||
|
|
| `node_set-parent` | Reparent a node |
|
||
|
|
| `node_replace-with` | Replace node with another |
|
||
|
|
| `node_to-component` | Convert frame to component |
|
||
|
|
| `find` | Find nodes by name or type |
|
||
|
|
|
||
|
|
## Variables & Collections (11 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `variable_list` | List all variables |
|
||
|
|
| `variable_get` | Get variable by ID |
|
||
|
|
| `variable_find` | Find variables by name |
|
||
|
|
| `variable_create` | Create a variable |
|
||
|
|
| `variable_set` | Set variable value for mode |
|
||
|
|
| `variable_bind` | Bind variable to node property |
|
||
|
|
| `variable_delete` | Delete a variable |
|
||
|
|
| `collection_list` | List variable collections |
|
||
|
|
| `collection_get` | Get collection by ID |
|
||
|
|
| `collection_create` | Create a collection |
|
||
|
|
| `collection_delete` | Delete a collection |
|
||
|
|
|
||
|
|
## Components (4 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `component_add-prop` | Add property to component |
|
||
|
|
| `component_edit-prop` | Edit component property |
|
||
|
|
| `component_delete-prop` | Delete component property |
|
||
|
|
| `component_combine` | Combine into component set (variants) |
|
||
|
|
|
||
|
|
## Styles (4 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `style_list` | List local styles |
|
||
|
|
| `style_create-paint` | Create paint/color style |
|
||
|
|
| `style_create-text` | Create text style |
|
||
|
|
| `style_create-effect` | Create effect style |
|
||
|
|
|
||
|
|
## Boolean Operations (4 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `boolean_union` | Union shapes |
|
||
|
|
| `boolean_subtract` | Subtract shapes |
|
||
|
|
| `boolean_intersect` | Intersect shapes |
|
||
|
|
| `boolean_exclude` | Exclude shapes |
|
||
|
|
|
||
|
|
## Vector Paths (5 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `path_get` | Get vector path data |
|
||
|
|
| `path_set` | Set vector path data |
|
||
|
|
| `path_move` | Move all path points |
|
||
|
|
| `path_scale` | Scale path from center |
|
||
|
|
| `path_flip` | Flip path H/V |
|
||
|
|
|
||
|
|
## Groups (3 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `group_create` | Group nodes |
|
||
|
|
| `group_ungroup` | Ungroup nodes |
|
||
|
|
| `group_flatten` | Flatten to single vector |
|
||
|
|
|
||
|
|
## Analyze (5 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `analyze_colors` | Color palette usage |
|
||
|
|
| `analyze_typography` | Typography usage |
|
||
|
|
| `analyze_spacing` | Spacing values |
|
||
|
|
| `analyze_clusters` | Repeated patterns |
|
||
|
|
| `analyze_snapshot` | Accessibility tree |
|
||
|
|
|
||
|
|
## Export (6 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `export_node` | Export node as image |
|
||
|
|
| `export_screenshot` | Screenshot viewport |
|
||
|
|
| `export_selection` | Export selection as image |
|
||
|
|
| `export_jsx` | Export as JSX component |
|
||
|
|
| `export_storybook` | Export as Storybook stories |
|
||
|
|
| `export_fonts` | List fonts used |
|
||
|
|
|
||
|
|
## Diff (5 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `diff_create` | Diff between two nodes |
|
||
|
|
| `diff_show` | Show diff vs provided props |
|
||
|
|
| `diff_apply` | Apply a diff patch |
|
||
|
|
| `diff_visual` | Visual diff as PNG |
|
||
|
|
| `diff_jsx` | JSX diff between nodes |
|
||
|
|
|
||
|
|
## Pages & Viewport (7 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `page_list` | List all pages |
|
||
|
|
| `page_current` | Get current page |
|
||
|
|
| `page_set` | Switch to page |
|
||
|
|
| `page_bounds` | Bounding box of all objects |
|
||
|
|
| `viewport_get` | Get viewport position/zoom |
|
||
|
|
| `viewport_set` | Set viewport position/zoom |
|
||
|
|
| `viewport_zoom-to-fit` | Zoom to fit nodes |
|
||
|
|
|
||
|
|
## Selection & Connectors (6 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `selection_get` | Get selected nodes |
|
||
|
|
| `selection_set` | Set selection |
|
||
|
|
| `connector_create` | Create connector |
|
||
|
|
| `connector_get` | Get connector details |
|
||
|
|
| `connector_set` | Update connector |
|
||
|
|
| `connector_list` | List connectors |
|
||
|
|
|
||
|
|
## Meta (10 tools)
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `status` | Check connection |
|
||
|
|
| `lint` | Lint design |
|
||
|
|
| `import` | Import SVG |
|
||
|
|
| `render` | Render JSX to nodes |
|
||
|
|
| `get_components` | Get all components |
|
||
|
|
| `get_styles` | Get local styles |
|
||
|
|
| `get_pages` | Get all pages |
|
||
|
|
| `font_list` | List available fonts |
|
||
|
|
| `comment_watch` | Wait for new comment |
|
||
|
|
| `eval` | Execute JS in editor |
|