Skip to main content
Glama

figmanage

Lass Agents deinen Figma-Workspace verwalten. Sitzplätze, Teams, Berechtigungen, Abrechnung, Offboarding, Aufräumen – im Gespräch erledigt, statt durch Admin-Panels zu klicken.

Jeder Figma-MCP ist Design-to-Code. figmanage ist die Verwaltungsebene: 102 Tools, mit denen Agents direkt am Workspace arbeiten. Funktioniert mit Claude Code, Cursor, OpenClaw oder als eigenständige CLI.

npm downloads tests license MCP

Beispiele

Workspace-Verwaltung (Admins)

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

Alltägliche Designarbeit (alle)

"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

Installation

# Claude Code
claude mcp add figmanage -- npx -y figmanage

# Cursor / OpenClaw / other MCP clients
{
  "mcpServers": {
    "figmanage": {
      "command": "npx",
      "args": ["-y", "figmanage"]
    }
  }
}

Beim ersten Start führt dich figmanage im Gespräch durch die Einrichtung – es extrahiert dein Chrome-Session-Cookie, bittet dich, ein PAT zu erstellen, und speichert die Zugangsdaten lokal. Keine Umgebungsvariablen, keine JSON-Bearbeitung.

200 Funktioniert auch als CLI:

npm install -g figmanage
figmanage login

So funktioniert es

Die öffentliche REST-API von Figma deckt Design-Dateien ab, aber nichts auf der Verwaltungsseite – keine Sitzplätze, keine Teams, keine Berechtigungen, keine Abrechnung. figmanage nutzt beide APIs:

API

Auth

Abgedeckte Bereiche

Internal

Session-Cookie

Sitzplätze, Teams, Berechtigungen, Abrechnung, Benutzergruppen, Org-Admin, Suche

Public

Personelles Access-Token

Dateien, Kommentare, Export, Komponenten, Versionen, Webhooks, Sessions

Zusammen schalten beide alle 101 Tools frei. Cookie-only oder PAT-only funktioniert, schränkt aber die verfügbaren Tools ein.

Automatische Admin-Erkennung. Beim Start prüft figmanage, ob du ein Org-Admin bist. Admins sehen alle 152 Tools. Nicht-Admins sehen 68 – alles außer Org-Management, Sitzplatzänderungen, Abrechnung, Benutzergruppen und Offboarding. Keine Konfiguration nötig.

Toolset-Presets. Beginne mit FIGMA_TOOLSETS, um nur bestimmte Toolgruppen freizugeben:

Preset

Enthaltene Toolgruppen

starter

Navigation, Lesen, Kommentare, Export

admin

Navigation, Org, Berechtigungen, Analysing, Teams, Bibliotheken

readonly

Navigation, Lesen, Kommentare, Export, Komponenten, Versionen

full

Alles (Standard)

CLI

Befehle folgen dem Muster Nomen-Verb: figmanage <group> <action>.

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 branches

Alle Befehle geben JSON aus, wenn sie gepip werden oder wenn --json übergeben wird. Für Unterbefehle figmanage <group> --help ausführen.

Einrichtung

Logge dich in Chrome bei figma.com ein, dann:

figmanage login     # extract cookie, create PAT, store credentials
figmanage whoami    # verify auth
figmanage logout    # clear credentials

Zugangsdaten werden unter ~/.config/figmanage/ mit 0o600-Berechtigungen gespeichert.

Umgebungsvariablen (FIGMA_PAT, FIGMA_AUTH_COOKIE usw.) überschreiben die Konfigurationsdatei. Der HTTP-Transport ist über --mcp --http <port> verfügbar.

Tool-Referenz

In den Tabellen unten findest du MCP-Toolnamen (snake_case). CLI-Pendants verwenden kebab-case: list_recent_files wird figmanage navigate list-recent-files.

navigate (10)

Tool

Auth

Description

check_auth

both

PAT- und Cookie-Authentifizierung validieren

list_orgs

cookie

Verfügbare Figma-Workspaces auflisten

switch_org

cookie

Aktiven Workspace für die Sitzung wechseln

list_teams

cookie

Teams in deiner Org auflisten

list_projects

beide

Projekte in einem Team auflisten

list_files

beide

Dateien in einem Projekt auflisten

list_recent_files

cookie

Zuletzt angesehene/bearbeitete Dateien

search

cookie

Dateien im gesamten Workspace durchsuchen

get_file_info

