Figma MCP Server

Figma MCP Server

A Python implementation of the Model Context Protocol server that enables AI assistants to interact with Figma through WebSocket connections, allowing them to read, analyze, and export design data.

Category
Visit Server

README

Figma MCP Server (Python)

Figma Model Context Protocol (MCP) server, реализованный на Python с использованием FastMCP. Этот сервер позволяет AI ассистентам взаимодействовать с Figma через WebSocket соединение для чтения данных и анализа дизайнов.

🎯 Возможности

  • 📖 Чтение данных: Получение информации о документах, узлах, компонентах и стилях
  • 🔍 Поиск и анализ: Сканирование узлов по типам, поиск текстового контента
  • 📤 Экспорт: Экспорт узлов как изображений в различных форматах
  • 📋 Аннотации: Просмотр аннотаций в документах
  • 🧩 Компоненты: Работа с компонентами и их экземплярами
  • 🔗 Прототипирование: Получение информации о реакциях и связях

🚫 Ограничения

Для безопасности этот сервер НЕ поддерживает:

  • Создание новых элементов
  • Изменение стилей, цветов или текста (инструменты set_*)
  • Операции изменения узлов (перемещение, изменение размера, удаление, клонирование)

📋 Доступные инструменты (14 шт.)

🔗 Подключение

  • join_channel - Присоединиться к каналу для связи с Figma

📖 Получение информации

  • get_document_info - Получить информацию о текущем документе Figma
  • get_selection - Получить информацию о текущем выделении
  • read_my_design - Получить детальную информацию о выделении включая все детали узлов
  • get_node_info - Получить информацию о конкретном узле по ID
  • get_nodes_info - Получить информацию о нескольких узлах
  • 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
  1. MCP Server - Предоставляет инструменты для AI
  2. WebSocket Server - Координирует соединения и каналы
  3. Figma Plugin - Выполняет команды в Figma

🚀 Быстрый старт

1. Установка зависимостей

cd python-version
python -m venv venv
source venv/bin/activate  # Linux/Mac
# или venv\Scripts\activate  # Windows
pip install -r requirements.txt

2. Запуск WebSocket сервера

python websocket_proxy.py --port 3055 --debug

3. Запуск в Figma

  1. Откройте Figma Desktop
  2. Перейдите в Plugins → Development → Import plugin from manifest...
  3. Выберите src/cursor_mcp_plugin/manifest.json
  4. Запустите плагин "Cursor MCP Plugin"
  5. Подключитесь к серверу на порту 3055
  6. Запомните Channel ID (например: abc123xyz)

4. Запуск MCP сервера

python -m src.figma_mcp.server --server localhost:3055

5. Подключение к каналу

Используйте инструмент 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": "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
  }
}

🔧 Конфигурация

WebSocket Server

  • Порт: 3055 (по умолчанию)
  • Host: localhost
  • Debug режим: --debug

MCP Server

  • Server URL: localhost:3055 (по умолчанию)
  • Протокол: MCP 2024-11-05
  • Transport: stdio

📁 Структура проекта

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

🔒 Безопасность

  • Фильтрация конфиденциальных данных из ответов Figma
  • Валидация всех параметров с Pydantic
  • Обработка ошибок и таймаутов
  • Логирование в stderr для отладки

📦 Зависимости

  • fastmcp: 2.4.0 - MCP сервер фреймворк
  • websockets: 15.0.1 - WebSocket клиент/сервер
  • pydantic: 2.11.5 - Валидация данных
  • pytest: 8.3.5 - Тестирование

🐛 Отладка

  1. Проблемы с подключением: Проверьте статус WebSocket сервера
  2. Таймауты: Увеличьте timeout в WebSocket клиенте
  3. Ошибки каналов: Убедитесь, что используете правильный Channel ID
  4. Логи: Смотрите вывод в stderr для детальной информации

📝 Лицензия

MIT License

🤝 Вклад

  1. Форкните репозиторий
  2. Создайте ветку для функции
  3. Добавьте тесты
  4. Отправьте pull request

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured