Skip to main content

Overview

This guide covers all installation methods for Talk to Figma MCP, including automated setup, manual configuration, and platform-specific instructions.
For a faster setup experience, see the Quick Start guide.

System Requirements

Required

  • Bun (recommended) or Node.js v18+
  • Figma Desktop App or Figma in Browser
  • Cursor or Claude Code with MCP support
  • Network Access: Localhost WebSocket (port 3055)

Platform Support

macOS

Full support with native Bun installation

Linux

Full support with native Bun installation

Windows

Requires additional WSL configuration

Installation Methods

MCP Configuration

Cursor Configuration

Create or edit ~/.cursor/mcp.json (or .cursor/mcp.json in your project):
{
  "mcpServers": {
    "TalkToFigma": {
      "command": "bunx",
      "args": ["cursor-talk-to-figma-mcp@latest"]
    }
  }
}
For local development, use the absolute path to server.ts, not a relative path.

Claude Code Configuration

You can configure Claude Code in two ways:

Option 1: Manual File Edit

Create or edit .mcp.json in your project root:
{
  "mcpServers": {
    "TalkToFigma": {
      "command": "bunx",
      "args": ["cursor-talk-to-figma-mcp@latest"]
    }
  }
}

Option 2: CLI Command

Use the Claude Code CLI:
claude mcp add TalkToFigma -- bunx cursor-talk-to-figma-mcp@latest

Configuration Reference

command
string
required
The command to execute. Use bunx for published package or bun for local development.
args
array
required
Arguments passed to the command. For published package: ["cursor-talk-to-figma-mcp@latest"]. For local: ["/path/to/server.ts"].
env
object
Optional environment variables. Example:
{
  "env": {
    "PORT": "3055"
  }
}

Start WebSocket Server

The WebSocket relay must be running for the MCP server to communicate with Figma.

Basic Usage

In the repository directory:
bun socket
Expected output:
WebSocket server running on port 3055
Keep this terminal window open. The WebSocket server must run continuously while using Talk to Figma MCP.

Custom Port

To use a different port, set the PORT environment variable:
PORT=8080 bun socket

Development Mode

For development with auto-reload:
bun run dev
This runs the MCP server build in watch mode. Run bun socket in a separate terminal.

Figma Plugin Installation

1

Visit Plugin Page

2

Install Plugin

Click Install to add it to your Figma account
3

Run Plugin

In any Figma file: PluginsTalk to Figma MCP Plugin

Local Development Plugin

For plugin development or customization:
1

Open Figma Desktop

The plugin development workflow requires Figma Desktop, not the browser version
2

Access Development Menu

Go to PluginsDevelopmentNew Plugin
3

Link Existing Plugin

Choose “Link existing plugin”
4

Select Manifest

Navigate to the repository and select:
src/cursor_mcp_plugin/manifest.json
5

Plugin Available

The plugin is now available under PluginsDevelopmentCursor MCP Plugin
The Figma plugin files are not bundled. The code.js file is used directly as the runtime artifact. Edit code.js and ui.html directly in the src/cursor_mcp_plugin/ directory.

Plugin Files

manifest.json
object
Plugin metadata including ID, permissions, and network access configuration
code.js
file
Plugin main thread that handles 30+ commands via a dispatcher
ui.html
file
Plugin UI for WebSocket connection management

Platform-Specific Setup

Windows + WSL

Windows users with WSL need an additional configuration step:
1

Install Bun in PowerShell

powershell -c "irm bun.sh/install.ps1|iex"
2

Modify socket.ts

Open src/socket.ts and uncomment the hostname line:
src/socket.ts
const server = Bun.serve({
  port: 3055,
  // uncomment this to allow connections in windows wsl
  hostname: "0.0.0.0", // ← Uncomment this line
  fetch(req: Request, server: Server) {
    // ...
  }
});
3

Start WebSocket Server

bun socket
Without setting hostname: "0.0.0.0", the WebSocket server won’t be accessible from Windows to WSL.

macOS

No additional configuration needed. Follow the standard installation steps.

Linux

No additional configuration needed. Follow the standard installation steps.

Verification

Verify your installation is working:
1

Check WebSocket Server

Terminal should show:
WebSocket server running on port 3055
2

Verify MCP Configuration

Open your AI agent (Cursor/Claude Code) and check that the TalkToFigma MCP server appears in the MCP servers list
3

Test Plugin Connection

  1. Open Figma and run the plugin
  2. In your AI agent, use the join_channel tool
  3. Check terminal output for:
✓ Client joined channel "default" (2 total clients)
4

Test Basic Command

In your AI agent, ask:
Get information about the current Figma document
You should receive document details in JSON format
If all steps succeed, your installation is complete!

Troubleshooting

Solution:
  1. Restart your terminal after installing Bun
  2. Verify installation: bun --version
  3. Add Bun to PATH manually:
export PATH="$HOME/.bun/bin:$PATH"
Add this line to your .bashrc, .zshrc, or .profile
Solution:
  1. Find the process using port 3055:
macOS/Linux
lsof -i :3055
Windows
netstat -ano | findstr :3055
  1. Kill the process or use a different port:
PORT=8080 bun socket
Possible causes:
  • WebSocket server not running → Check bun socket is active
  • Firewall blocking port 3055 → Allow localhost connections
  • WSL without hostname config → Set hostname: "0.0.0.0"
  • Wrong channel name → Ensure MCP server and plugin use same channel
Debug steps:
  1. Check server logs in terminal running bun socket
  2. Open browser console: PluginsDevelopmentOpen Console
  3. Look for WebSocket connection errors
Solution:
  1. Verify configuration file location:
    • Cursor: ~/.cursor/mcp.json or .cursor/mcp.json
    • Claude: .mcp.json in project root
  2. Check JSON syntax is valid
  3. For local development, use absolute paths
  4. Restart your AI agent
Solution:
  1. Clear dependencies and reinstall:
rm -rf node_modules
bun install
  1. Verify Bun version:
bun --version
Should be v1.0.0 or higher.
  1. Try building manually:
bun run build
Solution:
  1. For community plugin: Check you’re logged into Figma
  2. For local plugin:
    • Verify you selected the correct manifest.json file
    • Check PluginsDevelopment menu
    • Try relinking the plugin
  3. Check plugin permissions in manifest.json:
"documentAccess": "dynamic-page",
"networkAccess": {
  "allowedDomains": ["ws://localhost:3055"]
}

Advanced Configuration

Custom WebSocket URL

The MCP server supports a custom WebSocket URL via command-line argument:
{
  "mcpServers": {
    "TalkToFigma": {
      "command": "bunx",
      "args": [
        "cursor-talk-to-figma-mcp@latest",
        "--server=myserver.com:8080"
      ]
    }
  }
}
Default: ws://localhost:3055

Environment Variables

PORT
string
default:"3055"
WebSocket server port
NODE_ENV
string
Set to development for additional logging
Example:
{
  "mcpServers": {
    "TalkToFigma": {
      "command": "bunx",
      "args": ["cursor-talk-to-figma-mcp@latest"],
      "env": {
        "PORT": "8080",
        "NODE_ENV": "development"
      }
    }
  }
}

Multiple Instances

Run multiple independent instances using different channels:
  1. Start WebSocket server once: bun socket
  2. Configure multiple MCP servers with unique names
  3. Join different channels for each instance
{
  "mcpServers": {
    "TalkToFigma-Project1": {
      "command": "bunx",
      "args": ["cursor-talk-to-figma-mcp@latest"]
    },
    "TalkToFigma-Project2": {
      "command": "bunx",
      "args": ["cursor-talk-to-figma-mcp@latest"]
    }
  }
}
Then use join_channel with different channel names: "project1", "project2", etc.

Development Commands

For contributors and developers:
# Install dependencies
bun install

# Build MCP server (tsup → dist/)
bun run build

# Build in watch mode
bun run dev

# Start WebSocket relay
bun socket

# Run built MCP server
bun run start

# Full setup (install + config)
bun setup

# Publish to npm
bun run pub:release
There is no test suite or linter configured in this project.

Uninstallation

To remove Talk to Figma MCP:
1

Stop WebSocket Server

Press Ctrl+C in the terminal running bun socket
2

Remove MCP Configuration

Delete the TalkToFigma entry from:
  • ~/.cursor/mcp.json (Cursor)
  • .mcp.json (Claude Code)
3

Remove Figma Plugin

In Figma: PluginsDevelopment → Right-click plugin → Unlink
4

Delete Repository

rm -rf talk-to-figma-mcp

Next Steps

Quick Start

Get up and running with hands-on examples

API Reference

Explore all 50+ available tools

Best Practices

Learn patterns for effective design automation

GitHub Repository

View source code and contribute

Get Help

If you encounter issues during installation:
Installation complete! Your Talk to Figma MCP is ready to use.

Build docs developers (and LLMs) love