beides

Dateimetadaten: Name, Projekt, Team, Link-Zugriff

list_favorites

cookie

Favorisierte Dateien (fehlerhaft – Figma BigInt-Abug)

files (10)

Tool

Auth

Description

create_file

cookie

Design-, Whiteboard-, Folien- oder Website-Datei erstellen

rename_file

cookie

Datei umbenennen

move_files

cookie

Dateien zwischen Projekten verschieben (Stapel)

duplicate_file

cookie

Datische kopieren

trash_files

cookie

Dateien in den Papierkorb verschieben (Stapel)

restore_files

cookie

Dateien aus dem Papierkorb wiederherstellen (Stapel)

favorite_file

cookie

Zu/von Favoriten hinzufügen/entfernen

set_link_access

cookie

Link-Freigabestufe festlegen

file_summary

pat

Seiten, Komponenten, Styles, Kommentar-Anzahl

cleanup_stale_files

beide

Veraltete Dateien finden, optional in den Papierkorb (Standard: Probelauf)

projects (8)

Tool

Auth

Description

create_project

cookie

Projekt in einem Team erstellen

rename_project

cookie

Projekt umbenennen

move_project

cookie

Projekt in ein anderes Team verschieben

trash_project

cookie

Projekt in den Papierkorb verschieben

restore_project

cookie

Projekt aus dem Papierkorb wiederherstellen

set_project_description

cookie

Projektbeschreibung festlegen oder aktualisieren

organize_project

cookie

Dateien stapelweise in ein Projekt verschieben

setup_project_structure

cookie

Aus einem Plan mehrere Projekte erstellen

Permissions (8)

Tool

Auth

Description

get_permissions

cookie

Kein Auflistung: list? nein.

set_permissions

cookie

Zugriffsstufe eines Userscheidungen ändern

share

cookie

Jemanden per E-Mail einladen

revoke_access

cookie

Zugriff für jemanden entfernen

list_role_requests

cookie

Ausstehende Zugriffsanfragen auflisten

approve_role_request

cookie

Zugriffsanfrage annehmen

deny_role_request

cookie

Zugriffsanfrage ablehnen

permission_audit

cookie

Zugriffs-Audit für Teams/Projekte mit Kennzeichnung übermäßiger Freigabe

org (24, nur Admins)

Tool

Auth

Description

list_admins

cookie

Org-Admins with Berechtigungs-Berechtigungsregeln.

list_org_teams

cookie

Alle Teams provide Anzahl Fläche

seat_usage

cookie

Aufschlüsselung Sitzplätze nach Typ und Aktivität

list_team_members

cookie

Teammitglieder mit Rollen und Aktivität

list_org_members

cookie

Alle Org-Mitglieder mit Sitzplätzen und Aktivität

contract_rates

cookie

Preis pro Sitzplatz

change_seat

cookie

Sitzplatztyp eines users ändern

billing_overview

cookie

Rechnungshistorie und Abrechnungsstatus

list_invoices

cookie

Offene und kommende Rechnungen

list_payments

cookie

Bezahlte Rechnungen / Zahlungshistorie

org_domains

cookie

Domain-Konfiguration und SSO/SAML

ai_credit_usage

cookie

KI-Credit-Nutzung (ermittelt Plan aus Team)

export_members

cookie

CSV-Export aller Mitglieder auslösen

activity_log

cookie

Org-Audit-Log mit E-Mail-Filter und Pagination

create_user_group

cookie

Benutzergruppe erstellen

delete_user_groups

cookie

Benutzergruppen löschen

add_user_group_members

cookie

Mitglieder per E-Mail zu einer Benutzergruppe hinzufügen

remove_user_group_members

cookie

Mitglieder aus einer Benutzergruppe entfernen

remove_org_member

cookie

Mitglied dauerhaft aus der Org entfernen

workspace_overview

cookie

Org-Snapshot: Teams, Sitzplze, Abrechnung

seat_optimization

cookie

Erkennung inaktiver Sitzplätze mit Kostenanalyse

offboard_user

cookie

Austritt prüfen und durchführen (soft oder hard)

onboard_user

cookie

Massen-Einladung zu Teams, Dateien teilen, Sitzplatz festlegen

quarterly_design_ops_report

cookie

Sitzplatzauslastung, Abrechnung, Teams, Bibliotheksnutzung

teams (5, nur Admins)

Team

Auth

Description

create_team

cookie

