Figma
STDIOPython-based Figma MCP server for reading and analyzing design data via WebSocket
Python-based Figma MCP server for reading and analyzing design data via WebSocket
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