npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

figma-mcp-chunked

v1.0.4

Published

Figma MCP server with chunking and pagination

Readme

MseeP.ai Security Assessment Badge

Figma MCP Server with Chunking

npm version smithery badge

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

Installation

Using npx

You can run the server directly without installing it by using npx:

npx -y figma-mcp-chunked --config=path/to/config.json

Installing via Smithery

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

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

Manual Installation

# Clone the repository
git clone [repository-url]
cd figma-mcp-chunked

# Install dependencies
npm install

# Build the project
npm run build

Configuration

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.json

Tools

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

Best Practices

  1. Start with smaller chunk sizes (50-100 nodes) and adjust based on performance
  2. Monitor memory usage through the response metadata
  3. Use node type filtering when possible to reduce data load
  4. Implement pagination for large datasets
  5. 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 types
  • depth: 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 MB

Error 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

  1. Memory Errors

    • Reduce chunk size
    • Use node type filtering
    • Implement pagination
    • Specify smaller depth values
  2. Performance Issues

    • Monitor memory usage
    • Adjust chunk sizes
    • Use appropriate node type filters
    • Implement caching for frequently accessed data
  3. 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=true

Contributing

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.