Team erstellen

rename_team

cookie

Team umbenennen

delete_team

cookie

Team löschen

add_team_member

cookie

Mitglied per E-Mail hinzufügen

remove_team_member

cookie

Mitglied entfernen

analytics (2, nur Admins)

Tool

Auth

Description

library_usage

cookie

Kennzahlen zur Bibliotheksnutzung auf Teamebene

component_usage

cookie

Komponentnutzung pro Datei

comments (9)

Tool

Auth

Description

list_comments

pat

Kommentare mit als Threads

post_comment

pat

Einen Kommentar veröffentlichen

delete_comment

pat

Einen Kommentar löschen

resolve_comment

cookie

Kommentar-Thread markieren/auflösen

edit_comment

cookie

Text eines bestehenden Kommentars bearbeiten

list_comment_reactions

pat

Emoji-Reaktionen zu einem Kommentar anzeigen

add_comment_reaction

pat

Eine Emoji-Reaktion hinzufügen

remove_comment_reaction

pat

Eine Emoji-Reaktion entfernen

open_comments

pat

Unerledigte Kommentare in einem Projekt übernehmen

versions (2)

Tool

Auth

Description

list_versions

pat

Comments-Historie

create_version

cookie

Benannte Versions-Markierung erstellen

branches (4)# figma

Lass Agents deinen Figma-Workspace verwalten. Sitzplätze, Teams, Berechtigungen, Abrechnung, Offboarding, Aufräumen – das passiert im Gespräch, statt in Admin-Panels zu klicken.

Jeder Figma-MCP ist Design-to-Code. figmanage ist die Verwaltungsebene: 102 Tools, mit denen Agents direkt am Workspace arbeiten. Funktioniert mit Claude Code, Cursor, OpenClaw oder als eigenständige CLI.

npm downloads tests license MCP

Beispiele

Workspace-Verwaltung (Admins)

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

Alltägliche Designarbeit (alle)

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

Installation

# Claude Code
claude mcp add figmanage -- npx -y figmanage

# Cursor / OpenClaw / other MCP clients
{
  "mcpServers": {
    "figmanage": {
      "command": "npx",
      "args": ["-y", "figmanage"]
    }
  }
}

Beim ersten Start führt dich figmanage im Gespräch durch die Einrichtung – es extrahiert dein Chrome-Session-Cookie, bittet dich, ein PAT anzulegen, und speichert die Zugangsdaten lokal. Keine Env-Variablen, kein JSON-Bearbeiten.

Funktioniert auch als CLI:

npm install -g figmanage
figmanage login

So funktioniert es

Die öffentliche REST-API von Figma deckt Design-Dateien ab, aber nichts auf der Verwaltungsseite – keine Sitzplätze, keine Teams, keine Berechtigungen, keine Abrechnung. figmanage nutzt beide APIs:

API

Auth

Abgedeckte Bereiche

Internal

Session-Cookie

Sitzplätze, Teams, Berechtigungen, Abrechnung, Benutzergruppen, Org-Admin, Suche

Public

Personal Access Token

Dateien, Kommentare, Export, Komponenten, Versionen, Webhooks, Variablen

Beide zusammen schalten alle 102 Tools frei. Nur Cookie oder nur PAT funktioniert, schränkt aber die verfügbaren Tools ein.

Automatische Admin-Erkennung. Beim Start prüft figmanage, ob du Org-Admin bist. Admins sehen alle 102 Tools. Nicht-Admins sehen 68 – alles außer Org-Verwaltung, Sitzplatzänderungen, Abrechnung, Benutzergruppen und Offboarding. Keine Konfiguration nötig.

Toolset-Presets. Mit FIGMA_TOOLSETS lassen sich nur bestimmte Tool-Gruppen freigeben:

Preset

Enthaltene Tool-Gruppen

starter

Navigation, Lesen, Kommentare, Export

admin

Navigation, Org, Berechtigungen, Analysen, Teams, Bibliotheken

readonly

Navigation, Lesen, Kommentare, Export, Komponenten, Versionen

full

Riemann (Standard)

CLI

Befehle verwenden das Muster Nomen-Verb: figmanage <group> <action>.

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 branches

Alle Befehle geben JSON aus, wenn sie in eine Pipe gegeben werden oder wenn --json übergeben wird. Für Unterbefehle figmanage <group> --help aufrufen.

Einrichtung

Melde dich in Chrome bei figma.com an, dann:

