Fanta docs
MCP Server

The build loop

Inspect, edit, verify, and review a source-backed Fanta design.

  1. Orient: call get_guidelines, then get_editor_state. Check the project, focused page, selection, and editability. For a new top-level frame, pass empty_space: [width, height].
  2. Inspect: call batch_get for the page tree. Its default summary listing includes up to 200 direct children at depth 2. Follow more_children with offset and limit, then fetch exact IDs; those reads default to editable style detail. Call get_design_system before inventing tokens, variants, or components. Read unresolved list_comments threads when revising existing work.
  3. Edit: call batch_design with ops and a descriptive label for one component or section. Content edits preview in order while the call runs, then commit as one undoable transaction. A selection- or viewport-only batch creates no undo step. Failure rolls back content edits, while selection and viewport changes are not transactional; use returned created IDs in follow-up calls. Pass optional activity with the same agent_id and agent_name used in report_agent_activity so Follow stays with this agent during each placement. Use import_image when an external generator returns an image file or URL. It saves an asset without adding a layer.
  4. Verify: call get_screenshot, preferably for the changed node. Inspect the PNG, adjust with another batch, and capture again. For motion, pass an existing motion_clip ID and playhead_ms to inspect sampled frames.
  5. Review: allow autosave, check for a save error, inspect the .fnx Git diff, and address relevant comment threads with reply_comment. A canvas batch can succeed while a later structural save refuses to lose authored FNX data. Resolve only after verifying the requested change, then commit the intended result.

For changes beyond the operation vocabulary, locate the complete .fnx or managed JSON source with read_fnx_source, pass the complete candidate to validate_fnx_source, edit it with ordinary file tools, and let Fanta reload before more canvas work on the same nodes. Report the actual source_path and workspace (canvas, variables, or code) while changing files so Follow can open the relevant view. Activity does not lock the document.