MCP server
cyber-figma ships a stdio MCP server in the same package as the CLI. Both call the
same core operations, so nothing is MCP-only or CLI-only.
Set your authentication variables — FIGMA_ACCESS_TOKEN,
and optionally FIGMA_TEAM_ID — in the environment that launches the server.
Server configuration
Section titled “Server configuration”Install cyber-figma in the project that hosts your agent
(Installation). The host spawns a child process and talks MCP
over stdio.
| Context | command |
args |
|---|---|---|
| Project dependency | node |
["-e", "import('cyber-figma/mcp')"] |
| Project dependency (bin) | cyber-figma |
["mcp"] |
Ephemeral (npx) |
npx |
["-y", "cyber-figma", "mcp"] |
Output format
Section titled “Output format”Tools return JSON by default. Set CYBER_FIGMA_MCP_FORMAT=toon in the server’s env to
emit token-efficient TOON instead. Formatting is applied centrally, so it is consistent
across every tool.
Claude Desktop
Section titled “Claude Desktop”| OS | Config file |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{ "mcpServers": { "cyber-figma": { "command": "node", "args": ["-e", "import('cyber-figma/mcp')"], "env": { "FIGMA_ACCESS_TOKEN": "<your-token>", "FIGMA_TEAM_ID": "<team-id>" } } }}Claude Code
Section titled “Claude Code”User or local scope — recommended for a personal token:
claude mcp add -e FIGMA_ACCESS_TOKEN=<your-token> -e FIGMA_TEAM_ID=<team-id> cyber-figma -- \ node -e "import('cyber-figma/mcp')"Project scope — commit .mcp.json in the repo root:
{ "mcpServers": { "cyber-figma": { "command": "node", "args": ["-e", "import('cyber-figma/mcp')"], "env": { "FIGMA_ACCESS_TOKEN": "${FIGMA_ACCESS_TOKEN}", "FIGMA_TEAM_ID": "${FIGMA_TEAM_ID}" } } }}Verify with claude mcp list. Use /mcp in a session to reconnect without restarting.
Cursor
Section titled “Cursor”User-wide: ~/.cursor/mcp.json. Project-specific: .cursor/mcp.json in the repo root.
Agent mode is required for tool use. The JSON shape matches Claude Desktop’s.
Add to ~/.codex/config.toml:
[mcp_servers.cyber-figma]command = "node"args = ["-e", "import('cyber-figma/mcp')"]
[mcp_servers.cyber-figma.env]FIGMA_ACCESS_TOKEN = "<your-token>"FIGMA_TEAM_ID = "<team-id>"MCP Inspector
Section titled “MCP Inspector”Debug tools and schemas without an agent host:
npx @modelcontextprotocol/inspector \ -e FIGMA_ACCESS_TOKEN=<your-token> \ -- npx -y cyber-figma mcpTool catalog
Section titled “Tool catalog”Tools are named figma_<resource>_<action> — for example figma_file_get,
figma_comment_list, figma_webhook_create.
| Namespace | Planned tools cover | Status |
|---|---|---|
figma_file_* |
File JSON, node JSON, image rendering, image fills, metadata, versions | 📋 Planned |
figma_project_* |
Team projects, project metadata, project files | 📋 Planned |
figma_comment_* |
Comments and comment reactions | 📋 Planned |
figma_user_* |
The authenticated user | 📋 Planned |
figma_component_* / figma_component_set_* / figma_style_* |
Published library content | 📋 Planned |
figma_webhook_* |
Webhooks v2 | 📋 Planned |
figma_variable_* |
Variables (Enterprise) | 📋 Planned |
figma_dev_resource_* |
Dev Mode resource links | 📋 Planned |
figma_analytics_* |
Library Analytics (Enterprise) | 📋 Planned |
figma_activity_log_* / figma_developer_log_* / figma_ai_usage_* / figma_discovery_* |
Org-admin reporting (Enterprise) | 📋 Planned |
figma_payment_* |
Purchase validation | 📋 Planned |
figma_oembed_* |
oEmbed metadata | 📋 Planned |
List tools accept the shared pagination parameters wherever Figma supports paging. See API coverage for why that needs normalizing at all.
This is not Figma’s MCP server
Section titled “This is not Figma’s MCP server”Figma ships its own MCP server, which per Figma’s scopes documentation “handles its own OAuth authentication flow — you don’t configure REST API scopes for it”, and whose access is limited to clients listed in the Figma MCP Catalog (with a waitlist for new clients).
cyber-figma’s MCP server is a different thing: a local REST API wrapper using REST API
credentials. It is not a client of Figma’s MCP server, and the two can be installed
alongside each other — the config keys differ, and so do the tool names.
One thing worth knowing if your org audits API usage: Figma’s Developer Logs cover both REST API and MCP server requests.