A Figma MCP server built on the Dedalus platform.
Connect Figma design components to code implementations, manage files and branches, and interact with Figma's design system through AI agents.
- Get file metadata and traverse the full node tree
- Manage components — create, update, list, and search across files and teams
- Connect design components to code via Code Connect (React, HTML, SwiftUI, Compose)
- Publish, retrieve, and remove Code Connect mappings
- Browse file version history and create branches
- Access team-level published component libraries
- Python 3.10+
piporuv- A Figma account with a personal access token
- A Dedalus account
cp .env.example .envFill in your .env:
# Dedalus Platform
DEDALUS_AS_URL=https://as.dedaluslabs.ai
DEDALUS_API_KEY=<your-dedalus-api-key>
DEDALUS_API_URL=https://api.dedaluslabs.ai
# Figma personal access token
FIGMA_ACCESS_TOKEN=<your-figma-pat>pip install -e .python -m src.client --test-connectionpython -m src.mainThe server starts on port 8080. Test it with:
python -m src.client| Variable | Description |
|---|---|
DEDALUS_AS_URL |
Dedalus authorization server URL (default: https://as.dedaluslabs.ai) |
DEDALUS_API_KEY |
Your Dedalus platform API key (dsk_*) |
DEDALUS_API_URL |
Dedalus API URL (default: https://api.dedaluslabs.ai) |
FIGMA_ACCESS_TOKEN |
Your Figma personal access token |
| Tool | R/W | Description |
|---|---|---|
figma_get_file |
R | Get file metadata and node tree |
figma_get_file_versions |
R | Get file version history |
figma_create_branch |
W | Create a file branch |
figma_get_component |
R | Get specific component nodes by ID |
figma_get_components |
R | Get all components in a file |
figma_create_component |
W | Create a new component |
figma_update_component |
W | Update component properties |
figma_get_team_components |
R | Get a team's published components |
figma_search_components |
R | Search for components in a team |
figma_get_code_connect |
R | Get Code Connect data for a file |
figma_publish_code_connect |
W | Publish Code Connect mappings |
figma_unpublish_code_connect |
W | Remove Code Connect mappings |
Figma uses a REST API with Bearer token authentication. All requests are dispatched through the Dedalus HTTP enclave, which injects the personal access token transparently.
src/
├── figma/
│ ├── config.py # Connection definition (Bearer token)
│ ├── request.py # REST dispatch + query-param helpers
│ └── types.py # Typed dataclass models
├── tools/
│ ├── files.py # File + version + branch tools
│ ├── components.py # Component CRUD + team search
│ └── code_connect.py # Code Connect publish/get/unpublish
├── server.py # MCPServer setup
├── main.py # Server entrypoint
└── client.py # Connection test + tool test client
- Log in to the Dedalus Dashboard.
- Go to Add Server and connect this repository.
- Enter
FIGMA_ACCESS_TOKENin the deployment environment variables. - Deploy.
- Figma personal access tokens do not expire automatically but can be revoked.
- Code Connect requires appropriate file permissions and Dev Mode access.
- Team component endpoints require the team ID (found in the Figma URL).
- Some features (Figma Make, private npm packages) may require a paid Figma plan.
- API rate limits apply — see Figma rate limits docs.