Skip to main content
Glama
southleft

figma-console-mcp

by southleft

figma_get_library_variables

Lists variables from subscribed team libraries to inventory available design tokens and find the key needed to import a shared variable into the current file.

Instructions

List all variables from team libraries the current file has subscribed.

USE THIS when you want to see what design tokens (colors, spacing, typography sizes, booleans, strings) are available from shared libraries — without needing the library file's URL or REST API Enterprise plan.

HOW IT WORKS: Calls figma.teamLibrary.getAvailableLibraryVariableCollectionsAsync() + getVariablesInLibraryCollectionAsync() via the Desktop Bridge. Only libraries the user has explicitly enabled in the current file appear (Figma security model).

WORKFLOW:

  1. Call this tool to inventory available library variables

  2. Find the variable you want (use libraryName + collectionName + variable name to identify)

  3. Pass its key to figma_import_library_variable to bring it into the current file

  4. Once imported, the variable's id can be used with figma_set_fills / figma_update_variable / any standard variable-binding tool

Filters: libraryName/collectionName accept partial case-insensitive matches.

REQUIRES the Desktop Bridge plugin to be running in Figma Desktop.

Input Schema

NameRequiredDescriptionDefault
libraryNameNoOptional: filter by library name (case-insensitive substring match). E.g., 'Northright' or 'Altitude'.
resolvedTypeNoOptional: filter by variable type. Useful when you only need color tokens or only spacing values.
collectionNameNoOptional: filter by collection name within a library (case-insensitive substring match). E.g., 'Colors' or 'Spacing'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.46.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the prerequisite (Desktop Bridge plugin must be running in Figma Desktop), the security-model limitation (only libraries the user explicitly enabled appear), and the underlying Desktop Bridge API calls. It does not describe the shape or volume of returned items, but the 'use libraryName + collectionName + variable name to identify' hint partially covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then organized under bold headers, so an agent can skim to the section it needs and every section carries operative information. The 'HOW IT WORKS' function-name detail is closer to implementation trivia than agent-facing guidance, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must do the work — and it does: purpose, prerequisites, filtering, follow-up action, and the identifiers needed to pick a result. What's left unsaid is the concrete return structure and any error behavior when the bridge isn't connected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter already documents case-insensitive substring matching and the enum. The description's 'Filters: libraryName/collectionName accept partial case-insensitive matches' merely restates the schema, and it says nothing extra about resolvedType beyond what the enum already conveys. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all variables from team libraries the current file has subscribed') plus the scope boundary that matters: only libraries the user has explicitly enabled. The opening sentence alone lets an agent distinguish this from figma_get_variables (local file variables) and from REST-based library access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'USE THIS when you want to see what design tokens are available from shared libraries' clause plus the explicit 'without needing the library file's URL or REST API Enterprise plan' names the conditions and the alternative approach it replaces. The numbered workflow also routes the agent forward to figma_import_library_variable. It stops short of an explicit when-not (e.g. 'for variables already in this file, use figma_get_variables'), which is the only gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools