Figma MCP Server with Chunking
This Figma MCP Server with Chunking provides efficient, memory-aware access to Figma files and metadata, offering:
Retrieve Figma file data with chunking, pagination, and resume capabilities
List files within a project or team
Access version history of Figma files
Retrieve comments on Figma files
Extract components and styles from Figma files
Fetch specific nodes by ID
Configure memory usage limits and chunk sizes
Filter nodes by type and control traversal depth
Exclude unnecessary properties from responses
Monitor memory usage and progress during operations
Debug logging for troubleshooting
Provides tools for interacting with the Figma API, including file data retrieval, file listing, version history, comment management, component and style retrieval, with memory-efficient chunking and pagination capabilities for handling large Figma files.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Figma MCP Server with Chunking get the components from file ABC123 with 50 per chunk"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Figma MCP Server with Chunking
A Model Context Protocol (MCP) server for interacting with the Figma API, featuring memory-efficient chunking and pagination capabilities for handling large Figma files.
Overview
This MCP server provides a robust interface to the Figma API with built-in memory management features. It's designed to handle large Figma files efficiently by breaking down operations into manageable chunks and implementing pagination where necessary.
Key Features
Memory-aware processing with configurable limits
Chunked data retrieval for large files
Pagination support for all listing operations
Node type filtering
Progress tracking
Configurable chunk sizes
Resume capability for interrupted operations
Debug logging
Config file support
Related MCP server: Figma MCP Server
Installation
Installing via Smithery
To install Figma MCP Server with Chunking for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ArchimedesCrypto/figma-mcp-chunked --client claudeManual Installation
# Clone the repository
git clone [repository-url]
cd figma-mcp-chunked
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
Environment Variables
FIGMA_ACCESS_TOKEN: Your Figma API access token
Config File
You can provide configuration via a JSON file using the --config flag:
{
"mcpServers": {
"figma": {
"env": {
"FIGMA_ACCESS_TOKEN": "your-access-token"
}
}
}
}Usage:
node build/index.js --config=path/to/config.jsonTools
get_file_data (New)
Retrieves Figma file data with memory-efficient chunking and pagination.
{
"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
}
}Response:
{
"nodes": [...],
"memoryUsage": 256.5,
"nextCursor": "next-page-token",
"hasMore": true
}list_files
Lists files with pagination support.
{
"name": "list_files",
"arguments": {
"project_id": "optional-project-id",
"team_id": "optional-team-id"
}
}get_file_versions
Retrieves version history in chunks.
{
"name": "get_file_versions",
"arguments": {
"file_key": "your-file-key"
}
}get_file_comments
Retrieves comments with pagination.
{
"name": "get_file_comments",
"arguments": {
"file_key": "your-file-key"
}
}get_file_info
Retrieves file information with chunked node traversal.
{
"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
Retrieves components with chunking support.
{
"name": "get_components",
"arguments": {
"file_key": "your-file-key"
}
}get_styles
Retrieves styles with chunking support.
{
"name": "get_styles",
"arguments": {
"file_key": "your-file-key"
}
}get_file_nodes
Retrieves specific nodes with chunking support.
{
"name": "get_file_nodes",
"arguments": {
"file_key": "your-file-key",
"ids": ["node-id-1", "node-id-2"]
}
}Memory Management
The server implements several strategies to manage memory efficiently:
Chunking Strategy
Configurable chunk sizes via
pageSizeMemory usage monitoring
Automatic chunk size adjustment based on memory pressure
Progress tracking per chunk
Resume capability using cursors
Best Practices
Start with smaller chunk sizes (50-100 nodes) and adjust based on performance
Monitor memory usage through the response metadata
Use node type filtering when possible to reduce data load
Implement pagination for large datasets
Use the resume capability for very large files
Configuration Options
pageSize: Number of nodes per chunk (default: 100)maxMemoryMB: Maximum memory usage in MB (default: 512)nodeTypes: Filter specific node typesdepth: Control traversal depth for nested structures
Debug Logging
The server includes comprehensive debug logging:
// 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 MBError Handling
The server provides detailed error messages and suggestions:
// 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]"Troubleshooting
Common Issues
Memory Errors
Reduce chunk size
Use node type filtering
Implement pagination
Specify smaller depth values
Performance Issues
Monitor memory usage
Adjust chunk sizes
Use appropriate node type filters
Implement caching for frequently accessed data
API Limits
Implement rate limiting
Use pagination
Cache responses when possible
Debug Mode
Enable debug logging for detailed information:
# Set debug environment variable
export DEBUG=trueContributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
7 toolsget_componentsB
Get components from a Figma file
Inputs: file_key (required).
get_file_commentsC
Get comments on a Figma file
Inputs: file_key (required).
get_file_dataC
Get Figma file data with chunking and pagination
Inputs: file_key (required), cursor, depth, excludeProps, +5 more.
get_file_nodesC
Get specific nodes from a Figma file
Inputs: file_key (required), ids (required).
get_file_versionsC
Get version history of a Figma file
Inputs: file_key (required).
get_stylesC
Get styles from a Figma file
Inputs: file_key (required).
list_filesC
List files in a project or team
Inputs: project_id, team_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose targeting different aspects of Figma files: components, comments, file data, nodes, versions, styles, and file listing. There is no overlap in functionality, making tool selection straightforward for an agent.
All tools follow a consistent verb_noun pattern with 'get_' or 'list_' prefixes (e.g., get_components, list_files). The naming is uniform and predictable, enhancing readability and usability.
With 7 tools, the server is well-scoped for a Figma integration, covering essential operations like retrieving file data, components, styles, comments, and versions. Each tool serves a specific purpose without being excessive or insufficient.
The toolset provides strong read-only coverage for Figma files, including data, components, styles, comments, versions, and file listing. However, it lacks write operations (e.g., creating or updating files, components, or comments), which could limit full lifecycle management, though agents can work around this for many use cases.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
The Figma MCP server brings Figma design context directly into your AI workflow.
Model Context Protocol server for Studex tools, notifications, and profile integrations
Model Context Protocol server for todo.vu task management and time tracking.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceA Model Context Protocol server that provides access to Figma API functionality, allowing AI assistants like Claude to interact with Figma files, comments, components, and team resources.182,021 npm4-
- FlicenseBqualityDmaintenanceA Model Context Protocol server that integrates with Figma's API, allowing interaction with Figma files, comments, components, projects, and webhook management.52,780 npm-
- AlicenseBqualityDmaintenanceImplements a Model Context Protocol integration between Cursor AI and Figma, allowing Cursor to programmatically read and modify Figma designs.331,096 npmMIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI agents to programmatically create, modify, and manage Figma documents via a WebSocket bridge and Figma plugin.116MIT