Figma Chunked

by archimedescrypto

1 stars
Not rated
GitHub Website

About

Provides a memory-efficient interface to the Figma API that handles large files by breaking operations into manageable chunks with pagination support, filtering capabilities, and resume functionality for retrieving design data without memory constraints.

Details

Author
archimedescrypto
Repository
ArchimedesCrypto/figma-mcp-chunked
GitHub stars
1
License
MIT License
Categories
Developer Tools, Other, Design, API, AI, File Management, Infrastructure
Tags
#figma

- 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

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Figma Chunked
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 build/index.js
    • Argument 2 --config=path/to/config.json
    Environment
    • FIGMA_ACCESS_TOKEN your-access-token

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To install Figma MCP Server with Chunking for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @ArchimedesCrypto/figma-mcp-chunked --client claude

npm install

- FIGMA_ACCESS_TOKEN: Your Figma API access token

You can provide configuration via a JSON file using the --config flag:

json
{
"mcpServers": {
"figma": {
"env": {
"FIGMA_ACCESS_TOKEN": "your-access-token"
}
}
}
}
```

get_file_data

Retrieves Figma file data with memory-efficient chunking and pagination. Parameters: fileKey (string), accessToken (string), pageSize (optional number), maxMemoryMB (optional number), nodeTypes (optional array of strings), cursor (optional string), depth (optional number)

list_files

Lists files with pagination support. Parameters: project_id (optional string), team_id (optional string)

get_file_versions

Retrieves version history in chunks. Parameters: file_key (string)

get_file_comments

Retrieves comments with pagination. Parameters: file_key (string)

get_file_info

Retrieves file information with chunked node traversal. Parameters: file_key (string), depth (optional number), node_id (optional string)

get_components

Retrieves components with chunking support. Parameters: file_key (string)

get_styles

Retrieves styles with chunking support. Parameters: file_key (string)

get_file_nodes

Retrieves specific nodes with chunking support. Parameters: file_key (string), ids (array of strings)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "figma chunked": {
            "env": {
                "FIGMA_ACCESS_TOKEN": "your-access-token"
            },
            "args": [
                "build/index.js",
                "--config=path/to/config.json"
            ],
            "command": "node"
        }
    }
}

Linux

{
    "env": {
        "FIGMA_ACCESS_TOKEN": "your-access-token"
    },
    "args": [
        "build/index.js",
        "--config=path/to/config.json"
    ],
    "command": "node"
}

Macos

{
    "env": {
        "FIGMA_ACCESS_TOKEN": "your-access-token"
    },
    "args": [
        "build/index.js",
        "--config=path/to/config.json"
    ],
    "command": "node"
}

Windows

{
    "env": {
        "FIGMA_ACCESS_TOKEN": "your-access-token"
    },
    "args": [
        "/c",
        "node build/index.js --config=path/to/config.json"
    ],
    "command": "cmd"
}

An MCP server for the Figma API, with chunking and pagination to handle large files.

A Model Context Protocol (MCP) server for interacting with the Figma API, featuring memory-efficient chunking and pagination capabilities for handling large Figma files.

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.

- 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

To install Figma MCP Server with Chunking for Claude Desktop automatically viaSmithery:

npx -y @smithery/cli install @ArchimedesCrypto/figma-mcp-chunked --client claude
# Clone the repository git clone [repository-url] cd figma-mcp-chunked # Install dependencies npm install # Build the project npm run build

- FIGMA_ACCESS_TOKEN: Your Figma API access token

You can provide configuration via a JSON file using the--configflag:

{ "mcpServers": { "figma": { "env": { "FIGMA_ACCESS_TOKEN": "your-access-token" } } } }
node build/index.js --config=path/to/config.json

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 } }
{ "nodes": [...], "memoryUsage": 256.5, "nextCursor": "next-page-token", "hasMore": true }
{ "name": "list_files", "arguments": { "project_id": "optional-project-id", "team_id": "optional-team-id" } }
{ "name": "get_file_versions", "arguments": { "file_key": "your-file-key" } }
{ "name": "get_file_comments", "arguments": { "file_key": "your-file-key" } }

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 } }

Retrieves components with chunking support.

{ "name": "get_components", "arguments": { "file_key": "your-file-key" } }
{ "name": "get_styles", "arguments": { "file_key": "your-file-key" } }

Retrieves specific nodes with chunking support.

{ "name": "get_file_nodes", "arguments": { "file_key": "your-file-key", "ids": ["node-id-1", "node-id-2"] } }

The server implements several strategies to manage memory efficiently:

- Configurable chunk sizes viapageSize
- Memory usage monitoring
- Automatic chunk size adjustment based on memory pressure
- Progress tracking per chunk
- Resume capability using cursors
- 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

- pageSize: Number of nodes per chunk (default: 100)
- maxMemoryMB: Maximum memory usage in MB (default: 512)
- nodeTypes: Filter specific node types
- depth: Control traversal depth for nested structures

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 MB

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]"

- Reduce chunk size
- Use node type filtering
- Implement pagination
- Specify smaller depth values

- Monitor memory usage
- Adjust chunk sizes
- Use appropriate node type filters
- Implement caching for frequently accessed data

- Implement rate limiting
- Use pagination
- Cache responses when possible

Enable debug logging for detailed information:

# Set debug environment variable export DEBUG=true

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

This project is licensed under the MIT License - see the LICENSE file for details.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Interact with the Figma API to access and manage design files and resources.

Connects to the Figma API, allowing AI tools to access and interact with your Figma designs.

Integrates Cursor AI with Figma to read and programmatically modify designs.

Integrate Figma design data with AI coding tools using a local MCP server.

Access and interact with Figma files and prototypes directly from AI agents.

Enables AI assistants to interact with and automate Figma designs programmatically.

Figma MCP server for accessing Figma files, projects, comments, components, and design metadata from Claude, Cursor, and other AI agents.

Enables AI assistants to interact with Figma via WebSocket for reading data and design analysis.

Provides read-only access to Figma files and projects using the Figma API.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.