Documentation

FigClank MCP Guide

A comprehensive guide to the FigClank MCP server—how it works, what it can do, and how to install it for AI-powered design-to-code workflows.

What is the FigClank MCP?

The FigClank MCP is a server that exposes your FigClank designs to AI assistants. It lets AI agents:

  • Read your design documents, node trees, components, styles, and tokens
  • Query nodes by type, name, component, size, and text style
  • Export nodes as SVG, PNG, HTML, or CSS
  • Inspect screens for layout, component usage, and text content
  • Mutate designs with create, update, align, group, and more

How It Works

The FigClank app pushes your current canvas to the MCP server whenever it changes. AI agents connect to the server and use the pushed document for all tools.

Installation

Add MCP to your IDE

Click the button below to add the FigClank MCP server to Cursor, Claude, or VS Code. When Cursor connects, you'll be prompted to sign in via OAuth.

Cursor

Cursor

  • FigClank Design documents
  • Remote and local servers
Claude

Claude

  • FigClank Design documents
  • Remote servers
VS Code

VS Code

  • FigClank Design documents
  • Remote and local servers

Available Tools

auth_whoamiworkspace_listProjectsdocuments_listdocuments_getdocuments_getSnapshothistory_listVersionsnodes_getnodes_listChildrennodes_getSubtreenodes_querycomponents_listcomponents_getstyles_listtokens_getinspect_screenSummaryinspect_componentUsageinspect_textContentexport_svgexport_pngexport_htmlexport_cssrender_thumbnailresolve_asset_urlagent_getSelectionSnapshotagent_updateNodeagent_createShapeagent_createTextagent_wrapInAutoLayoutagent_alignNodesagent_distributeNodesagent_groupNodesagent_ungroupNodesagent_createComponentFromSelection

Manual configuration

For Cursor, open or create .cursor/mcp.json in your project (or user config):

{
  "mcpServers": {
    "figclank": {
      "url": "https://mcp.figclank.design"
    }
  }
}

For VS Code, create .vscode/mcp.json with servers (VS Code uses servers, Cursor uses mcpServers):

{
  "servers": {
    "figclank": {
      "type": "http",
      "url": "https://mcp.figclank.design",
      "headers": {}
    }
  }
}

Enable MCP in the FigClank app

  • Open a design at studio.figclank.design
  • Click the main menu (hamburger) in the top-left
  • Toggle MCP On to push your canvas to the server
  • Optionally click Push to MCP to push immediately
  • After AI changes, click Sync from MCP to pull updates (or wait for the 10-second auto-poll)

Features

Discovery

ToolDescription
auth_whoamiGet authenticated user info (user ID, wallet address, permissions)
workspace_listProjectsList all design projects for the user
documents_listList documents with pagination
documents_getGet document metadata (name, timestamps, pages)

Node Inspection

ToolDescription
nodes_getGet a single node with optional field projection
nodes_listChildrenList children of a node (paginated)
nodes_getSubtreeGet subtree with depth and node count limits
nodes_queryQuery nodes by type, name, component, size, text style

Design System

ToolDescription
components_listList all components in a document
components_getGet component definition by ID
styles_listList styles (text, fill, stroke, effect)
tokens_getGet design tokens (colors, spacing, radii, typography, shadows)

Inspect Helpers

ToolDescription
inspect_screenSummarySummarize a screen/frame (layout sections, components, colors, typography)
inspect_componentUsageFind all places where a component is used
inspect_textContentExtract all text content from a node subtree

Export & Render

ToolDescription
render_thumbnailGet thumbnail URL for a design
export_svgExport a node and its children as SVG
export_pngExport a node as PNG
export_htmlExport a frame as HTML (Neynar mini-apps or web)
export_cssGenerate CSS, Tailwind classes, or React Native styles from a node
resolve_asset_urlResolve image reference to a public URL

Agent Mutation Tools

ToolDescription
agent_getSelectionSnapshotGet compact JSON of selected nodes for planner context
agent_updateNodeUpdate node properties (fills, effects, width, height, cornerRadius, opacity)
agent_createShapeCreate rectangle, ellipse, frame, or triangle
agent_createTextCreate a text node
agent_wrapInAutoLayoutWrap selected nodes in an auto layout frame
agent_alignNodesAlign selection (left, center, right, top, middle, bottom)
agent_distributeNodesDistribute nodes with even spacing (horizontal/vertical)
agent_groupNodesGroup selection into a GROUP
agent_ungroupNodesUngroup a GROUP node
agent_createComponentFromSelectionConvert selection into a reusable component

Field Projection

Node-returning tools support field projection to reduce payload size:

// Option 1: Specific fields
fields: ["id", "name", "type", "layout", "style"]

// Option 2: Detail level
detailLevel: "min" | "default" | "full"
// min: id, name, type, parentId only
// default: + transform, visibility, layout, constraints
// full: all fields including style, text, vector

Version Pinning

Always pin the document version for reproducible workflows:

const snapshot = await call('documents_getSnapshot', { documentId });
const version = snapshot.version;

// Use version in ALL subsequent calls
await call('nodes_get', { documentId, version, nodeId });
await call('tokens_get', { documentId, version });

Rate Limits

ToolDescription
General API calls100/min
export_svg20/min
nodes_getSubtree30/min
nodes_query60/min
If rate limited, wait and retry with exponential backoff.

Error Codes

ToolDescription
NOT_FOUNDDocument/node doesn't exist – Check IDs
FORBIDDENNo access to resource – Verify permissions
VALIDATION_ERRORInvalid parameters – Check input format
RATE_LIMITEDToo many requests – Wait and retry
INTERNAL_ERRORServer error – Retry or report

Limitations

When using browser-pushed documents:

  • Single document: Only the most recently pushed document is available per wallet. Pushing a new design overwrites the previous one.
  • No history: history_listVersions returns only the current version.
  • Asset URLs: resolve_asset_url may return null for images.
  • Thumbnails: render_thumbnail may return null for pushed documents.
  • Real-time: Updates are debounced (default 1 second). The MCP server sees changes shortly after you edit.