A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Figma MCP server for accelerating layout development
Figma Model Context Protocol (MCP) server, реализованный на Python с использованием FastMCP. Этот сервер позволяет AI ассистентам взаимодействовать с Figma через WebSocket соединение для чтения данных и анализа дизайнов.
Для безопасности этот сервер НЕ поддерживает:
set_*)join_channel - Присоединиться к каналу для связи с Figmaget_document_info - Получить информацию о текущем документе Figmaget_selection - Получить информацию о текущем выделенииread_my_design - Получить детальную информацию о выделении включая все детали узловget_node_info - Получить информацию о конкретном узле по IDget_nodes_info - Получить информацию о нескольких узлахget_node_children - Получить ID всех дочерних узлов с полной рекурсивной вложенностьюget_styles - Получить все стили из документаget_local_components - Получить все локальные компонентыget_instance_overrides - Получить переопределения экземпляра компонентаscan_text_nodes - Сканировать текстовые узлы внутри заданного узлаscan_nodes_by_types - Сканировать узлы определенных типов (TEXT, RECTANGLE, FRAME)export_node_as_image - Экспортировать узел как изображение (PNG, JPG, SVG, PDF)get_annotations - Получить аннотации для узла или всего документаget_reactions - Получить реакции (интерактивные связи) для узловAI Client (Cursor) ←→ MCP Server ←→ WebSocket Server ←→ Figma Plugin
cd python-version
python -m venv venv
source venv/bin/activate # Linux/Mac
# или venv\Scripts\activate # Windows
pip install -r requirements.txt
python websocket_proxy.py --port 3055 --debug
src/cursor_mcp_plugin/manifest.jsonabc123xyz)Добавьте следующую конфигурацию в настройки MCP Cursor (.cursor/mcp.json):
{
"mcpServers": {
"figma-mcp": {
"command": "python",
"args": ["-m", "src.figma_mcp.server", "--server", "localhost:3055"],
"cwd": "/path/to/your/figma_mcp"
}
}
}
Альтернативный способ (с виртуальным окружением):
{
"mcpServers": {
"figma-mcp": {
"command": "/path/to/your/figma_mcp/venv/bin/python",
"args": ["/path/to/your/figma_mcp/src/figma_mcp/server.py", "--server", "localhost:3055"]
}
}
}
Примечание: Замените
/path/to/your/figma_mcpна реальный путь к проекту.
python -m src.figma_mcp.server --server localhost:3055
Используйте инструмент join_channel с полученным Channel ID:
{
"tool": "join_channel",
"arguments": {
"channel": "abc123xyz"
}
}
{
"tool": "get_document_info",
"arguments": {}
}
{
"tool": "get_node_info",
"arguments": {
"node_id": "4472:98013"
}
}
{
"tool": "get_node_children",
"arguments": {
"node_id": "4472:98012"
}
}
{
"tool": "scan_text_nodes",
"arguments": {
"node_id": "4472:98012",
"use_chunking": true,
"chunk_size": 50
}
}
{
"tool": "export_node_as_image",
"arguments": {
"node_id": "4472:98013",
"format": "PNG",
"scale": 2.0
}
}
--debugСоздайте файл .cursor/mcp.json в корне вашего проекта или в домашней директории:
{
"$schema": "https://schema.cursor.com/mcp.json",
"mcpServers": {
"figma-mcp": {
"command": "python",
"args": ["-m", "src.figma_mcp.server", "--server", "localhost:3055"],
"cwd": "/absolute/path/to/figma_mcp",
"env": {
"PYTHONPATH": "/absolute/path/to/figma_mcp"
}
}
}
}
Основные параметры:
command: Команда для запуска Pythonargs: Аргументы для запуска MCP сервераcwd: Рабочая директория (абсолютный путь к проекту)env: Переменные окружения (опционально)python-version/
├── src/figma_mcp/
│ ├── __init__.py
│ ├── server.py # Главный MCP сервер
│ ├── websocket_client.py # WebSocket клиент
│ ├── types.py # Типы Pydantic
│ └── utils.py # Утилиты
├── tests/ # Тесты (41 тест)
├── websocket_proxy.py # WebSocket сервер
├── requirements.txt # Зависимости
└── README.md # Документация
Запуск всех тестов:
python -m pytest tests/ -v
Тестирование подключения:
python test_mcp.py
MIT License
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots