Figma Bridge MCP
Figma Bridge MCP
Figma Bridge MCP ist ein lokaler Model Context Protocol (MCP)-Server, der MCP-kompatible KI-Clients mit der Figma-Desktop-App verbindet. Er ermöglicht einem KI-Assistenten, das aktuelle Figma- oder FigJam-Dokument zu untersuchen, Knoten zu exportieren und kontrollierte Änderungen über die Figma Plugin API vorzunehmen.
Plugin-Vorschau

Das Plugin-Fenster zeigt den Verbindungsstatus der Bridge, letzte Verbindungsereignisse und eine Schaltfläche zum manuellen Neuverbinden. Lassen Sie dieses Fenster geöffnet, während Ihr MCP-Client mit Figma arbeitet.
Related MCP server: Figma Native MCP
Funktionen
Untersuchen Sie die aktuelle Seite, ausgewählte Ebenen, einzelne Knoten, lokale Stile, Variablen und Komponenten.
Exportieren Sie Figma-Knoten direkt als PNG, SVG oder PDF auf die Festplatte.
Aktualisieren Sie Textfarben und einfarbige Füllfarben.
Erstellen, verschieben, skalieren und löschen Sie Knoten.
Führen Sie erweitertes JavaScript über die Figma Plugin API aus.
Verwenden Sie Knoten-IDs aus Figma-URLs im Format
1:23oder1-23.Verbinden Sie mehrere MCP-Client-Prozesse über einen gemeinsamen lokalen Bridge-Server.
Verwenden Sie die Windows-Figma-Desktop-App von KI-Agenten, die nativ unter Windows oder in WSL2 laufen.
Arbeiten Sie mit jedem MCP-Client, der stdio-Server unterstützt, einschließlich Codex, Claude Code und VS Code-MCP-Clients.
So funktioniert es
┌──────────────────────────────┐
│ MCP client │
│ Codex, Claude Code, VS Code │
└──────────────┬───────────────┘
│ MCP over stdio
┌──────────────▼───────────────┐
│ server.js │
│ Node.js MCP/WebSocket bridge │
└──────────────┬───────────────┘
│ ws://localhost:3055
┌──────────────▼───────────────┐
│ Figma Bridge plugin │
│ ui.html ↔ code.js │
└──────────────┬───────────────┘
│ Figma Plugin API
┌──────────────▼───────────────┐
│ Open Figma or FigJam file │
└──────────────────────────────┘Der erste server.js-Prozess, der Port 3055 belegt, wird zur primären Bridge. Wenn ein anderer MCP-Client eine weitere Instanz startet, wechselt dieser Prozess automatisch in den Proxy-Modus und leitet seine Befehle an die primäre Bridge weiter. Wenn mehrere Figma-Plugins verbunden sind, werden Befehle an das zuletzt verbundene Plugin gesendet.
Voraussetzungen
Node.js und npm. Die aktuelle Node.js-LTS-Version wird empfohlen.
Die Figma-Desktop-App.
Ein MCP-Client mit stdio-Server-Unterstützung.
Installieren Sie Node.js in derselben Umgebung, in der der KI-Client den MCP-Server starten wird: Installieren Sie Windows-Node.js für native Windows-Clients oder Linux-Node.js in WSL für WSL-Clients. Der Server selbst ist plattformunabhängig. start.bat ist nur als optionaler Windows-Helfer enthalten.
Installation
Klonen Sie dieses Repository und installieren Sie seine Abhängigkeit:
git clone https://github.com/Halil-KAPLAN/figma-bridge-mcp.git
cd figma-bridge-mcp
npm installSie können das Repository auch als ZIP-Datei herunterladen, es entpacken, ein Terminal im entpackten Verzeichnis öffnen und npm install ausführen.
Windows- und WSL2-Unterstützung
Figma Bridge MCP unterstützt sowohl die native Windows-Entwicklung als auch die WSL2-Entwicklung. Figma läuft immer als Windows-Desktop-Anwendung; der MCP-Server läuft in derselben Umgebung wie der KI-Agent, der ihn startet.
Entwicklungsumgebung | Wo Node.js und dieses Repository laufen | Pfad in der MCP-Konfiguration | Figma-Anwendung |
Natives Windows | Windows |
| Windows-Figma-Desktop |
WSL2-Terminal | WSL2-Linux |
| Windows-Figma-Desktop |
Normal unter Windows geöffnetes VS Code | Windows, sofern der Agent nicht explizit für WSL konfiguriert ist | Windows-Pfad | Windows-Figma-Desktop |
VS Code Remote - WSL | WSL2-Linux | WSL-Linux-Pfad | Windows-Figma-Desktop |
So funktioniert die WSL2-Verbindung
Wenn server.js in WSL2 läuft, öffnet es die WebSocket-Bridge auf Port 3055. Windows leitet WSL-Netzwerkanwendungen an localhost weiter, sodass das Windows-Figma-Plugin weiterhin eine Verbindung herstellen kann zu:
ws://localhost:3055Der vollständige WSL-Ablauf ist:
AI agent in WSL
→ starts server.js in WSL over stdio
→ WSL WebSocket server listens on port 3055
→ Windows exposes the WSL service through localhost:3055
→ Figma Desktop plugin connects from Windows
→ the agent can inspect and edit the open Figma documentMicrosoft dokumentiert den Windows-zu-WSL-Zugriff über localhost in Zugriff auf Netzwerkanwendungen mit WSL.
Natives Windows-Setup
Verwenden Sie ein im Windows-Dateisystem gespeichertes Repository und installieren Sie Abhängigkeiten mit Windows-Node.js:
git clone https://github.com/Halil-KAPLAN/figma-bridge-mcp.git
cd figma-bridge-mcp
npm installDer MCP-Befehl muss die Windows-Kopie von Node.js und einen Windows-Pfad zu server.js verwenden.
WSL2-Setup
Für die WSL-Entwicklung bewahren Sie das Repository im Linux-Dateisystem auf und installieren Sie Abhängigkeiten in WSL:
mkdir -p ~/code
cd ~/code
git clone https://github.com/Halil-KAPLAN/figma-bridge-mcp.git
cd figma-bridge-mcp
npm installÖffnen Sie das WSL-Projekt in VS Code mit:
code .Bestätigen Sie, dass VS Code im Statusindikator für die Remote-Verbindung WSL: <distribution> anzeigt und dass das integrierte Terminal Pfade wie /home/user/... verwendet. Siehe das VS Code WSL-Tutorial für den Remote - WSL-Workflow.
Während die Bridge in WSL läuft, können Sie den Zugriff von Windows aus testen mit:
Test-NetConnection localhost -Port 3055TcpTestSucceeded sollte True sein.
Agent und MCP-Server in derselben Umgebung halten
Der node-Befehl und der server.js-Pfad werden von der Umgebung aufgelöst, in der der KI-Agent läuft:
Ein Windows-nativer Agent benötigt Windows-Node.js und einen Windows-Pfad.
Ein in WSL laufender Agent benötigt ein in WSL installiertes Node.js und einen Linux-Pfad.
Ein VS Code Remote - WSL-Fenster sollte den MCP-Server über sein integriertes WSL-Terminal konfigurieren.
Verwenden Sie keinen
C:\...-Pfad in einer WSL-MCP-Konfiguration und keinen/home/...-Pfad in einer nativen Windows-MCP-Konfiguration.
Für ein möglichst vorhersehbares Verhalten verwenden Sie eine kanonische Installation pro Umgebung und konfigurieren Sie alle Agenten in dieser Umgebung so, dass sie dieselbe server.js-Datei starten. Mehrere MCP-Prozesse in derselben Umgebung werden unterstützt: Der erste wird zur primären Bridge, und spätere Prozesse leiten automatisch über sie weiter.
Figma Bridge MCP in Figma verwenden
Figma Bridge MCP enthält ein lokales Figma-Entwicklungsplugin. Es muss nicht aus der Figma Community installiert werden. Das Plugin läuft im geöffneten Figma- oder FigJam-Dokument und leitet MCP-Befehle zwischen dem lokalen Bridge-Server und der Figma Plugin API weiter.
Das Plugin einmal installieren
Entwicklungsplugins müssen mit der Figma-Desktop-App importiert werden:
Öffnen Sie die Figma-Desktop-App unter macOS oder Windows.
Erstellen oder öffnen Sie eine beliebige Figma-Design- oder FigJam-Datei.
Öffnen Sie das Figma-Menü in der oberen linken Ecke.
Wählen Sie Plugins → Entwicklung → Neues Plugin aus Manifest importieren....
Navigieren Sie zu diesem Repository und wählen Sie
plugin/manifest.jsonaus.Figma fügt Figma Bridge zum Abschnitt Entwicklung des Plugins-Menüs hinzu.
Das Manifest muss auf jedem Computer nur einmal importiert werden. Weitere Informationen zum Importieren lokaler Plugins finden Sie im Figma-Handbuch für Entwicklungsplugins.
Das Plugin für jede Sitzung ausführen
Öffnen Sie die Figma-Design- oder FigJam-Datei, die der KI-Agent untersuchen oder bearbeiten soll.
Starten Sie Ihren konfigurierten MCP-Client oder laden Sie ihn neu. Er startet normalerweise
server.jsautomatisch. Sie könnennpm startzur Diagnose manuell ausführen.Wählen Sie in Figma Plugins → Entwicklung → Figma Bridge.
Lassen Sie das Plugin-Fenster geöffnet, während der KI-Agent Figma verwendet.
Warten Sie, bis das Plugin Mit Bridge verbunden ✓ anzeigt.
Das Plugin verbindet sich mit ws://localhost:3055. Wenn der MCP-Server noch nicht läuft, bleibt das Plugin bei Verbindung wird hergestellt... und versucht es automatisch erneut. Sie können daher zuerst das Figma-Plugin oder den MCP-Client starten.
Das geöffnete Dokument ist das aktive Ziel. Wenn Sie Dokumente wechseln, führen Sie das Plugin in dem Dokument aus, das der Agent verwenden soll. Befehle wie figma_get_selection wirken auf die Ebenen, die in diesem Dokument aktuell ausgewählt sind.
Einem KI-Agenten die Nutzung von Figma über MCP ermöglichen
Sobald das Plugin Mit Bridge verbunden ✓ anzeigt, kann jeder konfigurierte KI-Agent, der stdio-MCP-Server unterstützt, die Figma Bridge MCP-Tools erkennen und aufrufen. Der Agent verbindet sich nicht direkt mit Ihrem Figma-Konto und benötigt kein Figma-Zugriffstoken. Anfragen durchlaufen diesen Pfad:
AI agent → MCP tool → server.js → Figma plugin → Figma documentDas Plugin führt die angeforderte Operation über die Figma Plugin API aus und gibt das Ergebnis über dieselbe Verbindung an den Agenten zurück. Der Agent kann das Ergebnis dann untersuchen, mit einem weiteren Tool fortfahren oder die vorgenommenen Änderungen erläutern.
Figma Bridge MCP zu einer KI-Anwendung hinzufügen
Figma Bridge MCP ist ein lokaler stdio-MCP-Server. Die KI-Anwendung startet ihn mit diesem Befehl:
node /absolute/path/to/figma-bridge-mcp/server.jsDer Pfad muss in der Umgebung gültig sein, in der die KI-Anwendung läuft. Normalerweise müssen Sie npm start nicht separat ausführen, da der MCP-Client server.js selbst startet und verwaltet.
Codex CLI und Codex IDE-Erweiterung
Codex unter Windows
Führen Sie diesen Befehl in PowerShell oder im Windows-Terminal von VS Code aus:
codex mcp add figma-bridge-mcp -- node C:\path\to\figma-bridge-mcp\server.jsCodex in WSL2
Führen Sie diesen Befehl im WSL-Terminal oder im integrierten Terminal von VS Code Remote - WSL aus:
codex mcp add figma-bridge-mcp -- node /home/user/code/figma-bridge-mcp/server.jsÜberprüfen Sie die Konfiguration:
codex mcp listVerwenden Sie in Codex /mcp, um den verbundenen Server und seine Tools zu überprüfen. Codex CLI und die Codex IDE-Erweiterung teilen sich config.toml, wenn sie auf demselben Host ausgeführt werden. Wenn Sie den Server also über das Terminal hinzufügen, ist er auch für die Erweiterung in dieser Umgebung verfügbar.
Die entsprechende Codex-Konfiguration lautet:
[mcp_servers.figma-bridge-mcp]
command = "node"
args = ["/absolute/path/to/figma-bridge-mcp/server.js"]Unter Windows kann die Codex IDE-Erweiterung Codex auch in WSL ausführen, indem Sie diese VS Code-Einstellung aktivieren:
"chatgpt.runCodexInWindowsSubsystemForLinux": trueWenn diese Einstellung aktiviert ist, installieren Sie Node.js und Figma Bridge MCP in WSL und verwenden Sie den WSL-Pfad in der Codex-MCP-Konfiguration. In einem VS Code Remote - WSL-Fenster läuft Codex bereits mit der WSL-Projektumgebung.
Siehe die offizielle Codex-MCP-Dokumentation für die MCP-Konfiguration und die Codex-WSL-Dokumentation für den WSL-Workflow.
Claude Code CLI und VS Code-Erweiterung
Claude Code MCP-Server lassen sich am zuverlässigsten über ein Terminal hinzufügen. Die VS Code-Erweiterung kann den konfigurierten Server dann verwalten und verwenden.
Claude Code unter Windows
Führen Sie diesen Befehl in PowerShell oder im Windows-Terminal von VS Code aus:
claude mcp add --transport stdio --scope user figma-bridge-mcp -- node C:\path\to\figma-bridge-mcp\server.jsClaude Code in WSL2
Führen Sie diesen Befehl im WSL-Terminal oder im integrierten Terminal von VS Code Remote - WSL aus:
claude mcp add --transport stdio --scope user figma-bridge-mcp -- node /home/user/code/figma-bridge-mcp/server.jsÜberprüfen Sie die Konfiguration:
claude mcp listVerwenden Sie in Claude Code CLI oder im Chatbereich von VS Code /mcp, um die Verbindung und die verfügbaren Tools anzuzeigen. Wenn VS Code über Remote - WSL verbunden ist, führen Sie claude mcp add im integrierten WSL-Terminal aus, damit der Befehl und der Linux-Pfad in der WSL-Claude-Code-Konfiguration gespeichert werden.
Siehe die offizielle Claude Code MCP-Dokumentation und die Claude Code VS Code-Dokumentation.
VS Code .vscode/mcp.json
Einige VS Code-MCP-Clients lesen Workspace-Server aus .vscode/mcp.json. Verwenden Sie die Konfiguration, die zum Extension-Host passt.
Windows-natives VS Code:
{
"servers": {
"figma-bridge-mcp": {
"type": "stdio",
"command": "node",
"args": ["C:\\path\\to\\figma-bridge-mcp\\server.js"]
}
}
}VS Code Remote - WSL:
{
"servers": {
"figma-bridge-mcp": {
"type": "stdio",
"command": "node",
"args": ["/home/user/code/figma-bridge-mcp/server.js"]
}
}
}Andere Terminal- und Desktop-KI-Clients
Jeder KI-Client, der lokale stdio-MCP-Server unterstützt, kann Figma Bridge MCP verwenden. Suchen Sie nach einer Einstellung MCP-Server, Tools oder Integrationen und fügen Sie einen Server hinzu mit:
Name:
figma-bridge-mcpTransport:
stdioBefehl:
nodeArgumente: der absolute Pfad zu
server.js
Ein gängiges JSON-Format ist:
{
"mcpServers": {
"figma-bridge-mcp": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/figma-bridge-mcp/server.js"]
}
}
}Der genaue Konfigurationsdateiname und der oberste Schlüssel (mcpServers oder servers) hängen vom Client ab. Terminalanwendungen folgen derselben Umgebungsregel: Verwenden Sie einen Windows-Pfad, wenn die Anwendung in Windows läuft, und einen Linux-Pfad, wenn sie in WSL läuft.
Mit einem KI-Agenten verwenden
Nach der Installation des Figma-Plugins und der Konfiguration Ihres MCP-Clients:
Öffnen Sie das Zieldokument in der Figma-Desktop-App.
Führen Sie Plugins → Entwicklung → Figma Bridge aus und lassen Sie das Fenster geöffnet.
Starten Sie den KI-Agenten oder laden Sie ihn neu, sodass er den MCP-Server startet und seine Tools erkennt.
Bitten Sie den Agenten, die Verbindung zu überprüfen. Er sollte
figma_statusaufrufen und melden, dass das Plugin verbunden ist.Bitten Sie den Agenten, das geöffnete Dokument in natürlicher Sprache zu untersuchen oder zu ändern.
Zum Beispiel:
Check whether the Figma plugin is connected.
Show the structure of the current Figma page.
Get the details of node 2057:6604.
Export node 2057:6604 as a PNG at 2x scale.
Change the selected heading to "Welcome back".
List all local components on the current page.Wenn eine Knoten-ID aus einer Figma-URL wie node-id=2057-6604 stammt, können Sie entweder 2057-6604 oder 2057:6604 an die Bridge übergeben.
Der KI-Agent entscheidet anhand deiner Anfrage, welche MCP-Tools aufgerufen werden. Du kannst ein Tool auch explizit benennen, wenn du eine bestimmte Operation benötigst, z. B. figma_get_selection, figma_export_node oder figma_set_text.
Verfügbare MCP-Tools
Verbindung und Inspektion
Tool | Eingaben | Beschreibung |
| Keine | Meldet, ob ein Figma-Plugin verbunden ist |
| Keine | Gibt die aktuelle Seite und ihre direkten Kinder zurück |
|
| Gibt die Eigenschaften eines Knotens und seine direkten Kinder zurück |
| Keine | Gibt detaillierte Informationen zu den aktuell ausgewählten Knoten zurück |
| Keine | Listet lokale Farb-, Text- und Effektstile auf |
| Keine | Listet lokale Variablensammlungen, Modi und Variablen auf |
| Keine | Listet Komponenten auf der aktuellen Seite auf |
Export
Tool | Eingaben | Beschreibung |
|
| Exportiert einen Knoten als |
Das Standard-Exportformat ist PNG und die Standardskalierung ist 1. scale gilt nur für PNG und PDF; der SVG-Export übernimmt keine Skalierungsbeschränkung und ignoriert sie.
Der Export wird auf die Festplatte geschrieben, statt als Inline-base64 zurückgegeben zu werden – ein kleines PNG ergibt mehrere hundert Kilobyte davon, was für einen KI-Client teuer im Kontext ist und sich als Bild nicht verwenden lässt. Das Tool gibt stattdessen den Dateipfad zurück.
outputPath kann ein vollständiger Dateipfad oder ein Zielverzeichnis sein. Ohne Angabe landet die Datei in ./figma-exports/ relativ zum Arbeitsverzeichnis des MCP-Clientprozesses; setze FIGMA_BRIDGE_EXPORT_DIR, um diesen Standard zu ändern. Die erzeugten Dateinamen kombinieren den Ebenennamen mit der Knoten-ID, zum Beispiel hero-banner-5005-2330.svg.
SVG-Exporte bis zu 16 KB werden zusätzlich inline als Quelltext zurückgegeben, sodass ein Icon ohne einen zweiten Lesevorgang verwendet werden kann. Größere SVGs werden nur über ihren Pfad referenziert.
Bearbeitung
Tool | Eingaben | Beschreibung |
|
| Ersetzt den Inhalt eines Textknotens |
|
| Ersetzt die Füllungen eines Knotens durch eine einfarbige Hex-Farbe |
|
| Erstellt einen Frame auf der aktuellen Seite |
|
| Erstellt einen Inter-Regular-Textknoten auf der aktuellen Seite oder in einem übergeordneten Knoten |
|
| Löscht einen Knoten |
|
| Ändert die Position eines Knotens |
|
| Ändert die Abmessungen eines Knotens |
Erweitert
Tool | Eingaben | Beschreibung |
|
| Führt JavaScript mit Zugriff auf das Plugin-API-Objekt |
figma_run_js ist für Operationen gedacht, die nicht von den speziellen Tools abgedeckt werden. Der übergebene Code wird in der Figma-Plugin-Sandbox ausgeführt und kann das geöffnete Dokument verändern.
Das Snippet wird vor der Ausführung in eine asynchrone Funktion eingebettet, sodass sowohl await als auch return auf der obersten Ebene des von dir übergebenen Codes funktionieren:
const node = figma.getNodeById("1:2");
await node.exportAsync({ format: "SVG" });
return node.name;Manuelles Ausführen des Servers
Der manuelle Start ist für Diagnosen nützlich, aber nicht erforderlich, wenn dein MCP-Client so konfiguriert ist, dass er den Server startet.
npm startUnter Windows kannst du auch start.bat doppelklicken.
Erwartete Protokollausgabe eines primären Servers:
[figma-bridge-mcp] Starting Figma Bridge MCP Server...
[figma-bridge-mcp] PRIMARY mode — listening at ws://localhost:3055
[figma-bridge-mcp] MCP stdio readyWenn ein anderer Figma-Bridge-Prozess den Port bereits belegt, wechselt der neue Prozess in den Proxy-Modus. Das ist zu erwarten:
[figma-bridge-mcp] Port is in use; switching to proxy mode...
[figma-bridge-mcp] Connected to the primary serverProjektstruktur
figma-bridge-mcp/
├── plugin/
│ ├── code.js # Commands executed in the Figma plugin sandbox
│ ├── ui.html # Plugin UI and WebSocket client
│ └── manifest.json # Figma development plugin manifest
├── server.js # MCP stdio server and WebSocket bridge
├── start.bat # Optional Windows launcher
├── package.json # Node.js package metadata and scripts
└── README.mdDie einzige npm-Laufzeitabhängigkeit ist ws, das die WebSocket-Server- und -Client-Implementierung bereitstellt.
Fehlerbehebung
No Figma plugin connected
Verwende die Figma-Desktop-App, nicht die Browserversion.
Öffne die Figma- oder FigJam-Datei, mit der du arbeiten möchtest.
Führe Plugins → Development → Figma Bridge aus.
Halte das Plugin-Fenster geöffnet.
Warte einige Sekunden auf den automatischen Verbindungsversuch des Plugins.
Bestätige, dass das Plugin Connected to bridge ✓ anzeigt.
Das Plugin bleibt bei Connecting... stehen
Bestätige, dass der MCP-Client
server.jsgestartet hat, oder führe für Diagnosen vorübergehendnpm startaus.Bestätige, dass Port
3055nicht durch eine Firewall oder ein Sicherheitstool blockiert wird.Prüfe, ob eine andere Anwendung Port
3055bereits verwendet.Lade das Plugin neu, nachdem der Bridge-Server gestartet ist.
Figma unter Windows kann die in WSL2 laufende Bridge nicht erreichen
Bestätige, dass der Server innerhalb von WSL lauscht:
ss -ltnp | grep 3055Teste dann den weitergeleiteten Port von Windows PowerShell aus:
Test-NetConnection localhost -Port 3055Wenn TcpTestSucceeded False ist:
Bestätige, dass du WSL2 mit
wsl --list --verbosein PowerShell verwendest.Aktualisiere WSL mit
wsl --updateund starte es anschließend mitwsl --shutdownneu.Starte den MCP-Client neu und führe das Figma-Plugin erneut aus.
Prüfe, ob ein VPN, eine Firewall, ein Endpoint-Sicherheitstool oder ein anderer Prozess Port
3055blockiert.Bestätige, dass Node.js und
npm installinnerhalb von WSL ausgeführt wurden und nicht nur unter Windows.
Ersetze die Plugin-URL nicht durch eine IP-Adresse einer WSL-Virtual-Machine. Die Localhost-Weiterleitung von Windows zu WSL ist der vorgesehene Verbindungsweg und vermeidet die Abhängigkeit von einer IP-Adresse, die sich nach WSL-Neustarts ändern kann.
Der MCP-Server wird nicht erkannt
Bestätige, dass Node.js verfügbar ist:
node --versionBestätige, dass die Abhängigkeiten installiert sind:
npm installVerwende einen absoluten Pfad zu
server.js.Maskiere Windows-Backslashes in JSON korrekt.
Starte den MCP-Client nach Änderungen an seiner Konfiguration neu oder lade ihn neu.
Prüfe die Serverprotokolle des MCP-Clients auf Node.js- oder Pfadfehler.
Port is in use; switching to proxy mode...
Diese Meldung ist normal, wenn bereits eine andere Figma-Bridge-Instanz läuft. Wenn der Proxy keine Verbindung herstellen kann, beende den anderen Prozess, der Port 3055 verwendet, oder ändere den Port konsistent in server.js, plugin/ui.html und plugin/manifest.json.
Ein Befehl läuft in einen Timeout
Bestätige, dass das Plugin noch geöffnet und verbunden ist.
Bestätige, dass das Zieldokument in Figma noch geöffnet ist.
Prüfe, ob die Knoten-ID im aktuellen Dokument vorhanden ist.
Wiederhole die Anfrage, nachdem du das Plugin neu verbunden hast. Bridge-Anfragen laufen nach 30 Sekunden in einen Timeout.
Aktuelle Einschränkungen
Die Bridge ist für die lokale Nutzung ausgelegt und verwendet den festen WebSocket-Port
3055.Das Figma-Entwicklungsplugin muss während einer Sitzung geöffnet bleiben.
Bei mehreren geöffneten Plugin-Fenstern richten sich Befehle an das zuletzt verbundene Plugin.
figma_get_pagegibt die direkten Kinder der Seite zurück, anstatt den gesamten Dokumentbaum rekursiv zu erweitern. Verwendefigma_get_nodefür weitere Details.Exporte werden von dem MCP-Serverprozess, der den Aufruf erhalten hat, auf die Festplatte geschrieben. Die Datei landet also neben dem Client, der sie angefordert hat, und nicht bei der primären Bridge.
Es gibt keine Authentifizierungsschicht zwischen dem lokalen WebSocket-Server und dem Plugin.
Sicherheit
Figma Bridge MCP ist für die lokale Entwicklung gedacht. Setze Port 3055 keinen unvertrauenswürdigen Netzwerken aus. Verbinde nur MCP-Clients, denen du vertraust, und prüfe Befehle, bevor du ihnen erlaubst, wichtige Designdateien zu ändern.
Das Tool figma_run_js kann beliebiges JavaScript in der Figma-Plugin-Sandbox ausführen. Es ist mächtig genug, um das geöffnete Dokument zu untersuchen oder zu verändern, und sollte nur mit vertrauenswürdigen Prompts und vertrauenswürdigen MCP-Clients verwendet werden.
Entwicklung
Installiere die Abhängigkeiten und starte den Server:
npm install
npm startÄnderungen an server.js erfordern einen Neustart des MCP-Serverprozesses. Änderungen an Dateien unter plugin/ erfordern das Neuladen oder erneute Ausführen des Entwicklungsplugins in Figma.
Lizenz
Dieses Repository enthält derzeit keine Lizenz. Füge eine LICENSE-Datei hinzu, bevor du das Projekt verteilst oder Beiträge von Dritten annimmst.
Available Tools
16 toolsfigma_create_frameC
Create a new frame on current page
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| name | Yes | ||
| width | Yes | ||
| height | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states the basic purpose without disclosing behavioral traits like side effects, prerequisites (e.g., current page selection), constraints (e.g., duplicate names), or error conditions.
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?
Single sentence is concise and front-loaded, but it under-informs. Conciseness traded for completeness; minimal viable size for a simple tool.
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?
No output schema, no behavioral details, and no parameter descriptions. For a creation tool, missing context on return value (e.g., node ID), potential conflicts, and required context (current page existence).
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?
Schema description coverage is 0%, so description must explain parameters. It does not mention any parameter roles, valid ranges, or relationships (e.g., x,y for positioning). No added meaning beyond schema names.
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?
Description clearly states verb 'create', resource 'frame', and context 'on current page'. It distinguishes from sibling tools like figma_create_text by specifying the resource type.
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?
No guidance on when to use this tool versus alternatives. Siblings include creation, deletion, and modification tools, but description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_textD
Create a text node
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| text | Yes | ||
| fontSize | No | ||
| parentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits (e.g., whether it replaces existing nodes, requires a parent, or side effects). 'Create a text node' implies insertion but lacks detail.
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 extremely concise at 4 words, but it under-specifies the tool. Conciseness should not come at the cost of missing critical information; here, brevity hurts usability.
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?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is entirely insufficient. The agent has no idea what creating a 'text node' entails in Figma or how to use the parameters 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 description provides zero parameter information. All five parameters are documented only in the schema, with 0% coverage in the description, requiring the agent to infer meaning from parameter names alone.
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 'Create a text node' clearly states the action and resource, but lacks scope or differentiation from sibling tools like 'figma_set_text' which also deals with text nodes. It is specific but not distinctive.
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?
No usage guidelines provided. The description does not indicate when to use this tool, prerequisites, or alternatives, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_delete_nodeC
Delete a node by ID
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'delete' but does not disclose whether deletion is permanent, what happens to child nodes, or if any permissions are required. With no annotations, the description should compensate, but it omits critical behavioral details.
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 very concise, using a single sentence. However, for a simple delete operation, this brevity is acceptable and not wasteful. A bit more context would not hurt.
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?
Given a single parameter and no output schema, the description is incomplete. It does not explain side effects, error conditions (e.g., node not found), or return value (presumably empty or success). More context is needed for reliable invocation.
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 only parameter (nodeId) lacks description in the schema, and the tool description provides no additional meaning (e.g., expected format like UUID or node path). Schema coverage is 0%, but the description adds nothing beyond the schema.
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 action ('delete') and the resource ('node'), which is precise within the Figma context. It distinguishes this tool from sibling tools like figma_create_frame or figma_move_node, as deletion is a unique operation.
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?
No guidance is provided on when to use this tool versus alternatives or when not to use it. There are no prerequisites, restrictions, or mentions of related tools (e.g., figma_get_node to verify existence before deletion).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_export_nodeC
Export a node as PNG/SVG (returns base64)
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| format | No | PNG | |
| nodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only notes base64 return, lacking details on side effects, permissions, error handling (e.g., missing node), or whether operation is read-only.
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?
Very short (1 sentence) but at the expense of missing important details like additional formats and parameter info. Conciseness should not sacrifice necessary clarity.
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?
With 3 parameters, no output schema, and no annotations, the description is too minimal. It fails to explain scale, full format options, or output structure, making it inadequate for confident tool selection.
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?
Schema coverage 0% and description adds no parameter explanations. Scale, format enum (including hidden PDF), and nodeId are not described. For 3 parameters, this is insufficient.
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?
Description clearly states 'Export a node' and specifies PNG/SVG formats and base64 output. However, it omits PDF (present in enum), which slightly reduces completeness. Differentiates from sibling tools like figma_get_node by emphasizing export/rendering.
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?
No guidance on when to use this tool vs siblings (e.g., figma_get_node for properties vs export for images). The purpose is implied but not explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_componentsB
Get all local components
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, permissions, or side effects. The tool likely performs a read operation, but this is not explicitly stated.
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 a single sentence with no unnecessary words, achieving high conciseness. However, it is so minimal that some context is sacrificed for brevity.
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?
Given no output schema and no annotations, the description fails to explain the return format, scope (e.g., current document? page?), or examples. It is too incomplete for a tool that likely returns a list of components.
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 no parameters, and schema coverage is 100%. The description does not need to add parameter-level detail, but it could clarify what 'local components' means. The baseline for zero parameters is 4, which is met.
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 uses a specific verb-resource pair ('Get all local components'), making the purpose clear. However, it does not distinguish from siblings like figma_get_styles or figma_get_variables, which are similar in structure. The term 'components' could be ambiguous without context.
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 no guidance on when to use this tool versus alternatives. It only states the action, leaving the agent to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_nodeB
Get detailed info about a specific node by ID
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID (e.g. "1:2" or "1-2") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states 'Get detailed info' without specifying what that entails (e.g., geometry, properties, children), permissions, rate limits, or whether it's read-only. More detail is needed for safe invocation.
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 a single sentence with no unnecessary words. It is concise and front-loaded with the action and resource.
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?
The description lacks output details (no output schema). Given the complexity of Figma nodes, stating that it returns 'detailed info' is vague. More context about the response (e.g., 'returns node properties, children, geometry') would improve completeness.
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?
Schema description coverage is 100%, so baseline is 3. The description itself adds no additional meaning beyond the schema, but the schema already documents the nodeId parameter with examples. The tool description does not compensate beyond the schema.
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 verb 'Get', the resource 'detailed info about a specific node', and the method 'by ID'. It effectively distinguishes from siblings like figma_get_page and figma_get_components.
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?
No guidance is provided on when to use this tool versus alternatives (e.g., figma_get_selection for selected nodes, figma_get_page for all nodes on a page). This omission may lead to suboptimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_pageA
Get all frames/nodes on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether all nested frames are returned, pagination limits, or any destructive actions. The tool name implies a read operation, but this is not explicitly stated.
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 a single, front-loaded sentence with no wasted words. It directly communicates the tool's purpose without redundancy.
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?
Given no output schema and no parameters, the description is adequate but fails to explain the return format (e.g., list of node IDs or full objects). The agent may be uncertain about the structure of the result.
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 schema coverage is trivially 100%. The description does not need to add parameter semantics, achieving the baseline score of 4.
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 'Get all frames/nodes on the current page' uses a clear verb ('Get') and specifies the resource ('all frames/nodes on the current page'). It distinguishes itself from siblings like figma_get_node (single node) and figma_get_selection (selected nodes).
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 no guidance on when to use this tool versus alternatives. It does not state prerequisites, when not to use, or mention related tools like figma_get_node for single nodes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_selectionA
Get currently selected nodes in Figma
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose what happens when no selection exists (empty result vs. error) or whether the selection is live. The description is too minimal for a read operation.
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 a single, short sentence with no wasted words. It is perfectly concise and front-loaded.
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 no output schema, the description is mostly complete. It could improve by noting behavior when no nodes are selected or indicating that multiple nodes may be returned. Still, it covers the core action adequately.
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, so schema coverage is 100% trivially. The description adds value by specifying 'currently selected' which implies real-time state, but does not elaborate on return format or node identification.
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 'Get currently selected nodes in Figma,' which is a specific verb+resource. It distinguishes from siblings like figma_get_node (which retrieves a specific node by ID) by focusing on the user's current selection.
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 no guidance on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., a selection must exist) or when to use sibling tools like figma_get_node or figma_get_page.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_stylesB
Get all local styles (colors, text, effects)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral burden. It does not explicitly state that this is a read-only operation, nor does it mention potential side effects, return format, or access requirements. The word 'Get' implies read-only, but detailed transparency is lacking.
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 a single, concise sentence that is front-loaded. It is not verbose, but could benefit from slight expansion about return format or read-only nature. Still, it is efficient.
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?
Given no parameters, output schema, or annotations, the description covers the basic function. However, it omits context like return type (list of style objects) and whether it is a read operation. For a simple tool, it is minimally adequate.
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?
Schema description coverage is 100% (no parameters). The description adds no parameter information, but baseline is 3 due to high coverage. No additional value beyond schema.
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?
Description clearly states the tool gets all local styles and specifies the types (colors, text, effects), making the purpose highly specific. It effectively distinguishes from siblings like figma_get_components and figma_get_variables.
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 usage is implied: use when you need local styles. However, no explicit when-not or alternatives are mentioned, and sibling tools are not compared.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_variablesA
Get all local variables and variable collections
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic read operation without disclosing any behavioral traits (e.g., what happens if no variables, whether it returns all collections, side effects, or permissions needed).
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 a single, concise sentence with no fluff. It is appropriately sized for a zero-parameter tool, though it could be slightly more informative about what constitutes 'local variables'.
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?
Given the absence of an output schema and annotations, the description is minimal. It does not describe the return format or structure, leaving the agent to infer the response. For a tool with no parameters, it is adequate but not 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?
There are zero parameters, and the schema description coverage is 100%. With no parameters, the description does not need to add param semantics, and the baseline score of 4 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 'Get all local variables and variable collections', with a specific verb ('Get') and resource ('local variables and variable collections'), distinguishing it from sibling tools like figma_get_components or figma_get_styles.
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?
No explicit guidance on when to use this tool vs alternatives like figma_get_components or figma_get_styles. The purpose is implied, but no when-to-use or when-not-to-use context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_move_nodeC
Move a node to new x,y position
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| nodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral traits disclosed beyond the implied mutation. No mention of side effects, authorization needs, undoability, or return values. Description carries the full burden due to absent 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?
Extremely short (one sentence) but under-specified. Being concise is positive, but the content is too minimal to be useful; lacks structure and essential details.
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?
Given the sibling tools and lack of output schema, the description is grossly incomplete. No info on coordinates system, error handling, return value, or usage constraints. Inadequate for an agent to invoke 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?
Schema coverage is 0% for parameter descriptions. The description only reiterates 'new x,y position' without clarifying coordinate meaning (absolute/relative, units) or the role of nodeId. Fails to add value beyond schema.
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 verb 'move' and the resource 'node', specifying the action to new x,y coordinates. It distinguishes from siblings like figma_resize_node or figma_create_frame, but lacks specificity on the coordinate system or units.
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?
No guidance provided on when to use this tool versus alternatives (e.g., figma_resize_node does not move) or prerequisites (e.g., node must exist, must be on a page). Missing explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_resize_nodeC
Resize a node
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | ||
| height | Yes | ||
| nodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as whether the operation is reversible, requires permissions, or triggers side effects.
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 extremely concise at 3 words, but this brevity comes at the cost of missing critical information. It is not appropriately sized for the tool's complexity.
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?
Given the lack of annotations and output schema, and the need to document three parameters, the description is wholly insufficient for an agent to use the tool 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?
Schema description coverage is 0%, and the description adds no meaning to the parameters (nodeId, width, height). It does not explain units, valid ranges, or how parameters affect the resize operation.
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 'Resize a node' uses a specific verb and resource, clearly indicating the action. It is distinct from sibling tools like figma_move_node or figma_set_fill, though it does not explicitly differentiate them.
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?
No guidance on when to use this tool versus alternatives. There is no context about prerequisites, constraints, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_run_jsC
Run arbitrary Figma Plugin API JavaScript code (advanced)
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states that code is run, but does not mention safety, permissions, side effects, or execution context (e.g., sandboxing). This is insufficient for a code execution tool.
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 a single concise sentence with no extraneous information. It is front-loaded and efficient, though it could benefit from additional context without becoming verbose.
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?
Given the complexity of running arbitrary code and the absence of an output schema, the description is minimal. It does not explain return values, error handling, or limitations, leaving the agent with insufficient information to use the tool effectively.
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?
With 0% schema description coverage, the description must add meaning to the 'code' parameter. It mentions it is JavaScript code, but provides no syntax, examples, return value, or constraints. This does not adequately compensate for the lack of schema descriptions.
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 runs arbitrary Figma Plugin API JavaScript code, which is a specific action. It distinguishes itself from sibling tools that perform specific operations like creating frames or getting nodes.
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?
No guidance on when to use this tool versus alternatives. While it's implied for cases not covered by sibling tools, there are no explicit conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_fillC
Change fill color of a node (hex color)
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex color e.g. "#FF0000" | |
| nodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It indicates a write operation ('change') but does not disclose whether it overwrites existing fills, works on all node types, or is reversible. Missing behavioral context for a mutation tool.
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 a single sentence, which is concise but lacks structure. It could be expanded to include usage guidance without becoming verbose. The brevity leads to omissions.
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?
Given the low schema coverage, no annotations, and no output schema, the description should provide more context. It does not specify the effect on multiple fills, error conditions, or return value, making it incomplete for practical use.
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?
Schema description coverage is 50% (nodeId lacks description). The description only mentions hex color format, which is already in the schema. It does not explain what nodeId represents or how to obtain it, leaving a gap.
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 action ('Change fill color') and the resource ('a node') with the hex format specified. It distinguishes from sibling tools that handle different operations (create, delete, move, etc.), but does not explicitly differentiate from other color-related modifications.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., node exists, is selected) or exclusions (e.g., for text nodes use figma_set_text).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_textB
Change text content of a text node
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| nodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states the action (change text) without disclosing side effects, reversibility, or what happens on success/failure.
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?
Single sentence, no extraneous words, perfectly concise.
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?
Given no output schema and no annotations, description fails to explain return values, success/failure indicators, or any constraints (e.g., max text length). Requires significant inference from the agent.
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?
Schema description coverage is 0% and description adds no meaning to parameters beyond their names (nodeId, text). No guidance on format, constraints, or where to get nodeId.
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?
Description uses specific verb 'change' and resource 'text content of a text node', clearly distinguishing from siblings like figma_create_text (create new) and figma_get_node (read).
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?
No explicit when-to-use or when-not-to-use guidance, but intent is obvious from name and description. Lacks alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_statusA
Check if Figma plugin is connected
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic purpose without disclosing the return value, error behavior, or side effects. For a status check, minimal behavioral information is given.
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 a single sentence that directly states the purpose with no unnecessary words. It is front-loaded and efficiently conveys the tool's function.
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?
Given the simplicity (no parameters, no output schema, no annotations), the description is minimal. It would benefit from specifying what the tool returns (e.g., true/false for connectivity) to fully inform the agent. Currently adequate but not 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 tool has zero parameters, and schema coverage is 100% trivially. According to rubric, 0 parameters yields a baseline of 4. No additional parameter info is needed.
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 'Check if Figma plugin is connected' uses a specific verb and resource, clearly indicating a status check. It distinguishes itself from siblings, which are all about creating, modifying, or retrieving Figma objects.
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 does not explicitly state when to use this tool versus alternatives. It implies usage for verifying connectivity before other Figma operations, but lacks explicit when-not or alternative guidance.
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. Dates show when Glama detected each change.
16 tool updates
v1.0.0- First observed
figma_create_frame - First observed
figma_create_text - First observed
figma_delete_node - First observed
figma_export_node - First observed
figma_get_components - First observed
figma_get_node - First observed
figma_get_page - First observed
figma_get_selection - First observed
figma_get_styles - First observed
figma_get_variables - First observed
figma_move_node - First observed
figma_resize_node - First observed
figma_run_js - First observed
figma_set_fill - First observed
figma_set_text - First observed
figma_status
TDQS
Each tool targets a distinct action on a specific resource (e.g., create_frame vs. create_text, get_node vs. get_page). There is no obvious overlap or ambiguity between tools.
All tools follow the consistent pattern of `figma_verb_noun` (e.g., figma_create_frame, figma_delete_node, figma_get_selection). No mixing of styles or irregular names.
With 16 tools, the server covers a broad range of operations without being overwhelming. The count aligns well with the scope of a Figma bridge.
The tool surface covers creation, deletion, manipulation (move, resize, fill), reading (node, page, styles, variables), export, and advanced JS execution. Minor gaps like setting strokes or effects are present, but core workflows are well-supported.
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 Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
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 gradedqualityCmaintenanceA local MCP server that lets MCP clients inspect and edit the Figma document currently open in the Figma desktop app using a local bridge and development plugin.MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI tools to read and write Figma designs via a plugin bridge, bypassing the Figma REST API and rate limits.31MIT
- AlicenseAqualityCmaintenanceFigma MCP server that lets agents execute arbitrary JavaScript inside a running Figma desktop app via a local development plugin, enabling real-time document inspection and manipulation while avoiding REST API rate limits.3MIT
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/Halil-KAPLAN/figma-bridge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server