Figma MCP Server
MCP-сервер для интеграции с Figma через Claude и другие клиенты, поддерживающие Model Context Protocol. На данный момент реализован только read-only доступ к файлам и проектам; архитектура сервера позволяет в будущем добавить управление дизайн-токенами и темами (при расширении Figma API или разработке плагина).
Статус проекта
Реализовано:
- TypeScript-сервер по протоколу MCP
- Интеграция с Claude Desktop (работает)
- Чтение файлов:
get-file и list-files
- Кэширование, обработка ошибок, мониторинг статистики
- Транспорт: stdio и SSE
Потенциальный функционал (ограничен API Figma):
- Управление переменными (создание, чтение, обновление, удаление)
- Работа с референсами (создание и проверка связей)
- Управление темами (светлая/тёмная и т.д.)
- Анализ зависимостей и предотвращение циклических ссылок
- Пакетные операции
Возможности
- Безопасная аутентификация через Figma API
- Операции с файлами (чтение, список)
- Управление дизайн-системами (переменные, темы, референсы)
- Кэширование LRU, обработка лимитов запросов, пул соединений
- Мониторинг: проверки здоровья, статистика использования, отслеживание ошибок
Предварительные требования
- Node.js 18.x или выше
- Figma access token с соответствующими правами
- Базовое понимание MCP (Model Context Protocol)
Установка
npm install figma-mcp-server
Конфигурация
Создайте файл .env на основе .env.example:
FIGMA_ACCESS_TOKEN=ваш_токен
MCP_SERVER_PORT=3000
DEBUG=figma-mcp:*
Интеграция с Claude Desktop
Добавьте сервер в конфигурационный файл Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"figma": {
"command": "node",
"args": ["/ABS/ПУТЬ/figma-mcp-server/dist/index.js"],
"env": {
"FIGMA_ACCESS_TOKEN": "ваш_токен"
}
}
}
}
Важно:
- Используйте абсолютные пути (не относительные).
- На Windows используйте двойные обратные слеши (
\\).
- После изменения конфигурации перезапустите Claude Desktop.
Использование
Программный запуск
import { startServer } from 'figma-mcp-server';
const server = await startServer(process.env.FIGMA_ACCESS_TOKEN);
Доступные инструменты (Tools)
get-file
Получение содержимого файла Figma.
{
"name": "get-file",
"arguments": {
"fileKey": "ваш_file_key"
}
}
list-files
Список файлов в проекте.
{
"name": "list-files",
"arguments": {
"projectId": "ваш_project_id"
}
}
create-variables
Создание переменных дизайн-системы.
{
"name": "create-variables",
"arguments": {
"fileKey": "ваш_file_key",
"variables": [
{
"name": "primary-color",
"type": "COLOR",
"value": "#0066FF"
}
]
}
}
create-theme
Создание и настройка тем.
{
"name": "create-theme",
"arguments": {
"fileKey": "ваш_file_key",
"name": "Dark Theme",
"modes": [
{
"name": "dark",
"variables": [
{
"variableId": "123",
"value": "#000000"
}
]
}
]
}
}
Ограничения и известные проблемы
Ограничения Figma API
- Только чтение: личные токены доступа не позволяют запись через REST API. Операции создания/изменения переменных и тем — заготовки, которые заработают только при наличии плагина Figma или расширенных прав доступа.
- Лимиты запросов: соблюдайте лимиты Figma, рекомендуется использовать экспоненциальную задержку.
- Кэш: TTL 5 минут, максимум 500 записей. Рассмотрите инвалидацию кэша.
- Аутентификация: только личные токены. OAuth пока не реализован.
- Технические нюансы: требуются абсолютные пути в конфиге, необходимо компилировать TypeScript перед запуском.
Типичные проблемы
Ошибки JSON-соединения:
- Используйте абсолютные пути в конфигурации Claude Desktop.
- Убедитесь, что сервер собран (
npm run build).
- Проверьте переменные окружения.
Проблемы аутентификации:
- Убедитесь, что токен Figma действителен и имеет необходимые права.
- Проверьте правильность установки токена в конфиге.
Сервер не запускается:
- Node.js версии 18+.
- Проверьте наличие собранного файла
dist/index.js.
- Посмотрите логи Claude Desktop:
- macOS:
~/Library/Logs/Claude/mcp*.log
- Windows:
%APPDATA%\Claude\logs\mcp*.log
Содействие (Contributing)
- Форкните репозиторий.
- Создайте ветку для фичи.
- Внесите изменения с тестами.
- Отправьте pull request.
Стандарты кода: TypeScript strict mode, ESLint, Jest, всесторонняя обработка ошибок.
Лицензия
MIT. Подробнее в файле LICENSE.
Ссылки
Комментарии
Комментариев пока нет. Будьте первым.