custom-figma-mcp
Un servidor MCP (Model Context Protocol) local y ligero que ofrece a los agentes de codificación de IA (como OpenCode) acceso estructurado y de solo lectura a archivos de Figma — jerarquías de archivos, propiedades de nodos e imágenes renderizadas — sin necesidad de la integración MCP alojada/remota de Figma.
Por qué existe esto
El servidor MCP remoto oficial de Figma está limitado por un ID de cliente en lista blanca, lo que no resulta práctico para desarrolladores individuales que configuran sus propias herramientas de agente. Este proyecto lo evita hablando directamente con la API REST pública de Figma mediante un token de acceso personal, expuesto al agente a través de una interfaz de herramientas MCP estándar sobre stdio.
Related MCP server: figma-mcp
Arquitectura
OpenCode (MCP client)
│ stdio (JSON-RPC)
▼
custom-figma-mcp (this server)
│ HTTPS + X-Figma-Token
▼
Figma REST API (api.figma.com/v1)El servidor es un único proceso de Node.js que:
Se inicia y se registra a través de
stdiousando@modelcontextprotocol/sdk.Anuncia un conjunto fijo de herramientas al cliente MCP (OpenCode) mediante
ListToolsRequestSchema.Ejecuta las llamadas a herramientas mediante
CallToolRequestSchema, actuando como proxy hacia la API REST de Figma con tu token de acceso personal adjunto como cabecera.Devuelve JSON estructurado (o URLs de imagen) al agente que realiza la llamada.
Debido a que solo utiliza solicitudes GET con un token con alcance de solo lectura, no puede modificar, comentar ni eliminar nada en Figma: es estrictamente de solo lectura por diseño.
Herramientas expuestas
get_figma_file_structure
Devuelve la jerarquía de páginas/marcos de un archivo, con límite de profundidad para evitar volcar todo el árbol de nodos (que puede tener decenas de miles de nodos en archivos grandes).
Entrada:
{ "fileKey": "string", "depth": 2 }Corresponde a: GET /v1/files/:fileKey?depth=:depth
get_figma_node_details
Obtiene todas las propiedades de IDs de nodo específicos — configuración de auto-layout, valores de padding/espaciado, rellenos, trazos, tipografía, restricciones, propiedades de componentes, etc. Esta es la herramienta principal para una generación de código precisa.
Entrada:
{ "fileKey": "string", "nodeIds": ["1:2", "104:15"] }Corresponde a: GET /v1/files/:fileKey/nodes?ids=1:2,104:15
get_figma_node_image
Renderiza un nodo específico como PNG y devuelve una URL firmada temporal, útil para contrastar visualmente el código generado con el diseño.
Entrada:
{ "fileKey": "string", "nodeId": "104:15", "scale": 2 }Corresponde a: GET /v1/images/:fileKey?ids=104:15&scale=2
Por qué tres herramientas separadas (en lugar de una)
Los archivos de Figma pueden ser enormes: una sola llamada GET /files/:key sin límite de profundidad puede devolver megabytes de JSON profundamente anidado, lo que agota al instante la ventana de contexto de un LLM. Dividir la interfaz en tres herramientas específicas permite al agente:
Obtener primero un esquema ligero (
get_figma_file_structure) para identificar los marcos/nodos relevantes.Profundizar solo en los nodos específicos que necesita (
get_figma_node_details).Renderizar opcionalmente una imagen solo cuando se necesite confirmación visual (
get_figma_node_image).
Esto refleja cómo un desarrollador humano inspeccionaría un diseño — primero echar un vistazo y luego acercarse — en lugar de ingerir el archivo completo de una vez.
Autenticación
La autenticación utiliza un token de acceso personal de Figma (PAT), con alcance file_content:read. El token se carga desde un archivo .env local (nunca se escribe directamente en el código) y se adjunta a cada solicitud saliente como cabecera X-Figma-Token. El token nunca sale de la máquina local, salvo en solicitudes directas a api.figma.com.
Manejo de errores
Todos los manejadores de herramientas están envueltos en try/catch. En caso de error (clave de archivo no válida, sin acceso, límite de peticiones, etc.), el servidor devuelve una respuesta de error compatible con MCP:
{
"content": [{ "type": "text", "text": "Figma API Error: <details>" }],
"isError": true
}Esto permite que el agente que llama vea el motivo real del fallo en lugar de fallar en silencio.
Estructura del proyecto
custom-figma-mcp/
├── index.js # server entrypoint — tool definitions + handlers
├── package.json # dependencies, "type": "module" for ESM imports
├── .env # local only — holds FIGMA_PAT, never committed
└── .gitignoreDesarrollo local
Ejecuta el servidor directamente para depurarlo (se comunica a través de stdio, por lo que no verás los registros típicos de un servidor HTTP):
node index.jsEn la práctica, no lo ejecutas manualmente: OpenCode lo lanza como subproceso basándose en el command definido en opencode.json.
Cómo ampliar este servidor
Para añadir una nueva herramienta:
Añade su esquema al array
toolsdevuelto porListToolsRequestSchema.Añade una rama
if (name === "...")correspondiente dentro del manejador deCallToolRequestSchema.Asígnalo al endpoint REST de Figma correspondiente dentro de
figmaApi(una instancia deaxiospreconfigurada con la URL base y la cabecera de autenticación).
Mantén las nuevas herramientas de solo lectura y con un alcance limitado — evita volcar respuestas completas y sin filtrar de la API siempre que sea posible, para mantener bajo el consumo de contexto del agente.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceLocal-first MCP server that connects AI coding agents to the currently open Figma file through a local plugin bridge, requiring no Figma API token.8MIT
- AlicenseNot gradedqualityCmaintenanceRead-only Figma MCP server that enables design-to-code workflows by talking to the Figma REST API with a personal access token, for use with Claude Code and GitHub Copilot.2,160MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI IDEs to query Figma design tokens, component specs, and audit issues via MCP tools, without cloud subscriptions.MIT
- AlicenseNot gradedqualityBmaintenanceLocal MCP server exposing Figma REST API tools to AI agents, enabling file reads, comments, variables, and other resource operations. Works with personal access tokens and integrates with Claude, Cursor, Codex, and more.MIT
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ghoraavkc-bv/custom-figma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server