figmanage login     # extract cookie, create PAT, store credentials
figmanage whoami    # verify auth
figmanage logout    # clear credentials

Zugangsdaten werden unter ~/.config/figmanage/ mit 0o600-Berechtigungen gespeichert.

Env-Variablen (FIGMA_PAT, FIGMA_AUTH_COOKIE usw.) überschreiben die Konfigurationsdatei. HTTP-Transport ist über --mcp --http <port> verfügbar.

Tool-Referenz

Die Tabellen unten zeigen MCP-Toolnamen (snake_case). CLI-Äquivalente verwenden kebab-case: list_recent_files wird zu figmanage navigate list-recent-files.

navigate (10)

Tool

Auth

Beschreibung

check_auth

either

PAT- und Cookie-Authentifizierung validieren

list_orgs

cookie

Verfügbare Figma-Workspaces auflisten

switch_org

cookie

Aktiven Workspace für diese Sitzung wechseln

list_teams

cookie

Teams deiner Org auflisten

list_projects

either

Projekte eines Teams auflisten

list_files

either

Dateien eines Projekts auflisten

list_recent_files

cookie

Nahezu angesehen/bearbeiten

search

cookie

Dateien workspaceweit durchsuchen

get_file_info

either

Dateimetadaten: Name, Projekt, Team, Link-Zugriff

list_favorites

cookie

Favorisierte Dateien (defekt – Figma-BigInt-Bug)

files (10)

Tool

Auth

Beschreibung

create_file

cookie

Design-, Whiteboard-, Folien- oder Site-Datei erstellen

rename_file

cookie

Datei umbenennen

move_files

cookie

Dateien zwischen Projekten verschieben (Stapelbetrieb)

duplicate_file

cookie

Datei kopieren

trash_files

cookie

Dateien in den Papierkorb verschieben (Stapelbetrieb)

restore_files

cookie

Dateien aus dem Papierkorb wiederherstellen (Stapelbetrieb)

favorite_file

cookie

Zu/aus Favoriten hinzufügen/entfernen

set_link_access

cookie

Link-Freigabestufe festlegen

file_summary

pat

Seiten, Komponenten, Styles, Kommentaranzahl

cleanup_stale_files

either

Veraltete Dateien finden, optional löschen (ohne Standard)

Hauptwerk statt Projekte

Projekte

Auth

Beschreibung

create_project

cookie

Projekt in einem Team erstellen

rename_project

cookie

Projekt umbenennen

move_project

cookie

Projekt in ein anderes Team verschieben

trash_project

cookie

Projekt in den Papierkorb verschieben

restore_project

cookie

Projekt aus dem Papierkorb wiederherstellen

set_project_description

cookie

Projektbeschreibung festlegen oder aktualisieren

organize_project

cookie

Datei-Stapel in ein Projekt verschieben

setup_project_structure

cookie

Mehrere Projekte aus einem Plan erstellen

Berechtigungen (8)

Tool

Auth

Beschreibung

get_permissions

cookie

Wer hat Zugriff – mit Rollen auflisten

set_permissions

cookie

Zugriffsstufe eines Benutzers ändern

share

cookie

Jemanden per E-Mail einladen

revoke_access

cookie

Zugriff einer Person entfernen

list_role_requests

cookie

Ausstehende Zugriffsanfragen auflisten

approve_role_request

cookie

Zugriffsanfrage annehmen

deny_role_request

cookie

Zugriffsanfrage ablehnen

permission_audit

cookie

Zugriffs-Audit für Team/Projekt mit Over-Sharing-Flags

org (24, nur Admins)

Tool

Auth

Beschreibung

list_admins

cookie

Org-Admins mit Berechtigungsstufen

list_org_teams

cookie

Alle Teams mit Mitglieder- und Projektanzahl

seat_usage

cookie

Sitzplatzverte

Tool

Auth

Beschreibung

list_branches

either

Branches einer Datei auflisten

create_branch

cookie

Einen Branch erstellen

delete_branch

cookie

Einen Branch archivieren

branch_cleanup

either

Erkennung veralteter Branches mit optionaler Archivierung

reading (2)

Tool

Auth

Beschreibung

get_file

pat

Datei als Knotenbaum mit Tiefensteuerung lesen

get_nodes

pat

Bestimmte Knoten anhand der ID lesen

export (2)

Tool

Auth

Beschreibung

export_nodes

pat

