Overview
Establishes a channel-based communication session with the Figma plugin. This tool must be called before any other Figma operations to ensure commands are routed to the correct client.Channel-Based Communication
The Talk to Figma MCP uses a channel system for isolation:- WebSocket Relay - Routes messages between the MCP server and Figma plugin
- Channels - Logical communication spaces that isolate different sessions
- Plugin Connection - Each Figma plugin instance joins a specific channel
Usage
Parameters
The name of the channel to join. This should match the channel name configured in the Figma plugin UI.Best practices:
- Use descriptive names (e.g.,
homepage-redesign,mobile-prototype) - Keep names simple (alphanumeric and hyphens recommended)
- Coordinate channel names between the AI agent and Figma plugin
Response
On success, returns:- Not connected to WebSocket server
- Invalid channel name
- Connection issues
Workflow
Step 1: Start WebSocket Relay
The relay server must be running (typically on port 3055):Step 2: Configure Figma Plugin
- Open the Talk to Figma plugin in Figma
- Enter the channel name (e.g.,
my-session) - Click “Connect”
Step 3: Join from MCP
Step 4: Execute Commands
After joining, all other tools become available:Channel Isolation
Channels provide isolation between sessions:- Commands sent on
channel-aonly reach plugins connected tochannel-a - Different channels can operate on different Figma files simultaneously
- Channel switching requires calling
join_channelagain
Common Errors
”Not connected to Figma”
Cause: WebSocket server is not running or unreachable. Solution: Start the relay server withbun socket
”Must join a channel before sending commands”
Cause: Attempting to use other tools before callingjoin_channel.
Solution: Always call join_channel first in your session.
No response from Figma
Cause: Figma plugin is not connected to the same channel. Solution: Verify the plugin shows “Connected” status and uses the same channel name.Architecture
Related Tools
- get_document_info - First command after joining
- get_selection - Check current selection