Figma MCP Server with Chunking
Un servidor MCP para la API de Figma, con fragmentación y paginación para manejar archivos grandes.
Documentación
Figma MCP Server with Chunking
Un servidor de Model Context Protocol (MCP) para interactuar con la API de Figma, con capacidades de fragmentación eficiente en memoria y paginación para manejar archivos de Figma de gran tamaño.
Descripción general
Este servidor MCP proporciona una interfaz robusta para la API de Figma con funciones integradas de gestión de memoria. Está diseñado para manejar archivos de Figma de gran tamaño de manera eficiente, dividiendo las operaciones en fragmentos manejables e implementando paginación cuando sea necesario.
Características principales
- Procesamiento consciente de la memoria con límites configurables
- Recuperación de datos por fragmentos para archivos grandes
- Soporte de paginación para todas las operaciones de listado
- Filtrado por tipo de nodo
- Seguimiento de progreso
- Tamaños de fragmento configurables
- Capacidad de reanudación para operaciones interrumpidas
- Registro de depuración
- Soporte de archivo de configuración
Instalación
Instalación mediante Smithery
Para instalar Figma MCP Server with Chunking para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @ArchimedesCrypto/figma-mcp-chunked --client claude
Instalación manual
# Clone the repository
git clone [repository-url]
cd figma-mcp-chunked
# Install dependencies
npm install
# Build the project
npm run build
Configuración
Variables de entorno
FIGMA_ACCESS_TOKEN: Su token de acceso a la API de Figma
Archivo de configuración
Puede proporcionar la configuración mediante un archivo JSON usando la opción --config:
{
"mcpServers": {
"figma": {
"env": {
"FIGMA_ACCESS_TOKEN": "your-access-token"
}
}
}
}
Uso:
node build/index.js --config=path/to/config.json
Herramientas
get_file_data (Nuevo)
Recupera datos de archivos de Figma con fragmentación eficiente en memoria y paginación.
{
"name": "get_file_data",
"arguments": {
"fileKey": "your-file-key",
"accessToken": "your-access-token",
"pageSize": 100, // Optional: nodes per chunk
"maxMemoryMB": 512, // Optional: memory limit
"nodeTypes": ["FRAME", "COMPONENT"], // Optional: filter by type
"cursor": "next-page-token", // Optional: resume from last position
"depth": 2 // Optional: traversal depth
}
}
Respuesta:
{
"nodes": [...],
"memoryUsage": 256.5,
"nextCursor": "next-page-token",
"hasMore": true
}
list_files
Lista archivos con soporte de paginación.
{
"name": "list_files",
"arguments": {
"project_id": "optional-project-id",
"team_id": "optional-team-id"
}
}
get_file_versions
Recupera el historial de versiones por fragmentos.
{
"name": "get_file_versions",
"arguments": {
"file_key": "your-file-key"
}
}
get_file_comments
Recupera comentarios con paginación.
{
"name": "get_file_comments",
"arguments": {
"file_key": "your-file-key"
}
}
get_file_info
Recupera información del archivo con recorrido de nodos por fragmentos.
{
"name": "get_file_info",
"arguments": {
"file_key": "your-file-key",
"depth": 2, // Optional: traversal depth
"node_id": "specific-node-id" // Optional: start from specific node
}
}
get_components
Recupera componentes con soporte de fragmentación.
{
"name": "get_components",
"arguments": {
"file_key": "your-file-key"
}
}
get_styles
Recupera estilos con soporte de fragmentación.
{
"name": "get_styles",
"arguments": {
"file_key": "your-file-key"
}
}
get_file_nodes
Recupera nodos específicos con soporte de fragmentación.
{
"name": "get_file_nodes",
"arguments": {
"file_key": "your-file-key",
"ids": ["node-id-1", "node-id-2"]
}
}
Gestión de memoria
El servidor implementa varias estrategias para gestionar la memoria de manera eficiente:
Estrategia de fragmentación
- Tamaños de fragmento configurables mediante
pageSize - Monitoreo del uso de memoria
- Ajuste automático del tamaño de fragmento según la presión de memoria
- Seguimiento de progreso por fragmento
- Capacidad de reanudación mediante cursores
Buenas prácticas
- Comience con tamaños de fragmento más pequeños (50-100 nodos) y ajuste según el rendimiento
- Monitoree el uso de memoria a través de los metadatos de la respuesta
- Use el filtrado por tipo de nodo cuando sea posible para reducir la carga de datos
- Implemente paginación para conjuntos de datos grandes
- Use la capacidad de reanudación para archivos muy grandes
Opciones de configuración
pageSize: Número de nodos por fragmento (predeterminado: 100)maxMemoryMB: Uso máximo de memoria en MB (predeterminado: 512)nodeTypes: Filtrar tipos de nodo específicosdepth: Controlar la profundidad de recorrido para estructuras anidadas
Registro de depuración
El servidor incluye un registro de depuración completo:
// Debug log examples
[MCP Debug] Loading config from config.json
[MCP Debug] Access token found xxxxxxxx...
[MCP Debug] Request { tool: 'get_file_data', arguments: {...} }
[MCP Debug] Response size 2.5 MB
Manejo de errores
El servidor proporciona mensajes de error detallados y sugerencias:
// Memory limit error
"Response size too large. Try using a smaller depth value or specifying a node_id.""
// Invalid parameters
"Missing required parameters: fileKey and accessToken"
// API errors
"Figma API error: [detailed message]"
Solución de problemas
Problemas comunes
-
Errores de memoria
- Reduzca el tamaño del fragmento
- Use el filtrado por tipo de nodo
- Implemente paginación
- Especifique valores de profundidad más pequeños
-
Problemas de rendimiento
- Monitoree el uso de memoria
- Ajuste los tamaños de fragmento
- Use filtros de tipo de nodo apropiados
- Implemente almacenamiento en caché para datos de acceso frecuente
-
Límites de la API
- Implemente limitación de velocidad
- Use paginación
- Almacene respuestas en caché cuando sea posible
Modo de depuración
Active el registro de depuración para obtener información detallada:
# Set debug environment variable
export DEBUG=true
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, lea nuestras pautas de contribución y envíe solicitudes de extracción (pull requests) a nuestro repositorio.
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para obtener más detalles.
