Figma MCP Server with Chunking

Integrations

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

청킹을 사용한 Figma MCP 서버

Figma API와 상호 작용하기 위한 MCP(Model Context Protocol) 서버로, 대용량 Figma 파일을 처리하기 위한 메모리 효율적인 청킹 및 페이지 분할 기능을 제공합니다.

개요

이 MCP 서버는 내장된 메모리 관리 기능을 통해 Figma API에 대한 강력한 인터페이스를 제공합니다. 작업을 관리 가능한 단위로 나누고 필요한 경우 페이지 매김을 구현하여 대용량 Figma 파일을 효율적으로 처리하도록 설계되었습니다.

주요 특징

  • 구성 가능한 한계를 갖춘 메모리 인식 처리
  • 대용량 파일에 대한 청크 데이터 검색
  • 모든 목록 작업에 대한 페이지 매김 지원
  • 노드 유형 필터링
  • 진행 상황 추적
  • 구성 가능한 청크 크기
  • 중단된 작업에 대한 재개 기능
  • 디버그 로깅
  • 구성 파일 지원

설치

Smithery를 통해 설치

Smithery를 통해 Claude Desktop용 Chunking을 사용하여 Figma MCP 서버를 자동으로 설치하려면:

지엑스피1

수동 설치

# Clone the repository git clone [repository-url] cd figma-mcp-chunked # Install dependencies npm install # Build the project npm run build

구성

환경 변수

  • FIGMA_ACCESS_TOKEN : Figma API 액세스 토큰

구성 파일

--config 플래그를 사용하여 JSON 파일을 통해 구성을 제공할 수 있습니다.

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

용법:

node build/index.js --config=path/to/config.json

도구

get_file_data(신규)

메모리 효율적인 청킹 및 페이지 분할을 통해 Figma 파일 데이터를 검색합니다.

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

파일_정보_받기

청크 노드 탐색을 통해 파일 정보를 검색합니다.

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

청킹 지원이 있는 구성 요소를 검색합니다.

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

get_styles

청킹 지원으로 스타일을 검색합니다.

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

파일 노드 가져오기

청킹 지원을 통해 특정 노드를 검색합니다.

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

메모리 관리

서버는 메모리를 효율적으로 관리하기 위해 여러 가지 전략을 구현합니다.

청킹 전략

  • pageSize 통해 구성 가능한 청크 크기
  • 메모리 사용량 모니터링
  • 메모리 압력에 따른 자동 청크 크기 조정
  • 청크별 진행 상황 추적
  • 커서를 사용한 재개 기능

모범 사례

  1. 더 작은 청크 크기(50~100개 노드)로 시작하고 성능에 따라 조정합니다.
  2. 응답 메타데이터를 통해 메모리 사용량 모니터링
  3. 가능한 경우 노드 유형 필터링을 사용하여 데이터 부하를 줄이십시오.
  4. 대용량 데이터 세트에 대한 페이지 매김 구현
  5. 매우 큰 파일에 대해 이력서 기능을 사용하세요

구성 옵션

  • pageSize : 청크당 노드 수(기본값: 100)
  • maxMemoryMB : 최대 메모리 사용량(MB) (기본값: 512)
  • nodeTypes : 특정 노드 유형 필터링
  • depth : 중첩된 구조에 대한 순회 깊이 제어

디버그 로깅

서버에는 포괄적인 디버그 로깅이 포함되어 있습니다.

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

오류 처리

서버는 자세한 오류 메시지와 제안을 제공합니다.

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

문제 해결

일반적인 문제

  1. 메모리 오류
    • 청크 크기 줄이기
    • 노드 유형 필터링 사용
    • 페이지 매김 구현
    • 더 작은 깊이 값을 지정하세요
  2. 성능 문제
    • 메모리 사용량 모니터링
    • 청크 크기 조정
    • 적절한 노드 유형 필터를 사용하세요
    • 자주 액세스되는 데이터에 대한 캐싱 구현
  3. API 제한
    • 속도 제한 구현
    • 페이지 매김 사용
    • 가능한 경우 응답을 캐시합니다.

디버그 모드

자세한 정보를 보려면 디버그 로깅을 활성화하세요.

# Set debug environment variable export DEBUG=true

기여하다

기여를 환영합니다! 기여 지침을 읽고 저장소에 풀 리퀘스트를 제출해 주세요.

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

ID: jjtcywbz4w