Als PNG, SVG, PDF oder JPG exportieren

get_image_fills

pat

URLs für alle als Füllung verwendeten Bilder

components (7)

Tool

Auth

Beschreibung

list_file_components

pat

Aus einer Datei veröffentlichte Komponenten

list_file_styles

pat

Stile in einer Datei

list_team_components

pat

Veröffentlichte Komponenten in einem Team

list_team_styles

pat

Veröffentlichte Stile in einem Team

list_dev_resources

pat

Dev-Ressourcen (Links, Anmerkungen) zu einer Datei

create_dev_resource

pat

Eine Dev-Ressource an einen Knoten anhängen

delete_dev_resource

pat

Eine Dev-Ressource entfernen

webhooks (5)

Tool

Auth

Beschreibung

list_webhooks

pat

Webhooks für ein Team auflisten

create_webhook

pat

Webhook-Abonnement erstellen

update_webhook

pat

Webhook aktualisieren

delete_webhook

pat

Webhook löschen

webhook_requests

pat

Zustellverlauf (letzte 7 Tage)

variables (3, Enterprise)

Tool

Auth

Beschreibung

list_local_variables

pat

Lokale Variablen und Sammlungen

list_published_variables

pat

Veröffentlichte Variablen aus einer Bibliothek

update_variables

pat

Variablen massenhaft erstellen, aktualisieren oder löschen

libraries (1)

Tool

Auth

Beschreibung

list_org_libraries

cookie

Designsystem-Bibliotheken mit Freigabeinformationen

Sicherheit

Alle ID-Parameter werden gegen /^[\w.:-]+$/ validiert. Wiederholungsversuche bei Ratenbegrenzung sind auf sichere HTTP-Methoden beschränkt – Mutationen werden nie wiederholt. Abrechnungsantworten entfernen personenbezogene Daten (PII). Destruktive Operationen verwenden standardmäßig den Trockenlaufmodus (Dry Run). Das Entfernen einer Organisation erfordert eine explizite doppelte Bestätigung. Die Konfigurationsdatei wird mit 0o600-Berechtigungen gespeichert.

Bekannte Einschränkungen

  • list_favorites: Figma-BigInt-Überlauffehler auf deren Server. favorite_file funktioniert einwandfrei.

  • Branch-Zusammenführung / Versionswiederherstellung: Erfordert Figmas Multiplayer-Protokoll, kein REST-Endpunkt.

  • Cookie-Ablauf: ~30 Tage. Führen Sie figmanage login --refresh aus, um zu erneuern.

  • Windows-Cookies: Best-Effort-DPAPI-Extraktion. Fällt auf reines PAT zurück.

  • Variablen: Nur für Enterprise verfügbare Bereiche.

  • Benutzergruppen: Nur Schreibzugriff (erstellen, löschen, Mitglieder hinzufügen/entfernen). Kein Listen-Endpunkt – Figma rendert die Seite serverseitig.

Entwicklung

git clone https://github.com/dannykeane/figmanage.git
cd figmanage
npm install
npm run build
npm test

Dreischichtenarchitektur: Operationen enthalten die gesamte Geschäftslogik, Tools und CLI sind dünne Wrapper.

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 union

Lizenz

MIT

Available Tools

4 tools
setup_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patYesFigma Personal Access Token

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_indexYesAccount number returned by setup_extract_cookies

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_statusA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 4 tool updatesv1.5.0
    • Changedsetup_extract_cookies2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedOutput 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"
        +}
    • Changedsetup_save_pat2 fields changed
      • changedInput schema / properties / pat / description
        Previous value: -"Figma Personal Access Token (starts with figd_)"New value: +"Figma Personal Access Token"
      • changedOutput 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"
        +}
    • Changedsetup_select_account2 fields changed
      • changedInput schema / properties / account_index / description
        Previous value: -"Account number from the list returned by setup_extract_cookies"New value: +"Account number returned by setup_extract_cookies"
      • changedOutput 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"
        +}
    • Changedsetup_status2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedOutput 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"
        +}
  2. 4 tool updatesv1.4.2
    • First observedsetup_extract_cookies
    • First observedsetup_save_pat
    • First observedsetup_select_account
    • First observedsetup_status

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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 npm
    106
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects AI clients to Figma, enabling real-time reading, creation, and modification of designs using natural language.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides write access to Figma through the Plugin API, enabling AI agents to create, modify, and manage Figma designs programmatically.
    23
    -