Figma MCP Server
Servidor MCP de Figma
Un servidor de Protocolo de Contexto de Modelo (MCP) que se integra con la API de Figma a través de Claude y otros clientes compatibles con MCP. Actualmente admite acceso de solo lectura a archivos y proyectos de Figma, con una arquitectura del lado del servidor que admite funciones más avanzadas de gestión de tokens de diseño y temas (pendiente de mejoras en la API de Figma o desarrollo de plugins).
Estado del proyecto
Progreso actual
✅ Implementación principal : se construyó con éxito un servidor TypeScript siguiendo el Protocolo de contexto de modelo (MCP)
✅ Integración con Claude Desktop : probada y funcional con Claude Desktop
✅ Operaciones de lectura : herramientas
get-fileylist-filesque funcionan para acceder a archivos de Figma✅ Arquitectura del servidor : Se implementó un sistema de almacenamiento en caché, manejo de errores y monitoreo de estadísticas.
✅ Protocolos de transporte : Se admiten mecanismos de transporte stdio y SSE
Funcionalidad potencial completa
El servidor ha sido diseñado con código para admitir estas funciones (actualmente limitadas por restricciones de API):
Gestión de variables : crear, leer, actualizar y eliminar tokens de diseño (variables)
Manejo de referencias : crear y validar relaciones entre tokens
Gestión de temas : crea temas con múltiples modos (por ejemplo, claro/oscuro)
Análisis de dependencia : detectar y prevenir referencias circulares
Operaciones por lotes : realice acciones masivas sobre variables y temas
Con el desarrollo del complemento Figma o un acceso API ampliado, estas funciones podrían habilitarse por completo.
Related MCP server: Figma MCP Server
Características
🔑 Autenticación segura con la API de Figma
📁 Operaciones con archivos (leer, listar)
🎨 Gestión de sistemas de diseño
Creación y gestión de variables
Creación y configuración de temas
Manejo y validación de referencias
🚀 Rendimiento optimizado
Almacenamiento en caché de LRU
Manejo del límite de velocidad
Agrupación de conexiones
📊 Monitoreo integral
controles de salud
Estadísticas de uso
Seguimiento de errores
Prerrequisitos
Node.js 18.x o superior
Token de acceso de Figma con los permisos adecuados
Comprensión básica del MCP (Protocolo de Contexto Modelo)
Instalación
npm install figma-mcp-serverConfiguración
Cree un archivo
.envbasado en.env.example:
# Figma API Access Token
FIGMA_ACCESS_TOKEN=your_figma_token
# Server Configuration
MCP_SERVER_PORT=3000
# Debug Configuration
DEBUG=figma-mcp:*Para la integración de Claude Desktop:
El servidor se puede configurar en el archivo de configuración de Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonVentanas:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"figma": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/figma-mcp-server/dist/index.js"],
"env": {
"FIGMA_ACCESS_TOKEN": "your_token_here"
}
}
}
}Notas importantes:
Utilice rutas ABSOLUTAS, no relativas
En Windows, utilice barras invertidas dobles (\\) en las rutas
Reinicie Claude Desktop después de realizar cambios de configuración
Uso
Uso básico
import { startServer } from 'figma-mcp-server';
const server = await startServer(process.env.FIGMA_ACCESS_TOKEN);Herramientas disponibles
obtener archivo
Recuperar detalles del archivo Figma GXP5
archivos de lista
Lista de archivos en un proyecto de Figma GXP6
crear variables
Crear variables del sistema de diseño GXP7
crear tema
Crear y configurar temas GXP8
Documentación de la API
Métodos de servidor
startServer(figmaToken: string, debug?: boolean, port?: number)Inicializa e inicia el servidor MCP
Devoluciones: Promesa
Esquemas de herramientas
Todas las entradas de la herramienta se validan utilizando esquemas Zod:
const CreateVariablesSchema = z.object({
fileKey: z.string(),
variables: z.array(z.object({
name: z.string(),
type: z.enum(['COLOR', 'FLOAT', 'STRING']),
value: z.string(),
scope: z.enum(['LOCAL', 'ALL_FRAMES'])
}))
});Manejo de errores
El servidor proporciona mensajes de error detallados y códigos de error adecuados:
Token no válido: 403 con mensaje de error específico
Limitación de velocidad: 429 con tiempo de reinicio
Errores de validación: 400 con detalles específicos del campo
Errores del servidor: 500 con seguimiento de errores
Limitaciones y problemas conocidos
Restricciones de la API
Operaciones de solo lectura
Limitado a operaciones de solo lectura debido a las restricciones de la API de Figma
Los tokens de acceso personal solo admiten operaciones de lectura, no de escritura.
No se pueden modificar variables, componentes o estilos a través de la API REST con tokens personales
Las operaciones de escritura requerirían el desarrollo del complemento Figma.
Limitación de velocidad
Sigue los límites de velocidad de la API de Figma
Implementar un retroceso exponencial para un mejor manejo
Gestión de caché
TTL predeterminado de 5 minutos
Limitado a 500 entradas
Considere implementar ganchos de invalidación de caché
Autenticación
Solo admite tokens de acceso personal
No hay soporte para permisos a nivel de equipo ni edición colaborativa
Implementación de OAuth planificada para el futuro
Implementación técnica
Requiere rutas absolutas en la configuración
Debe compilar archivos TypeScript antes de la ejecución
Requiere el manejo de la resolución del módulo tanto local como global
Contribuyendo
Bifurcar el repositorio
Crear una rama de características
Realiza tus cambios con pruebas
Enviar una solicitud de extracción
Por favor, siga nuestros estándares de codificación:
Modo estricto de TypeScript
Configuración de ESLint
Broma para probar
Manejo integral de errores
Licencia
Licencia MIT: consulte el archivo LICENCIA para obtener más detalles
Solución de problemas
Consulte TROUBLESHOOTING.md para obtener una guía completa de solución de problemas.
Problemas comunes
Errores de conexión JSON
Usar rutas absolutas en la configuración de Claude Desktop
Asegúrese de que el servidor esté compilado (
npm run build)Verifique que todas las variables de entorno estén configuradas
Problemas de autenticación
Verifique que su token de acceso de Figma sea válido
Compruebe que el token tenga los permisos necesarios
Asegúrese de que el token esté configurado correctamente
El servidor no se inicia
Verifique la versión de Node.js (se requiere 18.x+)
Verificar que la compilación exista (
dist/index.js)Consulte los registros de Claude Desktop:
macOS:
~/Library/Logs/Claude/mcp*.logVentanas:
%APPDATA%\Claude\logs\mcp*.log
Para obtener pasos de depuración y soluciones más detallados, consulte la guía de solución de problemas.
Apoyo
Problemas de GitHub: Informar un error
Documentación: Wiki
Discord: Únete a nuestra comunidad
Available Tools
2 toolsget-fileA
Get details of a Figma file
| Name | Required | Description | Default |
|---|---|---|---|
| fileKey | Yes | The Figma file key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden but only says 'get details'. No disclosure of what details include, authentication needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, description is minimally complete but lacks specificity on what 'details' are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter documented. Description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Get') and resource ('details of a Figma file'). It distinguishes from sibling 'list-files' which lists files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-filesB
List files in a Figma project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The Figma project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, and description lacks behavioral context. Does not inform about pagination, result format, or any constraints. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. However, it might be too minimal; a little more detail would improve without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose but lacks guidance on response format, limitations, or differentiation from sibling. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter is fully described in schema. Description does not add additional meaning or context (e.g., format of ID, where to find it). So baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (list) and resource (files in a Figma project). Distinguishes from sibling tool get-file which likely retrieves a single file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines provided; agent must infer from context alone. Does not mention when to use list versus get or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.1- First observed
get-file - First observed
list-files
TDQS
Scored across 2 tools
The two tools are clearly distinct: one retrieves details of a specific file, the other lists files in a project. There is no overlap or ambiguity.
Both tools follow a consistent verb_noun pattern (get-file, list-files) using snake_case, making them predictable and readable.
With only 2 tools, the server feels very thin for a full Figma integration. While the count is borderline, it is still usable for basic file listing and retrieval.
The server lacks critical operations such as creating, updating, or deleting files, and does not cover other common Figma resources like components or styles. This is a significant gap for expected Figma workflows.
Maintenance
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables Cursor to access Figma files through the Model Context Protocol, enhancing its ability to accurately interpret and utilize design data for code generation.90,948 npm15,964MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to interact with Figma files through the ModelContextProtocol, allowing viewing, commenting, and analyzing Figma designs directly in chat interfaces.51,945 npm213-
- AlicenseBqualityDmaintenanceAllows Cursor AI to communicate with Figma for reading designs and modifying them programmatically through a Model Context Protocol integration.381,129 npm1MIT
- FlicenseBqualityDmaintenanceEnables Cursor AI to read and modify Figma designs programmatically via the Model Context Protocol.381,129 npm3-