Talk to Figma MCP
Un servidor para integrarse con Figma, que permite interactuar con tus archivos de diseño.
Documentación
Talk to Figma MCP
Cómo usar
1. Instalación de Bun
2. Registro de MCP
2.1 Ejecutar desde el repositorio usando bun
"TalkToFigma": {
"command": "bunx",
"args": ["hyun1202/talk-to-figma-mcp#dist"]
}
2.2 Ejecución directa
Como no está registrado en el repositorio de npm, debes configurar el proyecto para que se ejecute realmente.
basado en Windows
"TalkToFigma": {
"command": "cmd",
"args": ["/c", "npm", "--silent", "-C", "C:/cursor-talk-to-figma-mcp", "start"]
}
Cambios realizados
- Modificado para permitir la creación de componentes locales
- Modificado para que los componentes se creen en el elemento principal al crearlos
Original
Cursor Talk to Figma MCP
Estructura del proyecto
src/talk_to_figma_mcp/- Servidor MCP TypeScript para la integración con Figmasrc/cursor_mcp_plugin/- Plugin de Figma para comunicarse con Cursorsrc/socket.ts- Servidor WebSocket que facilita la comunicación entre el servidor MCP y el plugin de Figma
Primeros pasos
- Instala Bun si aún no lo tienes:
curl -fsSL https://bun.sh/install | bash
- Ejecuta la configuración; esto también instalará MCP en el proyecto activo de tu Cursor
bun setup
- Inicia el servidor WebSocket
bun socket
- Servidor MCP
bunx cursor-talk-to-figma-mcp
- NUEVO Instala el plugin de Figma desde la página de la comunidad de Figma o instálalo localmente
Tutorial rápido en video
Ejemplo de automatización de diseño
Reemplazo masivo de contenido de texto
Gracias a @dusskapark por contribuir con la función de reemplazo masivo de texto. Aquí está el video de demostración.
Propagación de anulaciones de instancias Otra contribución de @dusskapark Propaga las anulaciones de instancias de componentes desde una instancia de origen a múltiples instancias de destino con un solo comando. Esta función reduce drásticamente el trabajo de diseño repetitivo cuando se trabaja con instancias de componentes que necesitan personalizaciones similares. Consulta nuestro video de demostración.
Configuración e instalación manual
Servidor MCP: Integración con Cursor
Agrega el servidor a tu configuración de MCP de Cursor en ~/.cursor/mcp.json:
{
"mcpServers": {
"TalkToFigma": {
"command": "bunx",
"args": ["cursor-talk-to-figma-mcp@latest"]
}
}
}
Servidor WebSocket
Inicia el servidor WebSocket:
bun socket
Plugin de Figma
- En Figma, ve a Plugins > Desarrollo > Nuevo plugin
- Elige "Vincular plugin existente"
- Selecciona el archivo
src/cursor_mcp_plugin/manifest.json - El plugin ahora debería estar disponible en tus plugins de desarrollo de Figma
Guía para Windows + WSL
- Instala bun mediante powershell
powershell -c "irm bun.sh/install.ps1|iex"
- Descomenta el nombre de host
0.0.0.0ensrc/socket.ts
// uncomment this to allow connections in windows wsl
hostname: "0.0.0.0",
- Inicia el websocket
bun socket
Uso
- Inicia el servidor WebSocket
- Instala el servidor MCP en Cursor
- Abre Figma y ejecuta el Plugin Cursor MCP
- Conecta el plugin al servidor WebSocket uniéndote a un canal usando
join_channel - Usa Cursor para comunicarte con Figma mediante las herramientas MCP
Herramientas MCP
El servidor MCP proporciona las siguientes herramientas para interactuar con Figma:
Documento y selección
get_document_info- Obtén información sobre el documento actual de Figmaget_selection- Obtén información sobre la selección actualread_my_design- Obtén información detallada del nodo sobre la selección actual sin parámetrosget_node_info- Obtén información detallada sobre un nodo específicoget_nodes_info- Obtén información detallada sobre múltiples nodos proporcionando un array de IDs de nodos
Anotaciones
get_annotations- Obtén todas las anotaciones en el documento actual o en un nodo específicoset_annotation- Crea o actualiza una anotación con soporte de markdownset_multiple_annotations- Crea/actualiza múltiples anotaciones de forma eficiente en lotescan_nodes_by_types- Escanea nodos con tipos específicos (útil para encontrar objetivos de anotación)
Prototipado y conexiones
get_reactions- Obtén todas las reacciones de prototipo de los nodos con animación de resaltado visualset_default_connector- Establece un conector FigJam copiado como estilo de conector predeterminado para crear conexiones (debe configurarse antes de crear conexiones)create_connections- Crea líneas de conector FigJam entre nodos, basadas en flujos de prototipo o mapeo personalizado
Creación de elementos
create_rectangle- Crea un nuevo rectángulo con posición, tamaño y nombre opcionalcreate_frame- Crea un nuevo marco con posición, tamaño y nombre opcionalcreate_text- Crea un nuevo nodo de texto con propiedades de fuente personalizables
Modificación de contenido de texto
scan_text_nodes- Escanea nodos de texto con fragmentación inteligente para diseños grandesset_text_content- Establece el contenido de texto de un solo nodo de textoset_multiple_text_contents- Actualiza múltiples nodos de texto de forma eficiente en lote
Auto-layout y espaciado
set_layout_mode- Establece el modo de layout y el comportamiento de ajuste de un marco (NONE, HORIZONTAL, VERTICAL)set_padding- Establece valores de relleno para un marco de auto-layout (superior, derecho, inferior, izquierdo)set_axis_align- Establece la alineación del eje principal y del eje transversal para marcos de auto-layoutset_layout_sizing- Establece los modos de tamaño horizontal y vertical para marcos de auto-layout (FIXED, HUG, FILL)set_item_spacing- Establece la distancia entre elementos secundarios en un marco de auto-layout
Estilos
set_fill_color- Establece el color de relleno de un nodo (RGBA)set_stroke_color- Establece el color y el grosor del trazo de un nodoset_corner_radius- Establece el radio de las esquinas de un nodo con control opcional por esquina
Layout y organización
move_node- Mueve un nodo a una nueva posiciónresize_node- Redimensiona un nodo con nuevas dimensionesdelete_node- Elimina un nododelete_multiple_nodes- Elimina múltiples nodos a la vez de forma eficienteclone_node- Crea una copia de un nodo existente con desplazamiento de posición opcional
Componentes y estilos
get_styles- Obtén información sobre estilos localesget_local_components- Obtén información sobre componentes localescreate_component_instance- Crea una instancia de un componenteget_instance_overrides- Extrae propiedades de anulación de una instancia de componente seleccionadaset_instance_overrides- Aplica anulaciones extraídas a instancias de destino
Exportación y avanzado
export_node_as_image- Exporta un nodo como imagen (PNG, JPG, SVG o PDF): soporte limitado en imagen; actualmente devuelve base64 como texto
Gestión de conexiones
join_channel- Únete a un canal específico para comunicarte con Figma
Prompts de MCP
El servidor MCP incluye varios prompts de ayuda para guiarte en tareas de diseño complejas:
design_strategy- Mejores prácticas para trabajar con diseños de Figmaread_design_strategy- Mejores prácticas para leer diseños de Figmatext_replacement_strategy- Enfoque sistemático para reemplazar texto en diseños de Figmaannotation_conversion_strategy- Estrategia para convertir anotaciones manuales en anotaciones nativas de Figmaswap_overrides_instances- Estrategia para transferir anulaciones entre instancias de componentes en Figmareaction_to_connector_strategy- Estrategia para convertir reacciones de prototipo de Figma en líneas de conector usando la salida de 'get_reactions', y guiar el uso de 'create_connections' en secuencia
Desarrollo
Compilación del plugin de Figma
- Navega al directorio del plugin de Figma:
cd src/cursor_mcp_plugin - Edita code.js y ui.html
Mejores prácticas
Cuando trabajes con el Figma MCP:
- Únete siempre a un canal antes de enviar comandos
- Obtén una vista general del documento usando
get_document_infoprimero - Verifica la selección actual con
get_selectionantes de las modificaciones - Usa las herramientas de creación adecuadas según las necesidades:
create_framepara contenedorescreate_rectanglepara formas básicascreate_textpara elementos de texto
- Verifica los cambios usando
get_node_info - Usa instancias de componentes cuando sea posible para mantener la consistencia
- Maneja los errores adecuadamente, ya que todos los comandos pueden lanzar excepciones
- Para diseños grandes:
- Usa parámetros de fragmentación en
scan_text_nodes- Monitorea el progreso mediante actualizaciones de WebSocket
- Implementa un manejo de errores adecuado
- Usa parámetros de fragmentación en
- Para operaciones de texto:
- Usa operaciones en lote cuando sea posible
- Considera las relaciones estructurales
- Verifica los cambios con exportaciones específicas
- Usa operaciones en lote cuando sea posible
- Para convertir anotaciones heredadas:
- Escanea nodos de texto para identificar marcadores numerados y descripciones
- Usa
scan_nodes_by_typespara encontrar elementos de interfaz a los que se refieren las anotaciones - Relaciona los marcadores con sus elementos de destino usando ruta, nombre o proximidad
- Categoriza las anotaciones adecuadamente con
get_annotations - Crea anotaciones nativas con
set_multiple_annotationsen lotes - Verifica que todas las anotaciones estén correctamente vinculadas a sus objetivos
- Elimina los nodos de anotación heredados después de una conversión exitosa
- Usa
- Escanea nodos de texto para identificar marcadores numerados y descripciones
- Visualiza los fideos de prototipo como conectores de FigJam:
- Usa
get_reactionspara extraer flujos de prototipo, - establece un conector predeterminado con
set_default_connector, - y genera líneas de conector con
create_connectionspara un mapeo visual claro del flujo.
Licencia
MIT