figmanage
figmanage
Permite que los agentes gestionen tu espacio de trabajo de Figma. Asientos, equipos, permisos, facturación, salida de usuarios, limpieza: todo se maneja en conversación en lugar de hacer clic en paneles de administración.
Cada MCP de Figma es de diseño a código. figmanage es la capa de gestión: 102 herramientas que permiten a los agentes operar sobre el propio espacio de trabajo. Funciona con Claude Code, Cursor, OpenClaw o como CLI independiente.
ejemplos
gestión del espacio de trabajo (administradores)
"which paid seats haven't been active in 30 days? how much would we save?"
"offboard sarah@company.com -- show me everything she owns, then transfer it
to jake and remove her from the org"
"set up a new hire: invite alex@company.com to Design and Engineering as an editor"
"create a user group called Platform Design and add the three designers"
"run a quarterly design ops report for the org"trabajo de diseño cotidiano (todos)
"clean up the Mobile App project -- find stale files and archive dead branches"
"what are the unresolved comments across the Platform project?"
"export all the icons from the Design System file as SVGs"
"move the Q4 files into the Archive project"
"share the Homepage mockup with alex@company.com and set link access to view-only"
"summarize the Brand Guidelines file -- pages, components, styles"Related MCP server: figma-pilot
instalación
# Claude Code
claude mcp add figmanage -- npx -y figmanage
# Cursor / OpenClaw / other MCP clients
{
"mcpServers": {
"figmanage": {
"command": "npx",
"args": ["-y", "figmanage"]
}
}
}En la primera ejecución, figmanage te guía a través de la configuración en la conversación: extrae la cookie de tu sesión de Chrome, te pide que crees un PAT y almacena las credenciales localmente. Sin variables de entorno, sin editar JSON.
También funciona como CLI:
npm install -g figmanage
figmanage logincómo funciona
La API REST pública de Figma cubre archivos de diseño, pero nada del lado de la gestión: sin asientos, sin equipos, sin permisos, sin facturación. figmanage utiliza ambas APIs:
API | Autenticación | Qué cubre |
Interna | Cookie de sesión | Asientos, equipos, permisos, facturación, grupos de usuarios, administración de la organización, búsqueda |
Pública | Token de acceso personal | Archivos, comentarios, exportación, componentes, versiones, webhooks, variables |
Ambas juntas desbloquean las 102 herramientas. Solo con cookie o solo con PAT funciona, pero limita las herramientas disponibles.
Detección automática de administradores. Al iniciar, figmanage comprueba si eres administrador de la organización. Los administradores ven las 102 herramientas. Los no administradores ven 68: todo excepto gestión de la organización, cambios de asiento, facturación, grupos de usuarios y salida de usuarios. No se necesita configuración.
Preajustes de conjuntos de herramientas. Usa FIGMA_TOOLSETS para exponer solo grupos de herramientas específicos:
Preajuste | Qué incluye |
| navegación, lectura, comentarios, exportación |
| navegación, organización, permisos, analíticas, equipos, bibliotecas |
| navegación, lectura, comentarios, exportación, componentes, versiones |
| todo (por defecto) |
CLI
Los comandos usan un patrón sustantivo-verbo: figmanage <grupo> <acción>.
figmanage org seat-optimization # find inactive paid seats
figmanage org offboard sarah@co.com # audit what a user owns
figmanage org offboard sarah@co.com --execute \
--transfer-to jake@co.com # soft offboard
figmanage org offboard sarah@co.com --execute \
--transfer-to jake@co.com --remove-from-org # hard offboard (permanent)
figmanage org onboard alex@co.com --teams 123,456 \
--role editor --seat full --confirm # set up a new hire
figmanage org quarterly-report # org-wide design ops snapshot
figmanage org members --search danny # find org members
figmanage permissions audit --scope team --id 789 # audit a team's permissions
figmanage branches cleanup 573408414 # find stale branchesTodos los comandos emiten JSON cuando se canalizan o cuando se pasa --json. Ejecuta figmanage <grupo> --help para subcomandos.
configuración
Inicia sesión en figma.com en Chrome y luego:
figmanage login # extract cookie, create PAT, store credentials
figmanage whoami # verify auth
figmanage logout # clear credentialsLas credenciales se almacenan en ~/.config/figmanage/ con permisos 0o600.
Las variables de entorno (FIGMA_PAT, FIGMA_AUTH_COOKIE, etc.) anulan el archivo de configuración. Transporte HTTP disponible mediante --mcp --http <puerto>.
referencia de herramientas
Las tablas siguientes muestran los nombres de las herramientas MCP (snake_case). Los equivalentes CLI usan kebab-case: list_recent_files se convierte en figmanage navigate list-recent-files.
navigate (10)
Herramienta | Autenticación | Descripción |
| cualquiera | Validar autenticación de PAT y cookie |
| cookie | Listar espacios de trabajo de Figma disponibles |
| cookie | Cambiar el espacio de trabajo activo para esta sesión |
| cookie | Listar equipos en tu organización |
| cualquiera | Listar proyectos en un equipo |
| cualquiera | Listar archivos en un proyecto |
| cookie | Archivos vistos/editados recientemente |
| cookie | Buscar archivos en todo el espacio de trabajo |
| cualquiera | Metadatos del archivo: nombre, proyecto, equipo, acceso al enlace |
| cookie | Archivos favoritos (roto -- error de BigInt de Figma) |
files (10)
Herramienta | Autenticación | Descripción |
| cookie | Crear archivo de diseño, pizarra, diapositivas o sitios |
| cookie | Renombrar un archivo |
| cookie | Mover archivos entre proyectos (lote) |
| cookie | Copiar un archivo |
| cookie | Mover archivos a la papelera (lote) |
| cookie | Restaurar archivos de la papelera (lote) |
| cookie | Añadir/quitar de favoritos |
| cookie | Establecer nivel de uso compartido del enlace |
| pat | Páginas, componentes, estilos, recuentos de comentarios |
| cualquiera | Encontrar archivos antiguos, opcionalmente enviar a la papelera (por defecto, simulación) |
projects (8)
Herramienta | Autenticación | Descripción |
| cookie | Crear un proyecto en un equipo |
| cookie | Renombrar un proyecto |
| cookie | Mover un proyecto a otro equipo |
| cookie | Mover un proyecto a la papelera |
| cookie | Restaurar un proyecto de la papelera |
| cookie | Establecer o actualizar la descripción del proyecto |
| cookie | Mover archivos en lote a un proyecto |
| cookie | Crear múltiples proyectos a partir de un plan |
permissions (8)
Herramienta | Autenticación | Descripción |
| cookie | Listar quién tiene acceso con roles |
| cookie | Cambiar el nivel de acceso de un usuario |
| cookie | Invitar a alguien por correo electrónico |
| cookie | Eliminar el acceso de alguien |
| cookie | Listar solicitudes de acceso pendientes |
| cookie | Aceptar una solicitud de acceso |
| cookie | Rechazar una solicitud de acceso |
| cookie | Auditoría de acceso de equipo/proyecto con indicadores de uso excesivo |
org (24, solo administradores)
Herramienta | Autenticación | Descripción |
| cookie | Administradores de la organización con niveles de permiso |
| cookie | Todos los equipos con recuentos de miembros y proyectos |
| cookie | Desglose de asientos por tipo y actividad |
| cookie | Miembros del equipo con roles y actividad |
| cookie | Todos los miembros de la organización con asientos y actividad |
| cookie | Precio por asiento |
| cookie | Cambiar el tipo de asiento de un usuario |
| cookie | Historial de facturas y estado de facturación |
| cookie | Facturas abiertas y próximas |
| cookie | Facturas pagadas / historial de pagos |
| cookie | Configuración de dominio y SSO/SAML |
| cookie | Uso de créditos de IA (resuelve el plan desde el equipo) |
| cookie | Activar exportación CSV de todos los miembros |
| cookie | Registro de auditoría de la organización con filtrado por correo y paginación |
| cookie | Crear un grupo de usuarios |
| cookie | Eliminar grupos de usuarios |
| cookie | Añadir miembros a un grupo de usuarios por correo electrónico |
| cookie | Eliminar miembros de un grupo de usuarios |
| cookie | Eliminar permanentemente a un miembro de la organización |
| cookie | Resumen de la organización: equipos, asientos, facturación |
| cookie | Detección de asientos inactivos con análisis de costes |
| cookie | Auditar + ejecutar la salida de un usuario (suave o dura) |
| cookie | Invitación en lote a equipos, compartir archivos, establecer asiento |
| cookie | Informe trimestral de operaciones de diseño: utilización de asientos, facturación, equipos, adopción de bibliotecas |
teams (5, solo administradores)
Herramienta | Autenticación | Descripción |
| cookie | Crear un equipo |
| cookie | Renombrar un equipo |
| cookie | Eliminar un equipo |
| cookie | Añadir un miembro por correo electrónico |
| cookie | Eliminar un miembro |
analytics (2, solo administradores)
Herramienta | Autenticación | Descripción |
| cookie | Métricas de adopción de bibliotecas a nivel de equipo |
| cookie | Uso de componentes por archivo |
comments (9)
Herramienta | Autenticación | Descripción |
| pat | Comentarios con estructura de hilo |
| pat | Publicar un comentario |
| pat | Eliminar un comentario |
| cookie | Resolver o no resolver un hilo de comentarios |
| cookie | Editar el texto de un comentario existente |
| pat | Reacciones emoji en un comentario |
| pat | Añadir una reacción emoji |
| pat | Eliminar una reacción emoji |
| pat | Comentarios sin resolver en un proyecto |
versions (2)
Herramienta | Autenticación | Descripción |
| pat | Historial de versiones |
| cookie | Crear un punto de control de versión con nombre |
branches (4)
Herramienta | Auth | Descripción |
| either | Lista las ramas de un archivo |
| cookie | Crea una rama |
| cookie | Archiva una rama |
| either | Detección de ramas obsoletas con archivado opcional |
lectura (2)
Herramienta | Auth | Descripción |
| pat | Lee el archivo como un árbol de nodos con control de profundidad |
| pat | Lee nodos específicos por ID |
exportación (2)
Herramienta | Auth | Descripción |
| pat | Exporta como PNG, SVG, PDF o JPG |
| pat | URLs de todas las imágenes usadas como rellenos |
componentes (7)
Herramienta | Auth | Descripción |
| pat | Componentes publicados desde un archivo |
| pat | Estilos en un archivo |
| pat | Componentes publicados en un equipo |
| pat | Estilos publicados en un equipo |
| pat | Recursos de desarrollo (enlaces, anotaciones) en un archivo |
| pat | Adjunta un recurso de desarrollo a un nodo |
| pat | Elimina un recurso de desarrollo |
webhooks (5)
Herramienta | Auth | Descripción |
| pat | Lista los webhooks de un equipo |
| pat | Crea una suscripción a webhook |
| pat | Actualiza un webhook |
| pat | Elimina un webhook |
| pat | Historial de entrega (últimos 7 días) |
variables (3, Enterprise)
Herramienta | Auth | Descripción |
| pat | Variables y colecciones locales |
| pat | Variables publicadas desde una biblioteca |
| pat | Crea, actualiza o elimina variables en bloque |
bibliotecas (1)
Herramienta | Auth | Descripción |
| cookie | Bibliotecas de sistemas de diseño con información de uso compartido |
seguridad
Todos los parámetros de ID se validan contra /^[\w.:-]+$/. Los reintentos por límite de tasa se restringen a métodos HTTP seguros: las mutaciones nunca se reintentan. Las respuestas de facturación eliminan la PII. Las operaciones destructivas usan el modo de ejecución en seco por defecto. La eliminación de la organización requiere una doble confirmación explícita. El archivo de configuración se almacena con permisos 0o600.
limitaciones conocidas
list_favorites: error de desbordamiento de BigInt de Figma en su servidor.
favorite_filefunciona correctamente.Fusión de ramas / restauración de versiones: requieren el protocolo multijugador de Figma, no hay endpoint REST.
Caducidad de la cookie: ~30 días. Ejecuta
figmanage login --refreshpara renovarla.Cookies de Windows: extracción DPAPI de mejor esfuerzo. Recurre a solo PAT.
Variables: ámbitos restringidos a Enterprise.
Grupos de usuarios: solo escritura (crear, eliminar, añadir/quitar miembros). No hay endpoint de listado: Figma renderiza la página en el servidor.
desarrollo
git clone https://github.com/dannykeane/figmanage.git
cd figmanage
npm install
npm run build
npm testArquitectura de tres capas: las operaciones contienen toda la lógica de negocio, las herramientas y la CLI son envoltorios finos.
src/
index.ts Entry: --setup, --mcp, or CLI mode
mcp.ts MCP server setup, admin detection, toolset presets
setup.ts Cross-platform Chrome cookie extraction
auth/ AuthConfig from env vars and config file
clients/ Axios clients for internal (cookie) and public (PAT) APIs
operations/ Shared business logic (19 modules)
tools/ MCP tool wrappers (thin, call operations)
cli/ CLI Commander wrappers (thin, call operations)
types/figma.ts Shared types including Toolset unionlicencia
MIT
Available Tools
4 toolssetup_extract_cookiesA
Read Figma sessions from Chrome for setup or recovery. Requires permission to read browser credentials; reuse permission already granted in this conversation. The user must be logged into Figma. macOS may show a Keychain prompt. Never returns cookies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| result | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing important behavioral traits: it requires permission to read browser credentials, may trigger a macOS Keychain prompt, and explicitly states it 'Never returns cookies' — a critical clarification given the tool name. This adds value beyond the sparse annotations and sets clear expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each with a distinct purpose: state the action, list prerequisites, and disclose behavioral outcomes (keychain prompt, no cookies). It is front-loaded with the core purpose and avoids filler. Every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description covers all necessary context: prerequisites, permission requirements, potential system prompts, and what the tool does NOT return. The existence of an output schema handles return value details. The description is complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description adds no parameter-specific details because none are needed. It does provide context about the operation's inputs (Chrome, Figma session) which is relevant but not parameter semantics. Since the schema is empty, no further clarification is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Read Figma sessions from Chrome for setup or recovery.' It identifies the specific verb (read) and resource (Figma sessions from Chrome), and the context (setup or recovery) distinguishes it from siblings like setup_status (checking status) and setup_save_pat (saving a token). No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context ('for setup or recovery') and specifies prerequisites (permission to read browser credentials, user logged into Figma). It does not explicitly mention when not to use it or compare with alternatives, but given the sibling tools, the use case is clear. Slightly more explicit exclusion would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_save_patA
Validate and save a PAT already supplied by the user. Prefer local figmanage login --pat-only to keep tokens out of chat. Rejects a PAT belonging to a different saved browser account.
| Name | Required | Description | Default |
|---|---|---|---|
| pat | Yes | Figma Personal Access Token |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| result | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with the description's 'save' action. The description adds behavioral context beyond annotations: it validates the PAT, saves it, and rejects mismatched accounts. This provides useful operational details that an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core action, then provides an important security-relevant alternative and a rejection condition. Every sentence adds value, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema present, the description covers the essential purpose, usage guidance, and a behavioral constraint. It doesn't explain the output format (covered by the output schema) or prerequisites like having a saved browser account, but those are either implicit or handled elsewhere. Overall, it is complete enough for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter 'pat' with a clear description ('Figma Personal Access Token'). The description adds minimal extra meaning—only that it is 'already supplied by the user,' which is more about usage context than parameter semantics. Since schema coverage is high, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Validate and save a PAT already supplied by the user.' It specifies the resource (PAT) and includes a rejection condition ('Rejects a PAT belonging to a different saved browser account'), making the purpose unambiguous and distinct from sibling tools like setup_status or setup_select_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises an alternative method: 'Prefer local figmanage login --pat-only to keep tokens out of chat.' This gives a clear when-not-to-use instruction. However, it does not explicitly contrast with the sibling tools (setup_status, setup_extract_cookies, setup_select_account), but those are not competing alternatives for saving a PAT, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_select_accountA
Validate and save a browser session after setup_extract_cookies. Use its recommended account without another question; ask when selection is ambiguous or changes the existing account. Preserves the PAT for the same account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_index | Yes | Account number returned by setup_extract_cookies |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| result | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description discloses specific behaviors: it validates and saves a session, preserves the PAT for the same account, and may prompt the user when selection is ambiguous or changes the existing account. This adds meaningful context about side effects and user interaction without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loading the core action first, then providing decision rules and a key note on PAT preservation. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the action, the precondition (after setup_extract_cookies), the decision rule for asking vs. proceeding, and the PAT preservation behavior. It lacks explicit error handling details, but the output schema likely covers return values, making it sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter account_index is fully described in the schema with its source (returned by setup_extract_cookies). The tool description does not add additional meaning beyond that, so it meets the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: validate and save a browser session after setup_extract_cookies. It identifies the resource (browser session) and the sequencing relative to a sibling, making its purpose unambiguous and distinct from setup_status, setup_extract_cookies, and setup_save_pat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use it: after setup_extract_cookies, and includes a decision rule for when to ask the user (ambiguous selection or account change) versus using the recommended account silently. It does not explicitly contrast with setup_save_pat, though it mentions PAT preservation, which could overlap, so it is not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_statusARead-only
Check live authentication, retry admin access detection, and get structured next actions. Use before setup, after an authentication error, or when expected tools are missing. Does not read browser credentials or change settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| result | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds meaningful behavioral context: it explicitly states the tool does not read browser credentials or change settings, and mentions a retry behavior for admin access detection. This goes beyond what annotations alone convey, helping the agent understand side-effect boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the core function, the second gives usage timing, and the third clarifies limitations. The most important information is front-loaded, and there is no redundant or filler language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with a readOnly hint, an output schema, and three clear usage triggers, the description is complete. It covers purpose, when to use it, and what it avoids doing. The existence of an output schema means detailed return values do not need to be spelled out in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema fully covers this by defining an empty properties object. Per the baseline for 0-param tools, the description need not explain parameters. It instead focuses on purpose and behavior, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check live authentication, retry admin access detection, and get structured next actions.' This clearly identifies the tool as a diagnostic/status tool and differentiates it from siblings like setup_extract_cookies or setup_save_pat, which perform credential operations rather than status checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage triggers are given: 'Use before setup, after an authentication error, or when expected tools are missing.' This gives clear context for when to invoke the tool. It does not explicitly list sibling alternatives, but the closing disclaimer about not reading credentials or changing settings implies when other tools would be appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.5.0- Changed
setup_extract_cookies2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "result": {} + }, + "type": "object" +}
- Changed
setup_save_pat2 fields changed- changed
Input schema / properties / pat / descriptionPrevious value: -"Figma Personal Access Token (starts with figd_)"New value: +"Figma Personal Access Token" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "result": {} + }, + "type": "object" +}
- Changed
setup_select_account2 fields changed- changed
Input schema / properties / account_index / descriptionPrevious value: -"Account number from the list returned by setup_extract_cookies"New value: +"Account number returned by setup_extract_cookies" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "result": {} + }, + "type": "object" +}
- Changed
setup_status2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "result": {} + }, + "type": "object" +}
4 tool updates
v1.4.2- First observed
setup_extract_cookies - First observed
setup_save_pat - First observed
setup_select_account - First observed
setup_status
TDQS
Scored across 4 tools
All four tools are setup-related but have distinct roles: status check, cookie extraction, account selection, and PAT saving. The only minor ambiguity is between setup_extract_cookies and setup_select_account, but their descriptions clearly separate extraction from validation/saving.
All tools share a consistent setup_ prefix and use verb_noun naming (setup_status, setup_extract_cookies, setup_select_account, setup_save_pat). Minor deviation: setup_status is a noun phrase rather than verb_noun, but the pattern is otherwise uniform.
Four tools is slightly thin for a setup workflow, but each tool covers a distinct step in the authentication/setup lifecycle. The count is appropriate for a focused setup-only server, though it may feel minimal if the server is expected to manage Figma resources beyond setup.
The setup flow is well covered: check status, extract cookies, select account, and save PAT. A minor gap is the lack of an explicit teardown/logout or re-authentication tool, but the status tool's 'next actions' guidance helps mitigate dead ends.
Maintenance
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the Figma REST API, auto-generated using AG2's MCP builder.1-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create, modify, and manage Figma designs through natural language commands via a specialized MCP server and plugin bridge. It supports a wide range of operations including element creation, property modification, component management, and accessibility checks.8 npm106MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that connects AI clients to Figma, enabling real-time reading, creation, and modification of designs using natural language.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides write access to Figma through the Plugin API, enabling AI agents to create, modify, and manage Figma designs programmatically.23-