Install and configure Cursor-Figma MCP integration with fail-safe checkpoints at each step.
Execute these commands and verify all pass before proceeding:
# Check 1: Cursor IDE installed
which cursor && echo "β
Cursor found" || echo "β ERROR: Install Cursor IDE first"
# Check 2: Git available
git --version && echo "β
Git found" || echo "β ERROR: Git not available"
# Check 3: macOS verification
sw_vers -productVersion && echo "β
macOS confirmed" || echo "β ERROR: macOS required"
CHECKPOINT: All three checks must show β before proceeding.
# Install Bun
curl -fsSL https://bun.sh/install | bash
# Reload shell environment
source ~/.zshrc 2>/dev/null || source ~/.bashrc 2>/dev/null || true
# Verify installation
bun --version && echo "β
Bun installed successfully" || echo "β ERROR: Bun installation failed"
CHECKPOINT: Must see Bun version number. If failed, stop here and troubleshoot.
# Navigate to Sites directory (create if doesn't exist)
mkdir -p ~/Sites && cd ~/Sites
# Clone repository
git clone https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp.git
# Enter project directory
cd cursor-talk-to-figma-mcp
# Verify project structure
ls package.json src && echo "β
Project structure valid" || echo "β ERROR: Invalid project structure"
CHECKPOINT: Must see β
Project structure valid. Current directory must be cursor-talk-to-figma-mcp
.
# Install dependencies
bun install && echo "β
Dependencies installed" || echo "β ERROR: Dependency installation failed"
# Build project
bun run build && echo "β
Build successful" || echo "β ERROR: Build failed"
# Verify build output
test -f dist/server.js && echo "β
Server built" || echo "β ERROR: Server build missing"
# Setup MCP configuration
bun setup && echo "β
MCP setup complete" || echo "β ERROR: MCP setup failed"
# Verify MCP config
test -f .cursor/mcp.json && echo "β
MCP config created" || echo "β ERROR: MCP config missing"
CHECKPOINT: All four steps must show β
. The file .cursor/mcp.json
must exist in current directory.
π¨ CRITICAL: Cursor must be launched from the project directory to load MCP configuration.
# Verify current directory is correct
pwd | grep "cursor-talk-to-figma-mcp" && echo "β
Correct directory" || echo "β ERROR: Wrong directory"
# Launch Cursor from project directory
cursor .
# Wait for initialization
sleep 15
CHECKPOINT: Cursor should open with the project loaded. Verify in Cursor:
- Open Settings (
Cmd+,
) - Search "MCP"
- Confirm "TalkToFigma" shows as "Connected"
π NEW TERMINAL REQUIRED: Open a completely new terminal window and run:
# Navigate to project directory
cd ~/Sites/cursor-talk-to-figma-mcp
# Start WebSocket server (keep this running)
bun socket
CHECKPOINT: Server should start and show "WebSocket server running on port 3001" or similar message. Keep this terminal open and running.
Choose ONE method and install:
- Community Plugin: https://www.figma.com/community/plugin/1485687494525374295/cursor-talk-to-figma-mcp-plugin
- Local Plugin: In Figma > Plugins > Development > New Plugin > Link existing plugin > Select
~/Sites/cursor-talk-to-figma-mcp/src/cursor_mcp_plugin/manifest.json
In Cursor (where MCP is connected):
- Test MCP:
join_channel
β Should see "Successfully joined channel" - Test Figma:
get_document_info
β Should see JSON data from Figma
β If both commands work, setup is complete!
# Check directory
pwd | grep "cursor-talk-to-figma-mcp" || echo "Navigate to project directory first"
# Restart Cursor from project directory
cd ~/Sites/cursor-talk-to-figma-mcp && cursor .
# Check if server is running
lsof -i :3001 || echo "Start WebSocket server: bun socket"
# Restart server
cd ~/Sites/cursor-talk-to-figma-mcp && bun socket
- Ensure plugin is activated in Figma
- Check WebSocket server is running
- Restart Figma if needed
Installation is complete when ALL of the following are true:
pwd
shows you're incursor-talk-to-figma-mcp
directorytest -f .cursor/mcp.json
returns success- Cursor Settings shows "TalkToFigma" as "Connected"
join_channel
command works in Cursorget_document_info
returns Figma data- WebSocket server shows active connections
If any verification fails, repeat the corresponding step above.