F-MCP (Figma MCP Bridge)
F-MCP (Figma MCP Bridge) lets AI agents read, analyze, create, and modify Figma designs through a local plugin bridge — no internet required.
File & Connection Management
List all connected Figma/FigJam plugin instances; check connection health and diagnostics
Retrieve full file structure and document tree
Change WebSocket bridge port at runtime
Reading & Inspecting Designs
Get design context (layout, typography, visuals) for any node or file
Get component metadata, local styles, and a design system summary
Search local and library components, variables, and assets
Browse design tokens hierarchically; get Code Connect hints for components
Variables & Design Tokens
Get, create, update, rename, and delete variables and variable collections
Add/rename modes; batch create or update up to 100 variables at once
Atomically set up a full design token collection with modes
List and filter team library variables; bind them to node properties (fills, padding, radius, etc.)
Import and apply team library styles to nodes
Compare Figma tokens with code-side tokens to find parity gaps
Creating & Modifying Designs
Execute arbitrary JavaScript in the Figma plugin context (full Plugin API access)
Create frames (with auto-layout & token bindings), text nodes, rectangles, and groups
Instantiate library or local components; set instance properties (text, boolean, variant)
Clone screens to different device sizes; arrange components into component sets
Create a minimal design system (colors, spacing, text styles, Button/Input/Card) in a blank file
Design System Compliance & Validation
Validate screens against DS discipline (instance usage, token binding, auto-layout) with a compliance score and remediation feedback
Full DS compliance scan detecting hardcoded colors/fonts and primitive frames
Screenshots & Exports
Capture screenshots in file, base64, summary, or regions modes
Export nodes as SVG, PNG, JPG, or PDF (batch up to 50 nodes)
Get component metadata plus screenshot in one call for design-to-code workflows
Prototyping & Interactions
Create prototype reactions between frames (navigate, overlay, swap, scroll, etc.) with triggers, actions, and transitions
Read existing prototype connections and flow starting points
Mark frames as flow starting points; create variant state-change interactions; set scroll behavior
Figma REST API Integration
Set a personal access token to access comments, version history, file exports, and team/project listings
Call any Figma REST API endpoint directly
Debugging & Console
Read, watch, and clear plugin console logs; monitor connection health
Enables AI agents to read, analyze, create, and modify Figma designs, manage design tokens, generate code (e.g., React), export assets (SVG/PNG/PDF), and automate prototype connections and animations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@F-MCP (Figma MCP Bridge)list all components in my current Figma file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
F-MCP (Figma MCP Bridge)
Yeni — v1.9.14 Contract Extractor: Bir Component Set'i seçin,
figma_extract_contractdeyin — props, anatomy token binding'leri, variant override diff'leri, mode bazlı resolved token'lar, WCAG kontrast denetimi ve base spec'ler tek design contract JSON'unda. Design-to-code handoff'un tek doğruluk kaynağı. Detay: Release notes · extract-contract SKILL.Son sürüm — v1.9.14 (31 Temmuz 2026): Contract Extractor — Component Set → design contract JSON spec (63 tool, 132/132 test). Önceki öne çıkanlar: v1.9.13 sıfır-kurulum DS oto-uyumlanma, v1.9.11 Prototype Connections + Animations (figma-prototype-flow). Detay: CHANGELOG · Release notes
Figma tasarımlarınızı AI'a bağlar. AI'a "Bu ekrandaki renkleri çıkar" veya "Yeni bir login sayfası oluştur" dersiniz — AI Figma'daki tasarımınızla doğrudan çalışır.
Her şey bilgisayarınızda kalır. Tasarım verileriniz internete gönderilmez.
Neye ihtiyacım var?
Gerekli | Açıklama |
Figma | Zaten kullanıyorsanız hazırsınız |
Claude Code | Kurulumu yapacak uygulama — claude.ai/download adresinden indirin |
Claude Code nedir? Bilgisayarınızda çalışan Claude versiyonu. Dosya oluşturabilir, komut çalıştırabilir, kurulum yapabilir. İndirdikten sonra kurulum için sadece bir kez kullanacaksınız.
Related MCP server: MCP Figma
Kurulum (5 dakika)
1. Claude Code'u indirin (henüz yoksa)
2. Claude Code'u açın ve şunu yazın:
"https://github.com/atezer/FMCP bu repoyu kur"
Claude gerekli her şeyi (Node.js, build, ayarlar) otomatik yapar. Sizden sadece gerekirse bilgisayar şifreniz istenir.
3. Claude "kurulum tamamlandı" deyince Claude Code'u kapatıp tekrar açın
4. Figma'da Plugins → F-MCP ATezer Bridge açın → yeşil "Ready" görün
5. Hazırsınız! Claude'a Figma ile ilgili sorularınızı sorun.
Plugin'i ilk kez mi yüklüyorsunuz? Figma → Plugins → Development → Import plugin from manifest →
f-mcp-plugin/manifest.jsonKurumsal kullanım: Plugin organizasyonda yayınlandıysa import gerekmez — Plugins menüsünden doğrudan çalıştırın.
Kurulumdan sonra hangi Claude'u kullanmalıyım?
Kurulum tek seferlik. Sonrasında Claude Desktop'ı açın — tıpkı Claude Chat gibi yazışın, Figma bağlantısı otomatik çalışır.
Araç | F-MCP çalışır mı? | Not |
Claude Desktop (masaüstü uygulaması) | ✅ | Sohbet arayüzü — günlük kullanım için önerilen |
Claude Code (terminal uygulaması) | ✅ | Kod yazma ve geliştirme için |
Cursor | ✅ | Kod editörü — geliştiriciler için |
Claude Chat (claude.ai web) | ❌ | Web tarayıcısı Figma plugin'ine erişemez |
Claude Desktop sınırlamaları
Claude Desktop Claude Code'dan farklı çalışır. Şu mekanizmalar Desktop'ta yoktur:
Hook'lar (PreToolUse, SessionStart) — çalışmaz
Sub-agent spawn — Task tool mevcut değil
Slash command'lar (
/ds-syncvb.) — desteklenmezplugin.jsonauto-discovery — yüklenmez.claude/CLAUDE.mdauto-inject yok
Desktop'ta enforcement beş katmandan gelir:
Plugin response BLOCKING signal'i (
_DESIGN_SYSTEM_VIOLATIONS_BLOCKING)Runtime audit tool'u
figma_scan_ds_complianceScreenshot method selection — file/summary/regions/base64 (context koruma)
Discovery budget — keşif çağrıları sayılır, 12'den sonra BLOCKING
Project Knowledge'a yüklenmiş skill dosyaları
Detaylı rehber ve ilk-prompt örneği: install/claude-desktop/HOW-TO-ENFORCE.md.
Yeni chat öncesi öneri
Plugin bağlantı sorunları veya zombie process temizliği için:
bash scripts/cleanup-ports.sh5454-5470 aralığındaki eski FMCP process'lerini güvenle öldürür (sadece FMCP adıyla eşleşenler).
Kendi Tasarım Sisteminizi Ekleyin (Bring Your Own DS)
F-MCP DS-agnostic çalışır — herhangi bir Figma team library'yi (Material, Apple HIG, Tailwind UI, kurumsal kendi DS'iniz vb.) kullanabilirsiniz.
🪄 Sıfır kurulum (v3.5+ — önerilen): Hiçbir şey eklemenize gerek yok. Tasarım sisteminizle ilgili herhangi bir şey isteyin ("tasarım sistemimle bir login ekranı yap", "DS'ime uygun mu denetle") — agent Figma ortamınızdan DS'inizi otomatik keşfeder: hedef dosyanın subscribe olduğu library'ler + açık library dosyaları + mevcut instance'ların kaynakları taranır, bulgular .claude/design-systems/registry.local.md'ye (gitignore'lu, size özel) kaydedilir ve bir daha sorulmaz. Ancak hiçbir sinyal yoksa agent bir kez kütüphane linkinizi sorar ve kalıcılaştırır.
Elle kontrol isteyenler için komutlar:
Komut | Ne zaman? |
| Yeni bir DS kurarken (ana + mobil + ikon + asset Figma dosyalarını tek seferde ekler, cache oluşturur) |
| Hızlı ekleme — file-key otomatik parse edilir, varolan DS ile çakışma/fuzzy isim eşleşmesi kontrol edilir |
| Mevcut DS cache'ini Figma'dan güncelle (resume destekli, kısmi sync) |
Claude Desktop'ta: Slash command'lar tetiklenmez (Desktop sınırlamaları). Bu komutların içeriğini prompt'a yapıştırın; Claude skill instruction'larını adım adım uygular. Veya doğal dil kullanın: "Kütüphane ekle", "Ana-DS'yi güncelle".
Gizlilik: Eklediğiniz DS'in gerçek file-key, variableKey, componentKey değerleri repo'ya yazılmaz — hepsi size özel, gitignore'lu yerel dosyalardadır: .claude/design-systems/registry.local.md (DS kaydı) ve .claude/design-systems/<ds-name>/ altındaki yerel dokümanlar. v3.3+ live-first mimaride veriler her istekte Figma'dan canlı okunur; eski ~/.claude/data/fcm-ds/ cache dizini opsiyoneldir ve hiçbir zaman repoya girmez.
Multi-library DS: Ana-DS gibi birden fazla Figma dosyasından oluşan DS'ler desteklenir. /add-library ile ana + mobil + ikon + asset URL'lerini ayrı ayrı verebilirsiniz; active-ds.md Secondary Libraries tablosunda yönetilir.
Doğrulama: /ds-validate <ds-name> ile cache tutarlılığını denetleyin (v1.9.8+).
Neler yapabilirsiniz?
AI ile Figma arasında çift yönlü çalışırsınız:
Figma'dan AI'a — tasarımı oku, analiz et:
"Bu dosyadaki tüm bileşenleri listele"
"Button bileşeninin özelliklerini göster"
"Bu ekranın screenshot'ını al"
"Design token'larını çıkar"
AI'dan Figma'ya — tasarım oluştur, değiştir:
"Yeni bir frame oluştur, 375x812, mobile layout"
"Bu tasarımdan React kodu üret"
"Color token'larını toplu güncelle"
"Tüm ikonları SVG olarak export et"
Design-to-code köprüsü (v1.9.8):
"Seçili bileşen için tasarım bağlamını topla — component + token + Code Connect" →
figma_use intent=design_context"Bu sayfadaki tüm Code Connect eşlemelerini getir" →
figma_get_code_connect scanCurrentPage=true
Kalite kontrolü:
"Kontrast kontrolü yap (erişilebilirlik)"
"Koddaki token'larla Figma'daki token'ları karşılaştır"
"Responsive: Mobile, Tablet, Web versiyonlarını üret"
Prototip otomasyonu (v1.9.9+):
"Figma'daki ekranların prototip bağlantılarını yap"
"Login → Home → Register akışını SLIDE_IN animasyonla kur"
"Button hover state'i SMART_ANIMATE ile ayarla"
"Long content için vertical scroll + sticky header"
Otomatik navigasyon haritası (TR+EN button text heuristic), 9 trigger / 8 action / 9 transition tipi × 4 yön, ON_KEY_DOWN (keyCodes + device), overlay config, scroll behavior, flow starting point — Figma Prototype panel'inin tüm yetenekleri.
63 aracın tam listesi: TOOLS_FULL_LIST.md
Figma API Token (opsiyonel — ek özellikler)
F-MCP temel özellikleri token olmadan çalışır. Figma API token eklerseniz ek özellikler açılır:
Token olmadan | Token ile (ek) |
Tasarım okuma, bileşen arama | + Yorum okuma/yazma |
Frame/text oluşturma | + Versiyon geçmişi |
Variable/token yönetimi | + REST API görsel export |
SVG/PNG/PDF export | + Dosya bilgisi detayları |
Nasıl eklenir:
figma.com/developers → Personal Access Tokens → yeni token oluşturun
Figma'da plugin'i açın → Advanced → API Token alanına yapıştırın
Süre seçin (30/60/90 gün) → token otomatik kaydedilir
Token bilgisayarınızda kalır, internete gönderilmez.
Güncelleme
Claude Code'a şunu söyleyin:
"F-MCP'yi güncelle"
Claude gerisini halleder. Sonra Claude'u yeniden başlatın.
Detay: UPDATE.md
Sorun mu yaşıyorsunuz?
Sorun | Çözüm |
Plugin "no server" diyor | Önce AI aracını (Claude Desktop / Cursor / Claude Code) açın, sonra Figma'da plugin'i çalıştırın |
Plugin "connecting..." diyor | Bekleyin, otomatik bağlanır |
Yeni araçlar görünmüyor | AI aracını tamamen kapatıp tekrar açın |
DevTools console'da WebSocket hataları | v1.9.1+ ile server-side probe ile giderildi. Plugin hâlâ eski kodu cache'liyorsa: Figma → Plugins → Development → Manage plugins in development → Remove → Import plugin from manifest |
Daha fazla: TROUBLESHOOTING.md
Teknik detaylar
Ne yapar — Claude veya Cursor'dan Figma'ya ekran tasarlar, tasarım sistemini denetler, renk/yazı/boşluk token'larını yönetir, ekranlar arası prototip bağlantıları ve animasyonlar kurar (v1.9.9+), tasarımı koda hazırlar
Nerelerde çalışır — Claude Code, Cursor, Claude Desktop, Claude Web (kurulum rehberleri)
Nasıl çalışır — Her görev için kendi skill'i var (kural seti + örnek). Claude Code'da agent + sub-agent yapısı var: ana ajan görevi alır, alt-ajanlar izole çalışır — ana sohbet bağlamı yorulmaz. Cursor ve Claude Desktop'ta aynı skill'ler doğrudan yüklenir (sub-agent yok, tek kaynak 4 platformda)
3 orkestratör — DS denetimi, token senkronizasyonu, ekran üretimi için hazır uçtan uca akışlar (skill dizini)
Figma — Masaüstü ve tarayıcı, birden fazla AI aynı dosyaya aynı anda bağlanabilir
Gizlilik — Veriler bilgisayarınızdan çıkmaz, internet bağlantısı olmadan da kullanılabilir
Detay — 63 araç · 28 skill · Mimari · Kurumsal kullanım · Katkı rehberi
Güncel sürüm | 1.9.14 (CHANGELOG · Releases) — Contract Extractor (Component Set → design contract JSON) |
npm | |
Lisans | MIT — kişisel ve ticari kullanıma açık |
Sorun mu var? GitHub Issues
Available Tools
63 toolsfigma_add_modeCDestructive
Add a mode to a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| modeName | Yes | ||
| collectionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint: true, so the tool is known to be destructive. The description adds no further behavioral context (e.g., what gets destroyed, authorization needs, or 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 a single sentence, which is concise. However, it lacks structure (no front-loading of key info or use of additional sentences to clarify 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 destructive annotation, the description should explain implications (e.g., whether adding a mode is irreversible). No output schema exists, so return value expectations are missing. Incomplete for a mutation tool.
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% (no parameter descriptions). The description does not explain the meaning, format, or constraints of collectionId or modeName beyond their 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?
The description 'Add a mode to a collection' clearly states the action and target resource. It distinguishes from siblings like figma_create_variable_collection and figma_rename_mode, though it lacks details about what a mode is in this 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?
No guidance on when to use this tool versus alternatives (e.g., figma_rename_mode). No prerequisites (e.g., collection must exist) or exclusion conditions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_arrange_component_setADestructive
Combine multiple component nodes into one Figma component set (combineAsVariants). Params: nodeIds (array of at least 2 component node IDs). Returns new component set nodeId.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's burden is reduced. However, it does not clarify that original nodes are replaced or that the operation is irreversible beyond the annotation. Returns a nodeId but no detail on 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?
Extremely concise: one sentence for purpose, one for params, no redundancy. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema hint, the description covers the essential use. Could mention where the new component set is created, but not critical given low complexity.
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%, so description must compensate. It adds that nodeIds should be 'component node IDs' (not generic strings) and requires at least 2, providing meaning beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: combining multiple component nodes into a Figma component set, using the action 'combineAsVariants'. This is specific and differentiates it from sibling tools.
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 alternatives. While parameter constraints are mentioned, there is no explicit context for when to choose this over other component-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_batch_create_variablesADestructive
Create up to 100 variables in one call. Each item: collectionId, name, resolvedType (COLOR/FLOAT/STRING/BOOLEAN), value, modeId. Returns created and failed lists.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. The description adds return format (created and failed lists) and max 100 items, enhancing transparency beyond 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?
Two sentences: first states purpose and limit, second lists fields and return. No wasted words.
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?
Covers main functionality and return, but missing details on value formats per type and atomicity/partial failure behavior.
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 coverage, description lists key fields but does not explain value format per resolvedType (e.g., RGBA for COLOR, number for FLOAT) or the optional valuesByMode.
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 creates up to 100 variables in one call, lists required fields (collectionId, name, resolvedType, value, modeId), and distinguishes from siblings like figma_create_variable and figma_batch_update_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 description implies use for batch creation, but does not explicitly state when to use over alternatives (e.g., figma_create_variable for single variable) or when not to use (e.g., for updates).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_batch_update_variablesADestructive
Update up to 100 variables. Each item: variableId, modeId, value. Returns updated and failed lists.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, so the description correctly signals a write operation. It adds that up to 100 variables can be updated and that the response includes success/failure lists. No contradictions. Could mention behavior on errors.
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?
Two concise sentences with no redundancy. Immediately states capacity and item structure, then return format. Highly 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?
With one parameter (items array) and no output schema, the description covers usage and return format. Missing details like default modeId or validation rules, but adequate for a batch update tool.
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%, so the description must compensate. It explains each item's structure (variableId, modeId, value) but does not define what these IDs refer to or how to obtain them. Medium helpfulness.
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 updates variables in batch, specifies the components of each item (variableId, modeId, value), and mentions return behavior (lists of updated and failed). This distinguishes it from single-update sibling figma_update_variable and batch-create sibling figma_batch_create_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 description implies batch use for multiple variables but does not explicitly state when to use this tool versus figma_update_variable, nor does it provide prerequisites or exclusions. More guidance would help an agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_bind_variableADestructive
Import a library variable by key and bind it to a node property. For colors: binds to fills or strokes via setBoundVariableForPaint. For spacing/sizing: binds via setBoundVariable (paddingLeft, itemSpacing, cornerRadius, etc.). Get variableKey from figma_get_library_variables. The node's fill/spacing will dynamically update when the DS token changes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node ID | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| property | Yes | Node property to bind the variable to | |
| paintIndex | No | For fills/strokes: which paint index (default 0) | |
| variableKey | Yes | Variable import key from figma_get_library_variables |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already indicates destructiveHint: true, and the description adds value by disclosing internal methods (setBoundVariableForPaint, setBoundVariable) and explaining the dynamic update behavior when the design token changes. This goes beyond the annotation.
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 concise (3 sentences) and front-loaded with the main action. Each sentence adds essential information without redundancy. It efficiently covers the primary behavior, categories, prerequisite, and outcome.
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 moderate complexity and absence of an output schema, the description adequately covers the binding behavior, property categories, and dynamic updates. It could be improved by addressing error cases (e.g., invalid variable key) but overall is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 100%, the description adds limited new meaning beyond the schema. It provides context for property categories (colors vs spacing) and references the prerequisite, but the core parameter semantics are fully covered by 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 ('import a library variable by key and bind it to a node property') and specifies the resource (node property). It distinguishes from sibling tools like figma_get_library_variables by explaining the prerequisite and from other variable manipulators by focusing on binding to properties.
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 mentions a prerequisite ('Get variableKey from figma_get_library_variables') but does not provide explicit guidance on when to use this tool versus alternatives (e.g., figma_update_variable or directly setting properties). It implicitly suggests usage for binding design tokens to node properties, but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_capture_screenshotARead-only
v1.9.5: 4 returnMode ile screenshot. Default 'file' (dosyaya yazar, base64 context'te YOK). 'summary' screenshot çekmeden metadata özeti (planlama için), 'regions' büyük ekranları children/slices olarak parçalar, 'base64' eski davranış (opt-in, ~30K token maliyetli). Context-aware fallback: >%80 context kullanımında base64/file → summary'ye otomatik düşer. Karar ağacı: planlama→summary, teslimat→file, scroll'lu ekran→regions, son çare→base64.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| format | No | JPG | |
| nodeId | No | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| maxRegions | No | returnMode='regions' için: maks region sayısı. | |
| returnMode | No | v1.9.5 method: 'file' (default, disk + filePath), 'base64' (legacy, context'e dahil), 'summary' (metadata-only, screenshotsuz), 'regions' (parçalı — children veya slices). | file |
| jpegQuality | No | JPEG quality 30-100. Ignored when format=PNG. | |
| sliceHeight | No | regionStrategy='slices' için slice yüksekliği (px). | |
| regionStrategy | No | returnMode='regions' için: 'children' = node'un top-level child'ları ayrı ayrı, 'slices' = dikey slice'lar. | children |
| requestedSlices | No | regionStrategy='slices' için spesifik slice index'leri (örn: [0,2] → sadece 1. ve 3. slice). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true, which is consistent with taking screenshots. The description details behavioral traits like token cost for base64 (~30K tokens), automatic fallback to summary when context usage >80%, and region splitting strategies (children vs slices). This goes well beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core concept. However, it mixes English and Turkish (e.g., 'dosyaya yazar, base64 context'te YOK') which may reduce clarity for non-Turkish agents. Still, every sentence provides value and it's structured logically.
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 11 parameters, no output schema, and only readOnlyHint annotation, the description comprehensively covers all modes, fallback behavior, region strategies, and parameter details. It is sufficient for an agent to correctly invoke the tool without additional context.
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?
Despite 73% schema description coverage, the description adds crucial context for parameters like returnMode (explains each enum value beyond the schema description), regionStrategy (distinguishes children vs slices), and parameters like maxRegions, sliceHeight, requestedSlices—all clarified with concrete usage. The decision tree and token cost info are additive.
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 defines the tool as a screenshot capture tool with 4 return modes, distinguishing each mode's purpose. It goes beyond just stating the name by providing specific use contexts (planning, delivery, scroll screens) and contrasts with siblings through explicit mode selection guidance.
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 an explicit decision tree (planning→summary, delivery→file, scroll→regions, last resort→base64) and mentions context-aware fallback when context usage is high. This gives clear when-to-use and when-not-to-use guidance, fully addressing usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_check_design_parityARead-only
Compare Figma design tokens (variables + styles) with code-side tokens. Critical for design-code gap analysis. Returns matching, inFigmaOnly, inCodeOnly, and divergent (same name, different value). Optional codeTokens: JSON string of expected tokens, e.g. {"primary": "#0066cc", "spacing.md": 16} or {"primary": {"value": "#0066cc"}}.
| Name | Required | Description | Default |
|---|---|---|---|
| codeTokens | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only; the description adds context about the output categories and the optional parameter, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an example, directly stating purpose and parameters without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential aspects: what the tool does, the optional parameter format, and the return categories, making it complete despite the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description for the sole parameter, but the description provides a clear explanation and example of the expected JSON format, fully compensating.
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 compares Figma and code tokens and returns categorized differences, which distinguishes it from sibling tools that manage individual tokens or 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 description labels the tool as critical for design-code gap analysis, implying its use case, but does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_clear_consoleADestructive
Clear the plugin console log buffer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add behavioral context beyond the destructiveHint annotation. It does not explain irreversibility or side effects, but it does not contradict the annotation.
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 that is immediately understandable. It is front-loaded and uses no unnecessary words.
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 sufficiently explains the tool's purpose. It could mention return value or confirmation, but it is not strictly necessary.
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 the schema coverage is 100%. The description adds no parameter information, but none 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 clearly states the action 'clear' and the resource 'console log buffer'. It is distinct from sibling tools like figma_get_console_logs and figma_watch_console.
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 information is provided about when to use this tool or when to avoid it. No alternatives or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_clear_rest_tokenA
Clear the stored Figma REST API token from memory.
| 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 bears full burden. It mentions clearing from memory but omits side effects like impact on future API calls, reversibility, or required permissions.
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 superfluous information, making it easy to parse quickly.
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 simplicity (no parameters, no output schema), the description adequately covers its purpose. However, a brief note on consequences 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?
With 0 parameters, the input schema inherently provides full coverage. The description adds minimal value beyond the schema, which is acceptable for parameter-free tools.
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 ('Clear the stored Figma REST API token from memory') with a specific verb and resource. It distinguishes from sibling tools like figma_set_rest_token and figma_get_rest_token_status.
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, such as when clearing before setting a new token or implications of clearing authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_clone_screen_to_deviceADestructive
⚠️ NARROW USE CASE — Device migration ONLY. Clone a Figma screen to a target device dimension, preserving library instances, bound variables, and auto-layout. USE ONLY WHEN: same design system + same layout structure + only screen size changes. DO NOT USE FOR: creating alternatives, variations, or new designs — these REQUIRE building from scratch with figma_execute following the generate-figma-screen SKILL Step 5 pattern (search_assets → instantiate_component → setBoundVariable → auto-layout FILL). Clone copies benchmark's EXISTING mistakes (hardcoded rectangles, missing token bindings, non-responsive layouts). Benchmark is INSPIRATION, not a copy source for variations. If the user says 'alternatif', 'varyasyon', 'farklı', 'yeni', 'tasarla' — USE figma_execute + Step 5, NOT this tool. Device presets: iPhone 17, iPhone 16 Pro Max, Android Compact, iPad Pro 11, Desktop, and more. Custom: 'WxH' format.
| Name | Required | Description | Default |
|---|---|---|---|
| fileKey | No | Target a specific connected file. | |
| newName | No | Name for the cloned screen (default: source name + device suffix) | |
| figmaUrl | No | Figma file URL for routing. | |
| position | No | Explicit position for the clone (default: auto-placed right of source) | |
| sourceNodeId | Yes | Node ID of the source screen to clone (e.g. '139:3407') | |
| targetDevice | Yes | Device preset name (e.g. 'iPhone 17', 'Android Compact') or custom 'WxH' (e.g. '1200x800') | |
| targetParentId | No | Parent node to place the clone under (default: current page) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns that cloning copies existing mistakes (hardcoded rectangles, missing token bindings, non-responsive layouts), adding behavioral insight beyond the annotations (destructiveHint: true). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but somewhat lengthy. However, it is well-structured with a warning prefix, bullet-point-like conditions, and clear sections. Every sentence serves a purpose.
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 7 parameters, no output schema, and only destructiveHint annotation, the description covers the critical use case, exclusions, and important behavioral notes. It could mention return behavior but is adequate for 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 is 100% with good parameter descriptions. The tool description adds value by listing device presets and explaining targetDevice format, slightly improving clarity 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 explicitly states the narrow use case: 'Device migration ONLY' to clone a Figma screen to a target device dimension, preserving library instances, bound variables, and auto-layout. It clearly distinguishes from figma_execute for creating alternatives, variations, or new designs.
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?
Provides explicit conditions: 'USE ONLY WHEN: same design system + same layout structure + only screen size changes.' Specifies when NOT to use and directs to figma_execute + Step 5 for other cases, including specific keywords like 'alternatif', 'varyasyon', etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_frameA
Create a new frame node with optional auto-layout. Returns the created node ID. v1.8.0: defaults to layoutMode='VERTICAL' with paddingTop/Bottom=16, paddingLeft/Right=16, itemSpacing=12, primaryAxisSizingMode='AUTO', counterAxisSizingMode='AUTO'. Pass layoutMode='NONE' for legacy free-form frames.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X position. If omitted, auto-positions to the right of existing content | |
| y | No | ||
| name | No | Frame name | Frame |
| width | No | ||
| height | No | ||
| parentId | No | Parent node ID (default: current page) | |
| fillColor | No | Hex color e.g. '#ffffff'. DEPRECATED — prefer fillVariableKey for DS token binding (v1.8.1+). | |
| layoutMode | No | Auto-layout direction. VERTICAL by default; pass 'NONE' for free-form frames. | VERTICAL |
| layoutWrap | No | Wrap children when they exceed primary axis | |
| paddingTop | No | ||
| itemSpacing | No | Gap between auto-layout children | |
| paddingLeft | No | ||
| cornerRadius | No | Hardcoded corner radius in px. DEPRECATED — prefer cornerRadiusVariableKey. | |
| paddingRight | No | ||
| paddingBottom | No | ||
| fillVariableKey | No | DS variable key for fill binding (from figma_get_library_variables). Takes precedence over fillColor. | |
| paddingVariableKey | No | DS spacing variable key — applies to all 4 paddings via setBoundVariable. | |
| counterAxisAlignItems | No | Cross-axis alignment | |
| counterAxisSizingMode | No | AUTO | |
| primaryAxisAlignItems | No | Main-axis alignment (MIN=top/left, MAX=bottom/right) | |
| primaryAxisSizingMode | No | AUTO = hug contents, FIXED = use width/height | AUTO |
| itemSpacingVariableKey | No | DS spacing variable key for itemSpacing via setBoundVariable. | |
| cornerRadiusVariableKey | No | DS radius variable key for cornerRadius via setBoundVariable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully cover behavioral aspects. It mentions auto-layout defaults and return value, but does not disclose idempotency, side effects, error conditions, or permissions. The version note is helpful but insufficient for complete transparency.
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 concise: two sentences front-loaded with the core purpose. The version note is appended. No unnecessary words, but could be slightly better structured by separating version info into a note.
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 no output schema and no annotations, the description must compensate. It covers core functionality and key defaults but lacks guidance on prerequisites (e.g., parentId context), error handling, and the many variable-related parameters. For a 23-parameter tool, this is incomplete.
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 65%, meaning many parameters already have descriptions. The description adds overall context about defaults and versioning but does not elaborate on each parameter beyond what the schema already provides. It partially compensates for uncovered parameters by giving examples but not fully.
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 'Create a new frame node with optional auto-layout. Returns the created node ID.' This is a specific verb+resource combination that distinguishes it from sibling tools like figma_create_rectangle or figma_create_text. The mention of auto-layout and return value adds clarity.
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 version-specific defaults and mentions auto-layout vs legacy, but does not explicitly guide when to use this tool over alternatives (e.g., when to create a frame vs a group or rectangle). No direct comparison or 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_groupB
Group existing nodes into a new group. Provide node IDs to group.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Group | |
| nodeIds | Yes | Array of node IDs to group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits beyond the obvious creation. Missing details about side effects (e.g., node removal from original parent, positioning) or mutability.
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?
Two concise sentences with no filler. The core purpose is 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 simple tool with two parameters and no output schema, the description is adequate but lacks information about return values or how the group is created (e.g., location, parent). More context would help the agent understand 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?
Schema coverage is 50%; the description adds value for nodeIds ('Provide node IDs to group') but not for name parameter. It does not fully compensate for the coverage 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 (group) and the resource (existing nodes), using specific verbs and nouns. It distinguishes from sibling tools like creating frames or rectangles.
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 alternatives (e.g., figma_create_frame, figma_arrange_component_set). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_interactionB
Create a variant state-change interaction on an INSTANCE/variant node (hover/press/focus -> variant). Uses reactions API with navigation: CHANGE_TO. Target variant resolved by id or name within the same COMPONENT_SET. Uses getMainComponentAsync for deprecation-safe main component access. v1 supports INSTANT/DISSOLVE/SMART_ANIMATE transitions (DirectionalTransition not applicable to variants).
| Name | Required | Description | Default |
|---|---|---|---|
| easing | No | EASE_IN | |
| nodeId | Yes | INSTANCE or variant node id. | |
| trigger | No | ON_HOVER | |
| duration | No | ||
| transitionType | No | SMART_ANIMATE inherently matches layers — no explicit matchLayers param needed (Figma schema rejects it). | SMART_ANIMATE |
| targetVariantId | No | ||
| targetVariantName | No | Variant name (e.g. 'State=Hover') — resolved within the source's COMPONENT_SET. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides key behavioral details: use of getMainComponentAsync for deprecation safety, schema constraint on SMART_ANIMATE (matchLayers not needed), and version limitations (v1, DirectionalTransition not applicable). It does not cover auth, rate limits, side effects like overwriting existing interactions, or return behavior.
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 concise at three sentences, front-loading the main purpose. Each sentence adds unique information (action, technical detail, version constraints) without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description covers the core functionality and some constraints but omits prerequisites (e.g., node must be part of a COMPONENT_SET), error handling, and what happens if no target variant is found. It is adequate for basic understanding but incomplete for full autonomy.
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 43%, so the description adds value: it clarifies targetVariantName resolution within COMPONENT_SET and explains the transitionType restriction. However, it does not elaborate on duration, easing, or trigger beyond schema basics. The description compensates moderately but not fully for the coverage 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 it creates a variant state-change interaction on INSTANCE/variant nodes, specifying the mechanism (reactions API, CHANGE_TO) and constraints (target within same COMPONENT_SET). It distinguishes itself from general interaction tools by focusing on variants, but does not explicitly contrast with sibling tools like figma_create_prototype_connection.
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 implies usage for variant interactions by specifying supported node types and transitions. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., figma_create_prototype_connection for screen-to-screen navigation) and does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_mini_dsADestructive
v1.9.7: Boş Figma dosyası için minimal Design System oluştur. Tek tool çağrısı ile 12 color variable + 8 sizing variable (spacing + radius) + 3 text style + Button/Input/Card component'leri kurar. Kullanıcı 'Blank File 4-option dialog'da (b) Mini DS seçerse çağır. Parametreler opsiyonel: primaryColor (default '#1464FF'), fontFamily (default 'Inter'), name (default 'Mini DS'), includeComponents (default true). Sonuç: { success, dsName, variableCollectionIds, textStyleIds, componentIds, summary } — sonrasında figma_execute ile ekran kurulabilir.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | DS name prefix. | Mini DS |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| fontFamily | No | Font family for text styles. Default Inter. | Inter |
| primaryColor | No | Primary brand color (hex). Default mavi. | #1464FF |
| includeComponents | No | Button/Input/Card component'lerini dahil et. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set destructiveHint: true, and the description aligns by describing creation of many elements in one call. It adds behavioral context by listing what is created (colors, text styles, components) and notes that it works on a blank file. It could be more explicit about overwriting behavior, but given the blank file context, it is sufficient.
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 concise, using 3 sentences to convey purpose, usage condition, parameters, and result. Every sentence earns its place, and the most critical information (what the tool does) is 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?
Given no output schema, the description provides a result structure ({ success, dsName, ... }) and suggests subsequent use of figma_execute. It explains the tool's role in a workflow. Could mention prerequisites (blank file) explicitly, but it is implied from the usage guideline.
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 100% with descriptions for all 6 parameters. The description reinforces defaults and meaning (e.g., primaryColor default, includeComponents effect) and adds result structure. While it adds some extra context, the schema already does adequate documentation, so score is baseline.
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 creates a minimal design system for an empty Figma file, listing exactly what it creates (12 color variables, 8 sizing variables, 3 text styles, and components). It is distinct from atomic siblings like figma_create_variable or figma_create_frame, making its macro-purpose unambiguous.
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 specifies usage context: when the user selects 'Mini DS' in a 'Blank File 4-option dialog'. It also mentions a follow-up with figma_execute. However, it does not explicitly state when not to use or compare to alternatives beyond one sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_prototype_connectionA
Create a prototype reaction between two nodes (source -> destination). Maps Figma Prototype panel: trigger (On click/hover/press/drag, After delay, Mouse events, Key/gamepad) + action (Navigate/Overlay/Swap/Back/Close/Change to/Scroll to/Open link) + transition type (Dissolve/Smart animate/Scroll animate/Move in-out/Push/Slide in-out) with direction (LEFT/RIGHT/TOP/BOTTOM) + easing + duration (ms, converted to seconds internally) + matchLayers (only on DirectionalTransition per Figma schema). Uses Figma Plugin API setReactionsAsync (reactions property is readonly in 2024+ API). v1 scope: SET_VARIABLE, SET_VARIABLE_MODE, UPDATE_MEDIA_RUNTIME, CONDITIONAL actions are NOT included (future release). Overlay background/close-on-outside are readonly in Plugin API — configure in Figma UI (Prototype tab -> Advanced -> Overlay).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Required when action=URL. | |
| action | No | BACK action: Figma transition param'ını IGNORE eder ve önceki NAVIGATE'in yönünü otomatik ters uygular (audit'te transition: null görünür, Present modda doğru animasyon oynar). | NAVIGATE |
| device | No | Input device for ON_KEY_DOWN. | KEYBOARD |
| easing | No | EASE_OUT | |
| replace | No | true: replace reactions array; false (default): append. | |
| timeout | No | Milliseconds — required when trigger=AFTER_TIMEOUT (default 1000). | |
| trigger | No | ON_CLICK | |
| duration | No | Transition duration in ms; converted to seconds for Plugin API. | |
| keyCodes | No | Required when trigger=ON_KEY_DOWN (e.g. [13]=Enter, [27]=Escape, [32]=Space). | |
| direction | No | Required for MOVE_IN/MOVE_OUT/PUSH/SLIDE_IN/SLIDE_OUT transitions. | |
| mouseDelay | No | Seconds — optional hold-delay for MOUSE_* triggers (e.g. 0.3 = 300ms hover before firing). | |
| matchLayers | No | DirectionalTransition only (SLIDE_IN/MOVE_IN/PUSH/...) — key is REQUIRED by Figma schema (always injected, value from this param). true = smart layer morph on top of directional transition. INVALID for SMART_ANIMATE (SimpleTransition rejects it). | |
| sourceNodeId | Yes | Source node id (FRAME/INSTANCE/COMPONENT/GROUP etc.) that will receive the reaction. | |
| transitionType | No | INSTANT -> transition: null (no Figma INSTANT type). Directional types (MOVE_IN/OUT, PUSH, SLIDE_IN/OUT) require 'direction'. | INSTANT |
| destinationNodeId | No | Destination FRAME id. Required for NAVIGATE/OVERLAY/SWAP/SCROLL_TO/CHANGE_TO; omitted for BACK/CLOSE/URL. | |
| preserveScrollPosition | No | ||
| overlayRelativePosition | No | OVERLAY action only — free overlay position. Requires destination frame's overlayPositionType=MANUAL (set in Figma UI). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden of disclosing behavioral traits. It covers API methods used (setReactionsAsync), readonly restrictions (reactions property, overlay background), internal conversions (ms to seconds), and specific mapping details (INSTANT maps to null, matchLayers always injected for directional transitions). This level of detail meets the highest standard.
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 dense paragraph, but every sentence adds value. It is front-loaded with the core purpose. While it could benefit from bullet points for readability, it avoids fluff and remains efficient given the parameter count.
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 high parameter count, the description covers scope limitations, API behavior, and mapping to Figma UI. It lacks explicit error handling or side effect info, but is otherwise thorough for a creation tool.
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 adds substantial meaning beyond the input schema. For example, it explains that BACK action ignores transition and auto-reverses direction, that INSTANT transition maps to null, and that matchLayers is invalid for SMART_ANIMATE. These insights are not derivable from the schema alone, and with 82% schema coverage, the description compensates well for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a prototype reaction between two nodes (source -> destination).' It maps to the Figma Prototype panel and enumerates trigger, action, and transition types, making the function highly specific and distinguishable from siblings. The explicit exclusion of certain actions (SET_VARIABLE, etc.) further clarifies scope.
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 implicit guidance on parameter requirements (e.g., direction for directional transitions, destinationNodeId for specific actions) and notes on limitation (readonly properties best configured in Figma UI). However, it does not explicitly state when to use this tool over siblings like figma_create_interaction, nor does it provide clear when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_rectangleC
Create a new rectangle node on the current page.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| name | No | Rectangle | |
| width | No | ||
| height | No | ||
| parentId | No | ||
| fillColor | No | Hex color | #cccccc |
| cornerRadius | No | Corner radius |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full weight but only states 'create' (mutation) without disclosing side effects, required permissions, or behavior like whether the rectangle is selected after creation. It adds minimal behavioral context beyond the obvious.
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?
A single, front-loaded sentence that delivers the core purpose without extraneous words. Every word earns its place.
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?
Despite having 8 parameters and no output schema or annotations, the description provides no information about return values, default behavior, error conditions, or interactions with the Figma page. It is severely incomplete for an agent to use 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?
Schema description coverage is only 25% (only fillColor has a description). The description does not explain any parameters, defaults, or their relationships, leaving agents to infer meanings from schema 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 clearly states 'Create a new rectangle node on the current page,' specifying the action (create), resource (rectangle node), and location (current page). This distinguishes it from sibling tools like figma_create_frame or figma_create_text.
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 like figma_create_frame or figma_create_text. There is no mention of prerequisites, context, or scenarios where this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_textA
Create a new text node on the current page. Returns the created node ID. IMPORTANT: fontFamily defaults to 'Inter' — if using a design system with a custom font (e.g. 'YourBrandFont'), specify the DS font from active-ds.md. For DS text with proper token binding, prefer figma_execute with importStyleByKeyAsync + setTextStyleIdAsync instead.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| name | No | Node name (default: text content) | |
| text | Yes | Text content | |
| fontSize | No | ||
| parentId | No | Parent node ID | |
| fillColor | No | Text color hex e.g. '#000000' | |
| fontStyle | No | Regular | |
| fontFamily | No | Font family — defaults to Inter. Specify DS font from active-ds.md if using a design system. | Inter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the default fontFamily, return value, and suggests an alternative for DS text, which adds behavioral context beyond the basic action. However, it does not cover other important behaviors such as side effects (e.g., selection changes), permissions required, or error handling. Without annotations, more behavioral detail would be beneficial.
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 concise with four sentences, each serving a purpose: stating the action and return, highlighting an important default, and providing an alternative. No redundant information, well 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?
Given the tool has 9 parameters, no output schema, and no annotations, the description covers the primary use case and important caveats but lacks details on many parameters and return format. It is adequate for basic usage but not comprehensive for all scenarios.
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 adds meaningful context for the fontFamily parameter by emphasizing its default and relation to design system fonts, and it hints at parentId by mentioning 'current page'. However, with only 56% schema coverage, the description does not compensate for undocumented parameters like x, y, fontSize, fillColor, and fontStyle, leaving significant gaps.
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 creates a new text node on the current page and returns the node ID. It differentiates from sibling tools like figma_create_frame and figma_create_rectangle by specifying the text node creation, and it explicitly mentions an alternative (figma_execute) for design system text with token binding, which further distinguishes its intended use.
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 explicit guidance on when to use this tool (creating simple text nodes) and when to use an alternative ('For DS text with proper token binding, prefer figma_execute...'). It also advises to specify the DS font from active-ds.md when using a design system, offering clear context for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_variableADestructive
Create a variable in a collection. Get collectionId from figma_get_variables.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| options | No | ||
| collectionId | Yes | ||
| resolvedType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint=true, alerting the agent to creation. The description adds no further behavioral details (e.g., error handling, idempotency, or permissions), so it meets the baseline but provides no extra value.
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 short (two sentences) and front-loaded, but the brevity sacrifices necessary detail. It is concise but not optimally informative.
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 has 4 parameters, one nested object, and no output schema, the description is too sparse. It lacks explanation of parameter semantics, return values, and usage context, leaving significant gaps for 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?
The schema description coverage is 0%, meaning no parameter descriptions exist in the schema. The description only mentions collectionId indirectly; it does not explain name, resolvedType, or options. This is insufficient for a 4-parameter tool.
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 explicitly states 'Create a variable in a collection,' clearly identifying the verb and resource. It also hints at how to obtain the collectionId, which distinguishes it from sibling tools like figma_create_variable_collection.
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 a specific usage hint ('Get collectionId from figma_get_variables') but does not explicitly state when to avoid this tool or mention alternatives like figma_batch_create_variables. However, the context is clear for a single variable creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_create_variable_collectionCDestructive
Create a variable collection.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint:true suggests the tool may modify or delete data, but the description merely says 'Create', which is typically additive. The description does not explain the destructive behavior, such as whether creation overwrites existing collections or affects other data. This leaves ambiguity.
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, making it concise. However, it sacrifices essential information, resulting in an under-specified tool definition that fails to provide adequate guidance.
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 presence of sibling tools and lack of output schema, the description is incomplete. It does not explain what a variable collection is, its relationship to variables, or the outcome of creation. The agent is left without enough context 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?
The input schema has 2 parameters (name, options) with 0% description coverage. The description does not explain what 'name' represents or what 'options' can contain. For a creation tool, this is insufficient; the agent cannot determine how to populate the parameters.
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 'Create' and the resource 'variable collection', matching the tool name. However, it does not differentiate from sibling tools like figma_create_variable or figma_batch_create_variables, leaving ambiguity about what a variable collection is.
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 such as figma_create_variable or when not to use it. No context about prerequisites or suitability is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_delete_variableCDestructive
Delete a variable.
| Name | Required | Description | Default |
|---|---|---|---|
| variableId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true, so description 'Delete a variable.' adds no new behavioral information. Missing details like whether deletion is reversible or what happens to variable references.
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, efficient and to the point. No unnecessary words, though some added context could be beneficial without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description is minimal but lacks essential context like irreversibility, prerequisite variable existence, or relationship to collections. The agent may proceed with incomplete understanding.
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%, yet description adds no explanation for the 'variableId' parameter. The parameter name is somewhat self-explanatory, but no format or source guidance is given, making it hard for the agent to know how to obtain a valid ID.
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 'Delete a variable.' clearly states the action and resource, and distinguishes from sibling tools like 'create_variable' or 'rename_variable'. However, it lacks specificity about what a variable refers to in Figma 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?
No guidance on when to use this tool versus alternatives. For example, it doesn't mention that variables belong to collections or when to use 'delete_variable_collection' instead. Agent must infer usage from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_delete_variable_collectionCDestructive
Delete a variable collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collectionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, so the agent knows it's destructive. However, the description adds no additional behavioral details (e.g., irreversibility, side effects on contained variables, error conditions). It merely restates the action.
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?
A single sentence with no unnecessary words, but it borders on underspecification. Concise yet lacking essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool, the description is incomplete: no mention of behavior, side effects, or expected input format. Even with annotations, the agent lacks guidance on safe usage.
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% (no description on collectionId). The description provides zero parameter information—no format, example, or constraints—leaving the agent to guess the required input.
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?
Clearly states it deletes a variable collection, distinguishing from sibling tools like figma_delete_variable (deletes a variable) and figma_create_variable_collection (creates). The verb-resource pair is specific and unambiguous.
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. alternatives, or any prerequisites (e.g., collection must exist, cannot delete if in use). The agent receives no context for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_enumerate_library_componentsARead-only
LIVE enumerate every published COMPONENT and COMPONENT_SET in a library Figma file. REQUIRES the library file to be open in FMCP plugin (see figma_list_connected_files). Returns items: [{name, key, kind, props, parent}]. Kind is authoritative — use importComponentSetByKeyAsync for COMPONENT_SET, importComponentByKeyAsync for COMPONENT. v3.2+ RECOMMENDED path — zero local cache dependency, always fresh as Figma updates. For multi-library DS (e.g. main DS + mobile DS + icons), call once per library file.
| Name | Required | Description | Default |
|---|---|---|---|
| libraryName | No | Match a connected file by name substring (case-insensitive, e.g. 'Mobil' matches '❖ My-DS Mobil'). | |
| libraryFileKey | No | Direct file key (e.g. from figma_list_connected_files). Takes precedence over libraryName. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds that it is 'LIVE', 'always fresh', and 'zero local cache dependency', providing useful behavioral context beyond the annotations. However, it does not discuss performance, error scenarios, or rate limits.
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 paragraph but well-structured: action statement, prerequisite, return format, parameter tips, and usage scenario. It is concise with no superfluous information, though could benefit from bullet points for 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?
Given no output schema, the description adequately describes return items and fields. It covers prerequisites and multi-library usage. Absence of pagination or limit info is acceptable for a live enumeration tool. Overall, it provides sufficient context for agent 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?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the parameter matching behavior and references figma_list_connected_files for context, but does not add significant new information beyond the 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?
Clearly states it enumerates all published components and component sets from a library Figma file. Specifies return format and distinguishes between component and component set kinds. However, it does not explicitly differentiate from the sibling tool 'figma_enumerate_published_components', leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite: library file must be open in FMCP plugin, and references figma_list_connected_files for setup. Offers guidance on using libraryName vs libraryFileKey parameters and multi-library usage. Does not specify when NOT to use this tool or mention alternatives, but covers key usage context well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_enumerate_published_componentsARead-only
List published COMPONENT + COMPONENT_SET of a library via the Figma REST API. Works WITHOUT the library file being open in plugin — use when the DS library is subscribed in the target file but library tabs aren't open. Requires figma_set_rest_token (one-time). v3.4+ RESPONSE SHAPE: items are compact by default ({name, key, kind}) — descriptions stripped to keep responses <10KB. Pass filter to search by name substring; large libraries (1000+ components) REQUIRE filter to avoid context overflow.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items returned. Default 200. Hard cap 500 to prevent context overflow. | |
| filter | No | Substring filter on component name (case-insensitive). Use for libraries with many components (1000+): e.g. filter='button'. | |
| libraryFileKey | Yes | Library file key. Extract from URL: figma.com/design/<FILE_KEY>/... | |
| includeDescription | No | Include component description text (can be very long — 10KB+ per item). Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false. The description adds valuable context: response shape is compact by default, descriptions stripped to keep <10KB, and large libraries (1000+) require filter to avoid overflow. No contradictions.
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 paragraph, front-loaded with purpose, no wasted words. Every sentence adds value. Efficient and clear.
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?
Despite no output schema, the description explains response shape and version (v3.4+). Covers all key aspects: purpose, usage, parameters, limitations. Very complete for this tool.
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 100% with decent descriptions. The description adds extra meaning: explains limit hard cap (500), filter's substring nature, libraryFileKey extraction, and includeDescription warning about length. Adds 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 uses a specific verb ('List') and resource ('published COMPONENT + COMPONENT_SET of a library via the Figma REST API'), clearly distinguishing it from siblings like figma_enumerate_library_components. It also notes the tool works without the library file being open.
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?
Explicitly states when to use: when library is subscribed but tabs aren't open. Mentions prerequisite (figma_set_rest_token) and gives guidance for large libraries (use filter). Lacks explicit alternatives but still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_executeADestructive
Run JavaScript in the Figma plugin context. Full Plugin API available. Use fileKey or figmaUrl to target a specific file. v1.8.1+: Static analysis detects design-system discipline violations (hardcoded colors, missing token bindings, no-instance usage, hardcoded typography). SEVERE warnings are promoted to the top of the response as _designSystemViolations — Claude must read and self-correct. Also detects gotchas: FILL/ABSOLUTE before appendChild, sync API usage, missing loadFontAsync, sync currentPage assignment. For component instances: use setProperties({...}), NOT findAll(TEXT). v1.9.6+: Post-execute scan — eğer kod return { createdNodeIds: [...] } veya nodeIds/ids/frameId/rootId/nodeId döndürürse plugin oluşturulan node'ları otomatik tarar, unbound fill/padding/radius/text-style varsa response'a _POST_EXECUTE_SCAN_BLOCKING: true ve _postExecuteViolations alanı ekler. Bu flag varsa execute geçersiz sayılır — kodu düzelt (setBoundVariable/setTextStyleIdAsync ekle) ve tekrar çalıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| fileKey | No | Target a specific connected file. | |
| timeout | No | ||
| figmaUrl | No | Figma or FigJam file URL for routing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint: true. The description extensively discloses behavioral traits: static analysis for design-system violations (with SEVERE warnings promoted), gotchas (FILL/ABSOLUTE before appendChild, sync API usage, loadFontAsync), and post-execute scanning for unbound properties that can invalidate execution. This far exceeds the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured with version markers (v1.8.1+, v1.9.6+), bullet-like lists (gotchas), and clear separation of concerns (execution, static analysis, post-execute scan). A few sentences could be trimmed (e.g., Turkish text for post-execute scan) but overall efficient for the 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 tool's complexity (code execution, scanning, design-system checks), the description is remarkably complete. It covers version-specific behaviors, error handling (SEVERE warnings, POST_EXECUTE_SCAN_BLOCKING), and practical gotchas. No output schema exists, but the description explains expected response additions (_designSystemViolations, _postExecuteScanBlocking, etc.).
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% (2/4 params have descriptions: figmaUrl and fileKey). The description adds valuable context for code (main script), timeout (default 15000ms), and the interplay between fileKey and figmaUrl. It compensates for missing schema descriptions by explaining usage.
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 it runs JavaScript in Figma plugin context with full API access, using fileKey or figmaUrl to target files. It distinguishes from sibling tools (e.g., figma_create_frame, figma_get_variables) by its execution nature and unique side-effects like design-system violation detection.
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 explicit context: when to use (run JS), how to target (fileKey/figmaUrl), and key behaviors (static analysis, post-execute scan). However, it does not explicitly state when not to use the tool or compare it directly to alternatives like figma_plugin_diagnostics or figma_scan_ds_compliance, which might overlap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_export_nodesA
Export one or multiple nodes as SVG, PNG, JPG, or PDF. Returns base64-encoded data for each node. Supports batch export (up to 50 nodes). No REST API token needed — uses plugin exportAsync. SVG preserves vectors; PNG/JPG are rasterized at configurable scale. v1.8.0: default scale=1 for context safety (was 2). Override for high-DPI exports.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Scale factor (0.5-4, default 1) | |
| format | No | Export format | PNG |
| nodeIds | Yes | Node IDs to export (1-50) | |
| svgIncludeId | No | SVG: include node IDs in attributes | |
| svgOutlineText | No | SVG: render text as outlines (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses return format (base64), format-specific behavior (SVG preserves vectors, PNG/JPG rasterize), and scale version change (v1.8.0 default scale=1 for safety). It could mention if any side effects occur, but as an export tool, it is likely 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?
The description is concise, consisting of 4 sentences front-loaded with the main action. Each sentence adds distinct information (formats, batching, authentication, format details, version history) 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 the tool's complexity (5 parameters, 1 required) and no output schema, the description covers key aspects: formats, batch, scale, version note, and return type (base64). It omits error handling or performance details, but for an export tool the information is sufficient.
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 100% but description adds significant value: explains format differences, batch limit (max 50), default scale reasoning (context safety override), and SVG-specific parameters (outline text, include id). This enriches understanding beyond schema names and 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 exports nodes in SVG, PNG, JPG, or PDF formats, returns base64 data, and supports batch export up to 50 nodes. It uniquely identifies the tool's purpose among siblings, which include creation, modification, and retrieval tools but no other export tool.
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 indicates when to use the tool (exporting nodes) and provides context like 'no REST API token needed' and 'uses plugin exportAsync'. It does not explicitly state when not to use it, but given no sibling tools offer similar functionality, the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_extract_contractARead-only
Extract a complete design contract JSON spec from a COMPONENT_SET (or a COMPONENT/INSTANCE inside one). Reads props (componentPropertyDefinitions with boolean-like variant + state normalization), anatomy (default variant tree with token bindings mapped to CSS properties), variantOverrides (token diffs of every variant value vs the default variant), resolvedTokens (per-mode values with alias chains), baseSpecs (raw measurements) and a11y contrast pairs (WCAG AA/AAA per mode). nodeId omitted → current Figma selection. DS-agnostic; no REST API. Returns { success, contract, report } — contract status is 'draft', anchors.code needs manual verification. Use for design-to-code handoff, DS documentation, or as the source of truth for component codegen.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | COMPONENT_SET / COMPONENT / INSTANCE node ID. Omit to use the current selection. | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| importPathTemplate | No | anchors.code.importPath template; {Name} → PascalCase component name. Default '@ds/components/{Name}'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns with that by saying 'Reads' and 'no REST API', so no contradiction. It adds significant behavioral context: the tool falls back to the current Figma selection when nodeId is omitted, returns a structured { success, contract, report } object, and flags that the contract status is 'draft' with anchors.code requiring manual verification. These details go well beyond the annotation and are crucial for correct invocation and interpretation.
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 dense paragraph of about 80 words, but every sentence contributes value: it lists the extracted data, the selection fallback, the return shape, the draft status, and the use cases. It is front-loaded with the core purpose ('Extract a complete design contract JSON spec'). For a tool of this complexity, the length is appropriate, though it could be slightly more scannable with bullet points.
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 tool is complex with no output schema, yet the description covers the key aspects: the input node type, the data sections included, the top-level return shape, the contract status caveat, and the intended use cases. It does not describe the internal structure of each section (e.g., anatomy), but the enumerated list of sections gives an agent enough to know what to expect. Given the read-only annotation and the rich description, it is quite complete but not exhaustive.
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 the baseline is 3. The description adds extra meaning for one parameter by explicitly stating 'nodeId omitted → current Figma selection', which clarifies the optionality and behavior beyond the schema description. It also mentions the importPathTemplate default indirectly via 'anchors.code.importPath template', but that is already in the schema. Overall, it provides meaningful augmentation, justifying a 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 clearly states a specific verb ('Extract') and a precise resource ('a complete design contract JSON spec from a COMPONENT_SET'). It enumerates the exact data read (props, anatomy, variantOverrides, resolvedTokens, baseSpecs, a11y pairs), which distinguishes it from sibling tools like figma_get_component_for_development or figma_get_design_context. The mention of 'DS-agnostic; no REST API' further differentiates it from figma_rest_api.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides use cases: 'design-to-code handoff, DS documentation, or as the source of truth for component codegen.' This gives clear context for when to employ the tool. It does not explicitly name alternative tools to use instead for other scenarios, but the use-case framing is sufficiently informative for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_code_connectARead-only
Get Code Connect hints for components/instances: documentationLinks, componentKey, name, description. Pass nodeIds for specific nodes, or scanCurrentPage=true to scan the current page for COMPONENT/COMPONENT_SET/INSTANCE nodes. Note: Full Code Connect source map lives in figma.config / Figma CLI; this tool returns plugin-accessible hints only. Use Figma's official MCP get_code_connect_map for native repo paths.
| Name | Required | Description | Default |
|---|---|---|---|
| fileKey | No | Target a specific connected file. | |
| nodeIds | No | Explicit node IDs to inspect. | |
| figmaUrl | No | Figma file URL for routing. | |
| maxNodes | No | Cap for current-page scan (default 40, max 120). | |
| scanCurrentPage | No | Scan COMPONENT/COMPONENT_SET/INSTANCE on current page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with 'get' operation. Description adds beyond annotations: notes that only plugin-accessible hints are returned, not the full source map. Discloses limitation clearly. No contradiction.
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?
Two concise sentences plus a short note. Front-loads key information: what it returns and alternatives. Every sentence adds value. No 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, description sufficiently covers return fields (documentationLinks, componentKey, name, description). Explains both usage modes (nodeIds vs scanCurrentPage). With 5 parameters and no output schema, the description is complete and leaves no ambiguity.
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 100% with explicit descriptions, but description adds value: explains scanCurrentPage scans for COMPONENT/COMPONENT_SET/INSTANCE nodes and mentions maxNodes default (40) and cap (120). Does not explain figmaUrl/fileKey beyond schema, but these are straightforward. Adds meaningful context.
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 returns Code Connect hints for components/instances, listing specific fields. It distinguishes itself from sibling tools like figma_get_component and mentions alternative sources (figma.config/CLI, official MCP). Verb+resource+scope is specific.
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?
Explicitly states when to use this tool (get hints) and what it does not cover (full source map). Provides alternative: 'Use Figma's official MCP get_code_connect_map for native repo paths.' Clear guidance on when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_componentARead-only
Get component metadata by node ID from the open Figma file. No REST API. Use fileKey or figmaUrl to target a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description confirms read behavior. Adds context with 'No REST API' indicating it's a local plugin call, but does not detail error handling or edge cases.
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?
Two sentences, front-loaded with purpose, no unnecessary words. Efficient and clear.
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 read-only annotations and simple purpose, the description covers targeting and basic usage. Lacks return format details but is complete enough for a straightforward tool.
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 67% (2 of 3 parameters described). Description adds context that figmaUrl and fileKey are for targeting, but nodeId (required) lacks schema description and relies on the description's implication.
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?
Clearly states verb (Get), resource (component metadata by node ID), and scope (from open Figma file). Distinguishes from siblings by noting 'No REST API' and targeting nuances.
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?
Provides context for when to use (get metadata by node ID) and targeting options (fileKey/figmaUrl), but lacks explicit when-not-to-use or comparison with similar siblings like figma_get_component_for_development or figma_get_component_image.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_component_for_developmentARead-only
Get component metadata plus base64 screenshot in one call. For design-to-code workflows. Defaults to JPG@1x q70 (v1.8.0 context-safe).
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| format | No | JPG | |
| nodeId | Yes | ||
| jpegQuality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds the default behavior specifics: 'Defaults to JPG@1x q70 (v1.8.0 context-safe).' This goes beyond annotations by disclosing default format, scale, quality, and version safety, fully informing the agent of the tool's behavior.
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 with two sentences. It front-loades the purpose and immediately provides key details. Every word earns its place, with no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema), the description covers the main purpose and default behavior. However, it could be more complete by briefly explaining the metadata fields or indicating the screenshot format details. Still, it is adequate for an agent to understand the core function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. The description provides default values for format, scale, and quality, but does not explain the meaning or usage of each parameter (e.g., nodeId, scale, format, jpegQuality). This adds some value but is insufficient to fully compensate for the lack of parameter 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 that the tool retrieves component metadata and a base64 screenshot in one call, specifying its use for design-to-code workflows. This distinguishes it from sibling tools like figma_get_component and figma_get_component_image, which handle these tasks separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'For design-to-code workflows,' providing clear context for when to use this tool. However, it does not explicitly mention when not to use it or list alternative tools, but the use case is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_component_imageBRead-only
Get screenshot of a node (component/frame). Returns base64 image. Defaults to JPG@1x q70 (v1.8.0 context-safe). Use fileKey or figmaUrl to target a specific file when multiple plugins are connected.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| format | No | JPG | |
| nodeId | Yes | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| jpegQuality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with description. Description adds value by disclosing default format, scale, and quality, which informs agent of expected behavior.
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?
Two concise sentences, front-loaded with purpose, followed by key default and targeting information. No unnecessary words.
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 6 parameters, no output schema, and low schema coverage, the description omits important details such as nodeId requirement, parameter constraints, and how the base64 output should be used. Incomplete for guiding correct 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?
Schema coverage is low (33%), but description only mentions fileKey and figmaUrl without detailing other parameters like nodeId (required) or scale/format. Defaults are stated but not explicitly linked to schema parameters.
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?
Clearly states 'Get screenshot of a node (component/frame)' with return type 'base64 image'. However, does not distinguish from sibling tool 'figma_capture_screenshot', which likely performs a similar function.
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?
Provides context on defaults (JPG@1x q70) and targeting specific files via fileKey or figmaUrl. Lacks explicit when-to-use or when-not-to-use guidance relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_console_logsARead-only
Get plugin console logs (log/warn/error) from the F-MCP plugin buffer. No CDP. Limit default 50. Use fileKey or figmaUrl to target a specific file when multiple plugins are connected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true. Description adds that it uses no CDP, default limit 50, and targeting options. No contradictions, and extra context provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding distinct value: purpose, technical note (No CDP), and usage details. No fluff, 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?
Adequate for a read-only fetch with no required params. Missing output format description since no output schema, but not critical. Overall complete for usage.
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 describes fileKey and figmaUrl, but description adds 'Limit default 50' and clarifies targeting for multiple plugins. Schema coverage 67%, but description compensates for limit parameter.
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 'Get plugin console logs (log/warn/error) from the F-MCP plugin buffer', specifying the verb, resource, and log types. It distinguishes from siblings like figma_clear_console and figma_watch_console.
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?
Provides guidance on when to use fileKey or figmaUrl for targeting specific files. However, it does not explicitly contrast with alternatives like figma_watch_console, though the purpose is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_design_contextARead-only
Design context for a node or whole file: structure + text, layout/visual/typography. Defaults to depth=1, verbosity='summary' for context safety. Pass depth/verbosity explicitly for deeper data. Cached 60s per session.
| Name | Required | Description | Default |
|---|---|---|---|
| debug | No | Bypass cache and include _responseGuard/_metrics fields. | |
| depth | No | ||
| nodeId | No | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL; fileKey and optional node-id are extracted for routing. | |
| verbosity | No | summary | |
| outputHint | No | ||
| includeLayout | No | ||
| includeVisual | No | ||
| includeCodeReady | No | ||
| excludeScreenshot | No | Reserved for future use; plugin currently does not embed screenshots in design_context. | |
| includeTypography | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures caching behavior (60s per session) and safe defaults. The debug parameter to bypass cache is mentioned. Annotations (readOnlyHint) are consistent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, defaults/safety, and explicit overrides + caching. Front-loaded with no wasted words.
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 12 parameters and no output schema, the description covers core purpose and key defaults but omits details on many optional parameters and the structure of the response. Incomplete for a full understanding.
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 low (33%). Description adds meaning for depth, verbosity, and caching, but many parameters (includeLayout, includeVisual, includeTypography, includeCodeReady, outputHint) remain unexplained. This partially compensates but not fully.
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 retrieves design context including structure, text, layout, visual, and typography for a node or whole file. It distinguishes from siblings specializing in specific data like components or file data.
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?
Provides guidance on default depth and verbosity for context safety, and recommends explicit overrides for deeper data. Caching info is also given. However, it lacks explicit when-not-to-use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_design_system_summaryARead-only
Get a compact overview: variable collection names and component counts. Minimal tokens. Use fileKey or figmaUrl to target a specific file. PRE-FLIGHT (v1.9.8+ MUTLAK): BEFORE calling, read .claude/design-systems/active-ds.md + ~/.claude/data/fcm-ds/active.md first. If DS identity is already known from state, DO NOT call this tool on an empty target file just to 'check DS existence' — use the cache.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| currentPageOnly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds that it is 'compact' and 'minimal tokens', which informs agent behavior. No contradictions. Could mention error cases or rate limits, but sufficient for a read-only 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?
Description is concise (around 50 words) and front-loaded with key action. Includes pre-flight and a negative usage case. Every sentence adds value, though formatting could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and usage guidance. Lacks explicit return format or effect description, but for a minimal read-only overview with no output schema, it is reasonably complete given low complexity.
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 50% (limit and currentPageOnly lack schema descriptions). Description clarifies fileKey and figmaUrl usage ('target a specific file'), but does not explain limit or currentPageOnly parameters, leaving gaps.
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 it provides a compact overview with specific content (variable collection names and component counts). Distinguishes from sibling tools by being a summary rather than detailed variable/component retrieval.
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?
Explicitly says when to target a specific file via fileKey/figmaUrl, and gives pre-flight instructions including reading specific files before calling. Also explicitly states when NOT to call (if DS identity known, use cache instead of empty target file).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_file_dataARead-only
Get file structure and document tree from the open Figma file. No REST API or token. Use fileKey or figmaUrl to target a specific file when multiple plugins are connected. Defaults to depth=1, verbosity='summary'. Cached 60s per session.
| Name | Required | Description | Default |
|---|---|---|---|
| debug | No | Bypass cache and include _responseGuard fields. | |
| depth | No | ||
| fileKey | No | Target a specific connected file. Use figma_list_connected_files to see available files. | |
| figmaUrl | No | Figma or FigJam file URL; fileKey is extracted from the link for routing. | |
| verbosity | No | summary | |
| outputHint | No | ||
| includeLayout | No | ||
| includeVisual | No | ||
| includeCodeReady | No | ||
| includeTypography | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the annotation (readOnlyHint=true), such as caching (60s per session) and default parameter values. It aligns with the annotation, reinforcing the non-destructive, read-only nature.
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 concise (4 sentences) and front-loads the main purpose. It efficiently covers key points without redundancy, though it could be slightly more structured with bullet points for defaults.
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 (10 parameters, no output schema), the description lacks details about the return format (document tree structure) and how parameters affect it. The caching behavior is mentioned, but the overall output shape is unclear.
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 only 30% schema coverage, the description partially compensates by explaining fileKey/figmaUrl and defaults for depth and verbosity. However, it omits explanations for the six boolean include parameters and outputHint, leaving gaps for the agent.
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 ('Get file structure and document tree'), specifies the resource ('the open Figma file'), and distinguishes it from sibling tools by highlighting its read-only nature and the use of fileKey/figmaUrl for multi-file scenarios.
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?
Provides guidance on when to use fileKey vs figmaUrl ('when multiple plugins are connected') and notes default values. However, it does not explicitly advise against using this tool in other contexts or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_library_variablesARead-only
List variables from team library collections with import keys. Uses figma.teamLibrary API — works in the TARGET file, no need to connect the DS source file. Returns variable name, key (for importVariableByKeyAsync), resolvedType, collection, and library name. Use the returned keys with figma_bind_variable or figma.variables.importVariableByKeyAsync() in figma_execute. PRE-FLIGHT (v1.9.8+ MUTLAK): BEFORE calling, read ~/.claude/data/fcm-ds//tokens.md cache first. If cache exists and <7 days old (per _meta.md), use cache directly — only call this tool on cache miss or stale.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 100) | |
| query | No | Filter variables by name (case-insensitive contains) | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| libraryName | No | Filter by library name (exact match, e.g. '❖ My-DS') | |
| collectionName | No | Filter by collection name (exact match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the API used (figma.teamLibrary), the scope (target file, no need to connect DS source), and the return fields (variable name, key, resolvedType, collection, library name). It also documents the pre-flight caching behavior, providing rich behavioral context.
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 fairly concise but packed with useful information, front-loaded with purpose, followed by usage guidance and caching instructions. Every sentence adds value, though it could be slightly more terse without losing meaning.
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, the description compensates by listing the return fields and explaining the caching flow. It provides complete guidance for a read-only list tool, covering what the tool returns and when to use it.
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 all parameters are already described in the schema. The description does not add new semantic information about parameters beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists variables from team library collections with import keys, using a specific API, and distinguishes it from sibling tools like figma_get_variables by emphasizing it works in the target file without needing the DS source file.
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?
Provides explicit guidance on when to use this tool (cache miss or stale) and when to use a cache instead, along with instructions on using the returned keys with other tools (figma_bind_variable, figma.variables.importVariableByKeyAsync). This clearly differentiates from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_prototype_connectionsARead-only
Read prototype reactions on a node subtree or the whole current page. Read-only audit — returns trigger, action, navigation, destinationId, transition, flowStartingPoints. Uses getReactionsAsync if available, falls back to node.reactions getter. At least one of nodeId or pageScope=true must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Scans this node and its descendants. | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| pageScope | No | true: scan the entire current page. Either nodeId or pageScope is required. | |
| includeFlowStartingPoints | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description reinforces 'Read-only audit'. It adds implementation details (getReactionsAsync, fallback) and lists returned fields, providing transparency beyond 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?
Four sentences, well-structured with purpose first. Every sentence adds value, though it could be slightly more concise. No wasted words.
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, the description lists the fields returned (trigger, action, etc.) and explains the two scanning methods. It is complete for a read-only audit tool.
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 80%, and the description adds meaning to the interplay between nodeId and pageScope, and clarifies the default for includeFlowStartingPoints. It adds value beyond the 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 it reads prototype reactions on a node subtree or the whole current page, using specific verbs like 'Read' and 'returns'. It distinguishes from siblings like figma_create_prototype_connection, which creates connections.
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 explains when to use nodeId vs pageScope, and that at least one is required. It provides clear context for usage but does not explicitly state when not to use this tool or compare to alternatives beyond the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_rest_token_statusARead-only
Check if a Figma REST API token is set and view rate limit usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, covering the safety profile. The description adds context about checking token status and rate limits but does not disclose details like response format or error behavior. Minimal added value beyond 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?
Single sentence, front-loaded with the verb and resource, zero wasted words. Highly concise and structured effectively.
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 and high schema coverage, the description is adequate but does not specify what exactly is returned (e.g., boolean for token set status, rate limit numbers). With no output schema, this gap reduces 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?
No parameters exist, so baseline 4 applies. The description is sufficient as there are no parameter semantics to supplement.
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 specific verbs 'Check' and 'view' with clear resources 'Figma REST API token status' and 'rate limit usage'. It clearly distinguishes from siblings like figma_set_rest_token and figma_clear_rest_token by focusing on status inspection.
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. The purpose is inferred from the description and sibling names, but there is no statement of when-not-to-use or prerequisites. Adequate but lacks explicit boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_statusBRead-only
Check if F-MCP ATezer Bridge plugin is connected and list all connected files. No REST API or token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, so the description's claim of non-destructive listing aligns. It adds the important constraint 'No REST API or token' which differentiates it from other tools, but does not disclose return format or behavior 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?
Two sentences: first states purpose, second adds a key constraint. No filler, front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fails to specify what 'list all connected files' returns (e.g., file names, IDs, or full objects). Ambiguity about the boolean check for plugin connection. Adequate for a simple tool but lacks clarity on return value.
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?
Tool has zero parameters, so schema coverage is complete. Baseline of 4 is appropriate as no additional parameter information 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 clearly states the tool checks plugin connection and lists connected files. However, it does not distinguish from sibling 'figma_list_connected_files' which likely overlaps in functionality.
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 like 'figma_list_connected_files' or 'figma_get_rest_token_status'. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_stylesARead-only
Get local paint, text, and effect styles from the open Figma file. No REST API. Use fileKey or figmaUrl to target a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| verbosity | No | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the read-only nature is clear. The description adds that it operates on 'local' styles and 'No REST API', which provides context beyond annotations. However, it does not disclose any additional behavioral traits like what happens if the file is not open or performance implications. The description is adequate but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states purpose, second provides targeting context and distinguishes from REST API. Every word is necessary, no fluff. It is front-loaded and appropriately sized.
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 simplicity (3 parameters, no output schema, annotations present), the description covers the essential aspects: what it does (get styles), targeting options, and operational context (local, not REST). It does not describe return values, but the tool name implies style objects. For a read-only retrieval tool, this is nearly 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 input schema has high coverage with descriptions for all three parameters (figmaUrl, fileKey, verbosity). The description adds 'Use fileKey or figmaUrl to target a specific file,' which is redundant with schema descriptions. For high schema coverage, a baseline of 3 is appropriate as the description adds minimal new meaning.
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 retrieves local paint, text, and effect styles from the open Figma file. It specifies the resource ('styles') and the action ('get'). The mention of 'No REST API' helps differentiate from other tools like 'figma_rest_api', and 'Use fileKey or figmaUrl' clarifies targeting. This provides specific verb+resource and distinguishes from siblings.
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 implies usage for the open Figma file and mentions that fileKey or figmaUrl can target a specific file. However, it does not explicitly state when not to use this tool or provide alternative tools for similar purposes (e.g., 'figma_get_variables' for variables). The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_token_browserARead-only
Token Browser: hierarchical view of design tokens for browsing. Returns variable collections with variables and modes, plus paint and text styles. Use for exploring and auditing tokens in the open Figma file. No REST API. Use fileKey or figmaUrl to target a specific file when multiple plugins are connected.
| Name | Required | Description | Default |
|---|---|---|---|
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| verbosity | No | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which is consistent with the description. The description adds that it returns specific data types (variable collections, variables, modes, paint/text styles) and notes it uses no REST API, providing additional context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the purpose and then providing usage guidance. Every sentence adds value 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 the tool has three parameters with relatively straightforward semantics and no output schema, the description provides enough context about the tool's function and return types. However, elaborating on the hierarchical structure or the verbosity options 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?
The schema covers two of three parameters with descriptions (fileKey, figmaUrl). The description adds that these are used to target a specific file, but does not explain the verbosity parameter (enum: summary/full). Since schema coverage is 67%, the description modestly compensates but could be more informative.
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 states it returns a hierarchical view of design tokens, including variable collections, variables, modes, and paint/text styles. However, it could more explicitly distinguish itself from closely related siblings like figma_get_variables and 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?
The description suggests using it for exploring and auditing tokens, and specifies using fileKey or figmaUrl for targeting files when multiple plugins are connected. It does not provide explicit alternatives or conditions for when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_variablesARead-only
Get design tokens and variables from the open Figma file. No REST API or token. Use fileKey or figmaUrl to target a specific file when multiple plugins are connected.
| Name | Required | Description | Default |
|---|---|---|---|
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| verbosity | No | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; description adds context about no REST API/token needed and that it works on the open Figma file, providing useful behavioral cues.
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?
Two concise sentences with the purpose front-loaded; no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with annotations, the description covers purpose, targeting, and a key behavioral trait. Missing return details but not required per rules.
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 67% (2 of 3 parameters described). The description reinforces the parameter usage but does not add new semantic information 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 'Get design tokens and variables' as a verb+resource, and distinguishes itself from sibling tools that perform write operations or retrieve other entities.
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?
Provides guidance on using fileKey or figmaUrl for targeting specific files, but does not explicitly compare with other get tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_import_styleADestructive
Import a text, paint, or effect style from a team library by key, and optionally apply it to a node. IMPORTANT: This API only imports PUBLISHED LIBRARY styles, NOT local file styles. For local styles, use 'node.fillStyleId = style.id' (or textStyleId/effectStyleId) directly via figma_execute. Get library style keys from .claude/libraries/ cache or REST API: figma_rest_api GET /v1/files/{fileKey}/styles. For TEXT styles: applies via setTextStyleIdAsync (includes font, size, weight). For PAINT styles: applies via fillStyleId. For EFFECT styles: applies via effectStyleId.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Node ID to apply the style to (optional — omit to just import) | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| styleKey | Yes | Library style key (must be from a PUBLISHED team library, not a local style) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the bar is lower. The description adds behavioral details: it imports from published libraries, and for different style types it applies via specific methods (setTextStyleIdAsync, fillStyleId, effectStyleId). It does not elaborate on side effects or reversibility, but adds useful context beyond the annotation.
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 structured with a clear purpose sentence, an important note, guidance on obtaining keys, and a breakdown by style type. It is informative but somewhat lengthy; however, every sentence adds value and the structure is logical.
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, the description does not explain the return value or success/failure indicators. It covers the tool's purpose, usage constraints, and parameter details well, but lacks information on what the tool outputs, which is important for an agent to handle 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?
Schema coverage is 100% with descriptions. The description adds meaning beyond the schema by explaining how to obtain styleKey (from cache or REST API) and detailing how each style type is applied. This provides actionable context for correct parameter usage.
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 'import' and the resource 'style from a team library', with optional application to a node. It distinguishes from siblings like figma_get_styles by focusing on importing and applying from published libraries.
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?
Explicitly states that this tool only works with published library styles, not local file styles, and provides alternative methods for local styles via figma_execute. Also guides on obtaining style keys from cache or REST API, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_instantiate_componentADestructive
Create a component instance. Use componentKey from figma_search_components, figma_search_assets, or REST API. Supports library components (importComponentByKeyAsync) and local components (by nodeId). After creation: use overrides with setProperties({...}) for component properties — do NOT use findAll(TEXT) to modify instance text.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | ||
| componentKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description explicitly states it creates an instance and supports both library and local components. Also warns about modifying instance text incorrectly, adding valuable behavioral context.
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?
Two sentences, front-loaded with purpose, no redundant information. Every sentence adds value, making it efficient and easy to parse.
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 moderate complexity, the description covers creation flow and a key post-creation instruction. However, it omits details for sub-parameters like position and parentId, and does not describe return value or errors. Somewhat incomplete for a comprehensive understanding.
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 input schema has 0% description coverage, so the description carries the burden. It explains componentKey's source and links overrides to setProperties, but does not elaborate on nodeId, position, or parentId. Partially compensates but leaves gaps.
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?
Clearly states 'Create a component instance' with specific verb and resource. Mentions key sources from sibling tools, distinguishing it from search or other creation tools. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on obtaining componentKey from specific tools and warns against using findAll(TEXT) after creation. Does not explicitly state when not to use, but context is sufficient for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_list_connected_filesARead-only
List all currently connected Figma/FigJam plugin instances (Figma Desktop, FigJam browser, Figma browser). Returns fileKey, fileName, and connection time for each. Use when multiple windows or agents are active. Pass the returned fileKey (or a Figma/FigJam URL via figmaUrl) to other tools to target a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's 'List' aligns. It adds value by describing the return values (fileKey, fileName, connection time) and confirms no destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler. First sentence states purpose and output, second gives usage context, third explains chaining. Front-loaded and 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?
For a simple list tool with no parameters and no output schema, the description covers all essential information: what it does, what it returns, when to use it, and how to use the output. No gaps.
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?
Tool has zero parameters, so baseline is 4 per guidelines. The description does not add parameter semantics beyond the schema (which is empty), but it appropriately explains how to use the output with other tools.
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?
Clearly states the verb 'list' and the resource 'connected Figma/FigJam plugin instances', and details the returned fields (fileKey, fileName, connection time). This distinguishes it from sibling tools that modify or create entities.
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?
Explicitly suggests using the tool 'when multiple windows or agents are active' and explains how to chain the output (fileKey or figmaUrl) with other tools. It does not explicitly state when not to use, but the guidance is clear and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_plugin_diagnosticsARead-only
Get diagnostic info about plugin connection health: uptime, connected clients, pending requests, bridge version, memory usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only (readOnlyHint: true). The description adds specific behavioral details (uptime, connected clients, pending requests, bridge version, memory usage) that go beyond the annotation, providing a clear picture of the tool's output.
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 efficiently lists the key diagnostic fields, with no fluff. It is 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?
Given no output schema, the description adequately explains the tool's return value with specific metrics. No additional context is needed for a simple diagnostic retrieval tool.
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 the schema fully covers them. The description adds value by explaining what the tool returns, compensating for the lack of an output schema. Baseline score of 4 applies.
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 ('Get') and resource ('diagnostic info about plugin connection health'), listing exact metrics. It clearly distinguishes from sibling tools that focus on editing, creating, or retrieving design data.
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 implies the tool is for checking connection health, but it does not explicitly state when to use it versus other diagnostic tools (e.g., figma_get_status) or provide any when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_refresh_variablesC
Refresh variables from the file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is neither read-only nor destructive, but the description fails to explain the behavioral implications of 'refresh.' It does not disclose side effects, permissions, or what changes occur, leaving the agent uninformed.
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 maximally 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?
Despite no parameters or output schema, the description is too vague given the context of many variable-related sibling tools. It does not specify how 'refresh' differs from other operations, making it incomplete for proper 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?
The tool has no parameters, so the description does not need to elaborate on them. The baseline for zero parameters is 4, and the description adequately conveys the action and resource.
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 states 'Refresh variables from the file,' which combines a verb and resource but lacks specificity on what 'refresh' entails. It does not differentiate from sibling tools like figma_get_variables or figma_update_variable, leaving ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or when not to use it. No context or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_rename_modeCDestructive
Rename a mode in a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| modeId | Yes | ||
| newName | Yes | ||
| collectionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation indicates this operation may have side effects, but the description does not elaborate on what those are (e.g., breaking references). Without additional context, the agent cannot assess risks.
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—just one sentence. It is front-loaded and to the point, but the lack of structure or elaboration for a destructive operation makes it less helpful.
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 destructive hint and three required parameters with no output schema, the description is insufficient. It does not explain the renaming process, potential impacts, or return value, leaving significant gaps for an 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?
With 0% schema description coverage, the description should explain the parameters. It does not; the parameter names (collectionId, modeId, newName) are only partially self-explanatory, and the tool's behavior with these IDs remains unclear.
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 (rename) and object (mode in a collection). It is concise and unambiguous, though it could benefit from specifying what a mode is in the context of Figma collections.
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 like figma_add_mode or figma_rename_variable. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_rename_variableCDestructive
Rename a variable.
| Name | Required | Description | Default |
|---|---|---|---|
| newName | Yes | ||
| variableId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond the action. The annotation 'destructiveHint: true' is present, but the description does not explain the nature of the destructiveness (e.g., irreversible, affects references). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It lacks essential details about usage and behavior, making it too minimal.
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 output schema, the description is incomplete. It does not specify return values, side effects, or how renaming relates to other variable operations. The context from siblings is not leveraged.
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 should explain the two parameters (variableId, newName). It only says 'Rename a variable,' adding no semantic meaning to the parameters.
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 'Rename a variable' clearly states the action and resource. However, it does not distinguish from the sibling tool 'figma_update_variable', which might also perform renaming. The purpose is clear but lacks differentiation.
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 like 'figma_update_variable' or other variable-related tools. There is no mention of prerequisites or context for renaming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_rest_apiA
Call Figma REST API directly. Requires a token set via figma_set_rest_token. Use for: file export (SVG/PNG), comments, version history, team/project listing, image fills, and anything not available through the plugin bridge. Endpoint examples: GET /v1/files/:fileKey, GET /v1/images/:fileKey, GET /v1/files/:fileKey/comments
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON body for POST/PUT requests | |
| method | No | HTTP method | GET |
| endpoint | Yes | REST API path, e.g. '/v1/files/abc123' or '/v1/me' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral details beyond annotations, such as requiring a token and supporting API operations. Annotations already indicate non-read-only nature, so description builds on that.
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 concise, two sentences with examples. Every part is informative 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?
Given no output schema, description covers main aspects but lacks details on return values. However, it provides sufficient context for an API tool.
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 100% and description provides endpoint examples but adds little beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Call Figma REST API directly' with specific use cases like file export, comments, version history, and distinguishes from sibling tools by mentioning 'anything not available through the plugin bridge'.
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?
Provides clear context on when to use (e.g., file export, comments) and prerequisite (requires token via figma_set_rest_token). Lacks explicit alternatives but gives good guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_scan_ds_complianceARead-only
v1.9.4: FINAL GATE — Full DS compliance scan for a completed screen. Returns the same score + breakdown as figma_validate_screen PLUS: (1) coverage = granular bind percentages (fills/paddings/radius/itemSpacing/textStyle/textColor/strokes), (2) samples.hardcodedHex = up to 8 nodes with hardcoded SOLID colors, (3) samples.hardcodedFontSize = up to 8 text nodes with hardcoded fontSize (no textStyleId), (4) samples.primitiveFrames = up to 8 frames that should have been DS component instances, (5) overflow = root auto-layout overflow analysis (frameSize vs contentSize). If passed: false, Claude MUST fix listed violations before presenting the screen as complete. Threshold 85 default (stricter than validate_screen's 80) because this flags granular gaps. Read-only — never mutates the file.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID of the completed screen to audit | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| threshold | No | Pass threshold (0-100). Default 85. Below this, screen is non-compliant and must be fixed. | |
| expectedDs | No | Expected DS library name (e.g. '❖ My-DS') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly declares 'Read-only — never mutates the file', consistent with annotations. Discloses threshold behavior and return value structure (samples, overflow). No contradictions.
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?
Concise yet detailed, uses numbered list for clarity, front-loads purpose. Every sentence adds value with no 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?
Covers tool purpose, behavior, return data (including samples and overflow), and usage instructions. No output schema needed given comprehensive description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 5 parameters with descriptions. Description adds minimal extra value (e.g., default threshold, expectedDs purpose). Baseline 3 is appropriate as schema does the heavy lifting.
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 it performs a 'Full DS compliance scan for a completed screen' and lists specific return values (coverage, samples, overflow). It distinguishes from sibling figma_validate_screen by noting stricter threshold and granular gaps.
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?
States it's a 'FINAL GATE' for completed screens and instructs Claude to fix violations if passed: false. Implicitly differentiates from validate_screen via default threshold (85 vs 80). Lacks explicit when-not-to-use but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_search_assetsARead-only
Search for design system assets in the current Figma file. Returns: (1) team library VARIABLES via figma.teamLibrary API (all enabled libraries), (2) file-local COMPONENTS / COMPONENT_SETS, and (3) v1.8.0+: REMOTE LIBRARY COMPONENTS discovered by scanning existing INSTANCE nodes (returned as 'libraryComponents'). For library components to appear, at least one DS instance must exist in the file — place one manually first if empty. v1.9.8+: When instance scan returns empty, response includes '_restFallbackHint' suggesting figma_rest_api('/v1/files//components') as a REST fallback to enumerate library components directly (requires FIGMA_REST_TOKEN env var + library file-key from active.md). Pass currentPageOnly=false to scan all pages for instance discovery. Use the returned componentKey with figma_instantiate_component to place new instances. Pass assetTypes to filter: ['variables'], ['components'], or both (default).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per asset type (default 25, max 80) | |
| query | No | Search query to filter by name | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| assetTypes | No | Asset types to search: 'variables', 'components'. Default: both. | |
| currentPageOnly | No | For components: search current page only (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark the tool as readOnlyHint=true. The description goes far beyond by detailing how library components are discovered (via instance scanning), version-specific behavior (v1.8.0+, v1.9.8+), the prerequisite of at least one DS instance, and the fallback hint mechanism. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately verbose, especially with version-specific details (v1.8.0+, v1.9.8+) embedded in a single paragraph. It front-loads the main purpose but becomes dense. While all information is useful, some restructuring (e.g., bullet points or separate version notes) could improve readability.
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 (three asset types, six parameters, version dependencies, and no output schema), the description covers all necessary context: return types, version-specific behavior, parameter usage, and a fallback mechanism. It fully compensates for the lack of an output schema by explaining what each search returns.
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 100% (all 6 parameters described in input schema). The description adds value by explaining parameter effects: currentPageOnly controls page scanning, assetTypes filters results, query filters by name, and limit default is mentioned. This enhances understanding 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 identifies the tool as searching for design system assets in the current Figma file, enumerating three specific asset types (variables, local components, remote library components). It distinguishes itself from sibling tools like figma_search_components and figma_get_library_variables by explicitly covering multiple asset categories and referencing version-specific behaviors.
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 extensive usage context: when to use (searching assets), parameter guidance (e.g., currentPageOnly, assetTypes), and a fallback hint (_restFallbackHint) for empty results. It implies alternatives (REST API) but does not explicitly state when not to use this tool vs. siblings, though the detail compensates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_search_componentsARead-only
Search local components by name. Returns nodeIds and names. No REST API. Use fileKey or figmaUrl to target a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| currentPageOnly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds that the tool returns nodeIds and names, plus notes the limitation of no REST API. This provides useful behavioral context beyond the annotation, such as the non-REST nature and return data shape.
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, using three short sentences that front-load the core purpose, return type, and key usage parameters. No redundant information is present.
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 5 parameters and no output schema, the description covers purpose and two key parameters but omits details on currentPageOnly and limit. It also doesn't specify pagination or result format beyond nodeIds and names. While the core intent is clear, the lack of completeness for all parameters reduces its utility for agent 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 description adds meaning to the query parameter by stating search is by name, and clarifies the role of fileKey and figmaUrl. However, it does not explain currentPageOnly or limit parameters, and schema coverage is 40%, so the description only partially compensates for missing 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 searches local components by name and returns nodeIds and names. It distinguishes from siblings like figma_search_assets by specifying 'local components'. However, it could be more explicit about the scope of search (e.g., within a file or project).
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 advises using fileKey or figmaUrl to target a specific file, which provides clear usage context. Mentioning 'No REST API' implicitly guides agents away from using this tool for REST API purposes, serving as an alternative indicator. It does not, however, explicitly contrast with similar search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_descriptionBDestructive
Set description on a component, component set, or style node. Supports markdown (descriptionMarkdown).
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ||
| description | Yes | ||
| descriptionMarkdown | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate destructiveHint=true, and the description confirms a write operation ('set'). It adds specific node types, which is helpful. However, it does not disclose other behaviors like overwriting behavior or whether the operation is reversible.
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 is concise and front-loaded with the core purpose. It could be slightly more detailed 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 tool is destructive with 3 parameters and no output schema, the description lacks completeness. It does not explain return values, side effects, or constraints on nodeId. A more complete description would help the agent use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain parameter semantics. It mentions markdown support for descriptionMarkdown, but fails to clarify the difference between 'description' and 'descriptionMarkdown', and does not describe 'nodeId'. The explanation 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?
The description clearly states the verb (set), the resource (description), and the target node types (component, component set, style). This distinguishes it from sibling tools like 'figma_get_component' or 'figma_instantiate_component'.
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 vs. alternatives, nor does it mention any prerequisites or exclusions. It leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_flow_starting_pointA
Mark a FRAME as a prototype flow starting point (shown in Figma Prototype panel). Uses page.setFlowStartingPointsAsync if available (future API), falls back to direct assignment. Description is stored via pluginData (Figma FlowStartingPoint shape is { nodeId, name } only).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Flow name shown in Prototype panel (e.g. 'Login Akışı'). | |
| nodeId | Yes | FRAME node id to mark as a starting point. | |
| replace | No | true: replace entire array; false (default): append or update same nodeId. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the API fallback mechanism and data storage via pluginData, explaining the shape of FlowStartingPoint. However, it does not fully explain behavioral effects of the 'replace' parameter (e.g., whether it overwrites other starting points).
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?
Two well-structured sentences: first states purpose clearly, second explains implementation details. No redundancy or excess.
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 covers the main purpose and data storage but lacks details on error conditions, prerequisites (e.g., must be a FRAME), and interaction with other flow starting points.
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 covers 75% of parameters with descriptions, but the description parameter is ambiguous: the tool description says stored data is only {nodeId, name}, yet the schema includes a description parameter. This creates confusion.
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 that the tool marks a FRAME as a prototype flow starting point, specifying the exact resource and action. It distinguishes from siblings like figma_create_prototype_connection which deals with connections.
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 implies usage for setting starting points but does not explicitly state when to use or not use this tool versus alternatives like setting connections. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_instance_propertiesBDestructive
Set component instance properties (TEXT, BOOLEAN, VARIANT, etc.). Use fileKey or figmaUrl to target a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ||
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma or FigJam file URL for routing. | |
| properties | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While the destructiveHint annotation indicates mutation, the description adds no behavioral context beyond 'Set'. It does not mention side effects, reversibility, permission requirements, or limitations, missing opportunities to inform the agent.
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?
Two sentences with no wasted words. The first sentence fronts the core action, the second adds targeting info. Every word earns its place.
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 destructive nature, nested parameters, and lack of output schema, the description is too minimal. It omits crucial context like success/failure behavior, nodeId requirements (must be an instance?), properties structure, and operational constraints.
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 50% (figmaUrl and fileKey have descriptions; nodeId and properties lack them). The description lists property types, adding partial meaning for the 'properties' object, but nodeId remains undocumented. This meets the baseline but does not fully compensate for the 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 verb 'Set' and the resource 'component instance properties', with a parenthetical listing property types (TEXT, BOOLEAN, VARIANT, etc.). This distinguishes it from sibling tools like figma_create_variable or figma_instantiate_component.
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 only advises to use fileKey or figmaUrl for targeting, but provides no explicit guidance on when to use this tool versus alternatives (e.g., figma_bind_variable for variable binding). No when-not-to-use or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_portA
Change the WebSocket bridge port at runtime. Stops the current bridge and restarts on the new port. Use when the default port is busy (e.g. another AI tool holds it). After calling this, the Figma plugin must reconnect to the new port. Valid range: 5454–5470.
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | New WebSocket bridge port (5454–5470) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that calling this tool stops the current bridge and restarts on the new port, and that the Figma plugin must reconnect. This provides adequate transparency for a port-changing 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 three sentences with no wasted words. It is front-loaded with the main action and effect, followed by a usage scenario and a note about reconnection. 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 the tool has only one parameter and no output schema, the description is fully complete. It covers the action, effect, usage scenario, post-requirement (reconnection), and parameter range. Nothing is missing.
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 100%, so baseline is 3. The description adds minimal extra meaning: it reiterates the valid range (5454–5470) which is already in the schema. It does not provide additional parameter semantics beyond what the schema offers.
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 it changes the WebSocket bridge port at runtime. It uses specific verbs ('Change', 'Stops', 'restarts') and identifies the resource ('WebSocket bridge port'), distinguishing it from sibling tools that handle other Figma operations.
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?
It explicitly mentions when to use: 'Use when the default port is busy (e.g. another AI tool holds it).' It also notes the consequence of calling (plugin must reconnect). However, it does not provide when-not-to-use or alternative tools for port-related issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_rest_tokenA
Set Figma REST API token for REST API calls (export, comments, version history, etc.). Token is stored in memory only — never written to disk. Cleared on restart. Get a token from Figma → Settings → Personal access tokens (max 90 days).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Figma personal access token (figd_...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behaviors: token stored only in memory, never written to disk, cleared on restart, and token expiration (max 90 days). No annotations present, so description carries full burden; it addresses security and persistence well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose and scope, storage behavior, and token source. No unnecessary words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, behavior, and token origin. For a one-parameter tool with no output schema, it is nearly complete. Could mention success response or error handling, but not essential.
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 100% and description enriches the parameter by specifying the token format (figd_...) and where to obtain it (Figma Settings). Adds meaning beyond the schema's brief description.
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 sets the Figma REST API token for REST API calls, listing example use cases (export, comments, version history). It distinguishes from sibling tools like figma_clear_rest_token and figma_get_rest_token_status.
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?
Provides clear context for when to use: before making REST API calls. It includes instructions on obtaining the token. However, it does not explicitly state when not to use or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_set_scroll_behaviorA
Set a node's scroll behavior (Figma Prototype panel > Scroll behavior). overflowDirection (FrameNode): NONE/HORIZONTAL/VERTICAL/BOTH — defines prototype scroll axis. scrollBehavior (SceneNode): SCROLLS/FIXED/STICKY_SCROLLS — FIXED = sticky header, STICKY_SCROLLS = becomes sticky after scrolling past. At least one of overflowDirection or scrollBehavior must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node id (FRAME/COMPONENT/COMPONENT_SET/INSTANCE for overflowDirection; any SceneNode for scrollBehavior). | |
| scrollBehavior | No | ||
| overflowDirection | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description clarifies key behavioral traits: it defines each enum value (e.g., FIXED = sticky header) and specifies node type compatibility. It does not discuss side effects or error conditions, but the core behavior is well communicated.
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 concise (two sentences) and front-loaded with the main action. Every sentence adds value without redundancy or filler.
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 covers the essential usage details (parameter meanings, node types, conditional requirement). However, it omits information about the return value or success/failure indicators, which would be helpful given no output schema.
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 low (33%), but the description adds significant meaning by explaining the enum values for overflowDirection and scrollBehavior, including practical examples like 'FIXED = sticky header'. This compensates for the schema gaps.
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 sets a node's scroll behavior with explicit parameters (overflowDirection, scrollBehavior) and enums. It distinguishes itself from sibling tools by focusing specifically on prototype scroll behavior.
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 explains the parameter meanings and node requirements (FrameNode vs SceneNode) and notes that at least one must be provided. However, it does not explicitly state when to use this tool over alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_setup_design_tokensADestructive
Atomically create a variable collection + modes + variables. Rollback on any error. Params: collectionName, modes (array), tokens (array of { name, type?, value? or values? }).
| Name | Required | Description | Default |
|---|---|---|---|
| modes | Yes | ||
| tokens | Yes | ||
| collectionName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds atomicity and rollback behavior beyond the destructiveHint annotation. Does not disclose side effects or permissions, but provides key behavioral context.
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?
Two sentences that efficiently convey purpose, behavior, and parameter list. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks return value info and constraints like uniqueness of collectionName or modes. For a complex tool, extra context would be helpful, but it covers the core.
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%, but description lists params and briefly explains tokens structure. While it matches schema, it adds minimal new meaning (e.g., 'value? or values?'). More detail on constraints (e.g., uniqueness of modes) would improve.
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?
Clearly states it atomically creates a variable collection, modes, and variables with rollback. Distinguishes from siblings like figma_create_variable_collection and figma_batch_create_variables which handle only parts.
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?
Implies use when atomicity and rollback are desired, but no explicit when-not-to-use or alternatives compared to siblings like figma_create_variable_collection or figma_batch_create_variables.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_update_variableADestructive
Update a variable value in a mode. Get IDs from figma_get_variables.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| modeId | Yes | ||
| variableId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (destructiveHint: true). The description adds no further behavioral context beyond the update action, such as whether changes are reversible or impact other modes. It neither contradicts nor significantly extends the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences conveying the action and a key prerequisite. No redundant information. Every part earns its place.
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 (3 required params, no output schema, destructive), the description provides the core action and a prerequisite but omits parameter semantics and return value details. It is adequate but not comprehensive.
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 input schema has 0% description coverage for parameters, and the description does not explain individual parameters (variableId, modeId, value). While it implies modeId refers to a mode, it lacks details on how to specify values across different types (string, number, boolean). The description should compensate but falls short.
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?
Clearly states the action 'Update a variable value in a mode', specifying both the resource (variable) and scope (mode). Distinguishes from siblings like figma_create_variable (create) and figma_batch_update_variables (batch) by focusing on single update.
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?
Provides a clear prerequisite: 'Get IDs from figma_get_variables.' This guides the agent to obtain necessary inputs. However, it does not explicitly mention when to use this tool over alternatives like figma_batch_update_variables, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_useARead-only
High-level orchestrator that bundles component, token and design-context lookups in one call. intent='component' -> node detail + Code Connect hint. intent='token' -> team library variable search. intent='design_context' -> full bundle (component + hints + tokens). Prefer this before implementing a design to collect all references in a single round-trip.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max variable results (default 25). | |
| query | No | Token name filter for 'token' / 'design_context'. | |
| intent | Yes | Lookup mode. | |
| nodeId | No | Required for 'component' and 'design_context'. | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true; description adds context about bundling and intents. No contradictions. Adequately describes behavior beyond 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?
Three focused sentences with upfront purpose, then intent breakdown and usage guidance. No unnecessary words.
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?
Describes return per intent sufficiently for a read-only tool without output schema. Could mention pagination or error handling but not required given tool simplicity.
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 100%, but the description adds value by grouping parameters per intent and clarifying conditional requirements (e.g., nodeId required for component/design_context).
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?
Clearly states it's a high-level orchestrator bundling component, token, and design-context lookups. It distinguishes itself from siblings by offering a consolidated round-trip, and the three intents are explicit.
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?
Explicitly advises using this tool before implementing a design to collect all references in one call, implying it consolidates multiple lookups. Lacks explicit 'when not to use' but the context of sibling tools suggests specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_validate_screenARead-only
Validate a screen against design-system discipline criteria. Returns a compliance score (0-100) across 3 dimensions: instance coverage (library usage), token binding coverage (bound variables), and auto-layout coverage. Use this AFTER creating a screen to verify DS compliance. If score < minScore, Claude should delete the screen and rebuild it using DS components + token bindings. v1.9.4: breakdown now always includes coverage (granular fills/paddings/radius/itemSpacing/textStyle bind ratios) + overflow (root auto-layout overflow). For hardcoded samples + primitive fallback list, use figma_scan_ds_compliance instead. Read-only — never mutates the file.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID of the screen to validate | |
| fileKey | No | Target a specific connected file. | |
| figmaUrl | No | Figma file URL for routing. | |
| minScore | No | Minimum acceptable score (0-100). Below this, the screen is considered non-compliant. | |
| expectedDs | No | Expected DS library name (e.g. '❖ My-DS') for library match scoring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description declares the tool is 'Read-only — never mutates the file,' which aligns with the readOnlyHint annotation. Additionally, it details the output structure (breakdown includes coverage and overflow objects with specific ratios), adding context beyond the annotation. No contradictions are present.
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 concise with 4-5 sentences covering purpose, usage, version details, and alternatives. It is well-structured with clear sections, though the version note could be slightly more integrated. Overall, it earns its length without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (scoring across dimensions, conditional actions) and lack of output schema, the description fully covers the return value (compliance score, breakdown details), usage context, and decision logic. It also mentions version specifics, making it self-contained. No gaps remain.
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 input schema already provides 100% description coverage for all parameters. The description adds value by explaining the context for minScore (threshold for deletion and rebuild) and implying the role of expectedDs (library name for scoring). This goes beyond the schema's basic definitions, meriting a 4 despite the high baseline.
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 explicitly states the tool validates a screen against design-system discipline criteria, returning a compliance score across three dimensions. It distinguishes itself from the sibling tool figma_scan_ds_compliance by specifying that the latter is for hardcoded samples and primitive fallback lists. This provides clear differentiation and a specific verb+resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit instructions on when to use the tool ('AFTER creating a screen to verify DS compliance') and what action to take based on the result ('If score < minScore, Claude should delete the screen and rebuild it'). It also names an alternative tool for different use cases, offering complete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_watch_consoleARead-only
Stream new plugin console logs until timeout. Polls the plugin buffer. Timeout default 30s.
| Name | Required | Description | Default |
|---|---|---|---|
| timeoutSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only (consistent with streaming). Description adds behavior details: polling, timeout, default 30s. No contradiction. Adds value beyond annotations by explaining mechanism and timeout.
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?
Two concise sentences, front-loaded with purpose, no filler. Each sentence adds value: purpose, mechanism, timeout default.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose, mechanism, and timeout. Missing output format (streaming logs structure) but acceptable given simplicity.
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%, so description must compensate. It mentions 'Timeout default 30s', explaining the timeoutSeconds parameter's default. However, it does not describe valid range or behavior at extremes. Provides minimal but adequate guidance.
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 streams plugin console logs until timeout, using the verb 'stream' and specific resource 'plugin console logs'. It distinguishes from siblings like figma_get_console_logs and figma_clear_console by indicating real-time polling behavior.
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?
Description implies usage for watching logs in real-time but does not explicitly state when to use or avoid this tool, nor does it mention alternatives like figma_get_console_logs. The context is clear, but exclusions or comparisons are absent.
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.
1 tool update
v1.9.14- Added
figma_extract_contract
10 tool updates
v1.9.13- Changed
figma_create_text1 field changed- changed
Input schema / properties / fontFamily / descriptionPrevious value: -"Font family — defaults to Inter. Specify DS font if using a design system (e.g. SHBGrotesk for SUI)."New value: +"Font family — defaults to Inter. Specify DS font from active-ds.md if using a design system."
- Added
figma_enumerate_library_components - Added
figma_enumerate_published_components - Changed
figma_get_component_image2 fields changed- added
Input schema / properties / figmaUrlAdded value: +{ + "description": "Figma file URL for routing.", + "type": "string" +} - added
Input schema / properties / fileKeyAdded value: +{ + "description": "Target a specific connected file.", + "type": "string" +}
- Changed
figma_get_console_logs2 fields changed- added
Input schema / properties / figmaUrlAdded value: +{ + "description": "Figma file URL for routing.", + "type": "string" +} - added
Input schema / properties / fileKeyAdded value: +{ + "description": "Target a specific connected file.", + "type": "string" +}
- Changed
figma_get_library_variables1 field changed- changed
Input schema / properties / libraryName / descriptionPrevious value: -"Filter by library name (exact match, e.g. '❖ SUI')"New value: +"Filter by library name (exact match, e.g. '❖ My-DS')"
- Changed
figma_get_prototype_connections2 fields changed- added
Input schema / properties / figmaUrlAdded value: +{ + "description": "Figma file URL for routing.", + "type": "string" +} - added
Input schema / properties / fileKeyAdded value: +{ + "description": "Target a specific connected file.", + "type": "string" +}
- Changed
figma_get_token_browser2 fields changed- added
Input schema / properties / figmaUrlAdded value: +{ + "description": "Figma file URL for routing.", + "type": "string" +} - added
Input schema / properties / fileKeyAdded value: +{ + "description": "Target a specific connected file.", + "type": "string" +}
- Changed
figma_scan_ds_compliance1 field changed- changed
Input schema / properties / expectedDs / descriptionPrevious value: -"Expected DS library name (e.g. '❖ SUI')"New value: +"Expected DS library name (e.g. '❖ My-DS')"
- Changed
figma_validate_screen1 field changed- changed
Input schema / properties / expectedDs / descriptionPrevious value: -"Expected DS library name (e.g. '❖ SUI') for library match scoring"New value: +"Expected DS library name (e.g. '❖ My-DS') for library match scoring"
60 tool updates
v1.9.11- First observed
figma_add_mode - First observed
figma_arrange_component_set - First observed
figma_batch_create_variables - First observed
figma_batch_update_variables - First observed
figma_bind_variable - First observed
figma_capture_screenshot - First observed
figma_check_design_parity - First observed
figma_clear_console - First observed
figma_clear_rest_token - First observed
figma_clone_screen_to_device - First observed
figma_create_frame - First observed
figma_create_group - First observed
figma_create_interaction - First observed
figma_create_mini_ds - First observed
figma_create_prototype_connection - First observed
figma_create_rectangle - First observed
figma_create_text - First observed
figma_create_variable - First observed
figma_create_variable_collection - First observed
figma_delete_variable - First observed
figma_delete_variable_collection - First observed
figma_execute - First observed
figma_export_nodes - First observed
figma_get_code_connect - First observed
figma_get_component - First observed
figma_get_component_for_development - First observed
figma_get_component_image - First observed
figma_get_console_logs - First observed
figma_get_design_context - First observed
figma_get_design_system_summary - First observed
figma_get_file_data - First observed
figma_get_library_variables - First observed
figma_get_prototype_connections - First observed
figma_get_rest_token_status - First observed
figma_get_status - First observed
figma_get_styles - First observed
figma_get_token_browser - First observed
figma_get_variables - First observed
figma_import_style - First observed
figma_instantiate_component - First observed
figma_list_connected_files - First observed
figma_plugin_diagnostics - First observed
figma_refresh_variables - First observed
figma_rename_mode - First observed
figma_rename_variable - First observed
figma_rest_api - First observed
figma_scan_ds_compliance - First observed
figma_search_assets - First observed
figma_search_components - First observed
figma_set_description - First observed
figma_set_flow_starting_point - First observed
figma_set_instance_properties - First observed
figma_set_port - First observed
figma_set_rest_token - First observed
figma_set_scroll_behavior - First observed
figma_setup_design_tokens - First observed
figma_update_variable - First observed
figma_use - First observed
figma_validate_screen - First observed
figma_watch_console
TDQS
Many tools have overlapping purposes (e.g., multiple 'get' tools for variables and styles, multiple validation/compliance checkers). Detailed descriptions help, but the sheer number of tools (62) increases ambiguity and risk of misselection.
All tools share the 'figma_' prefix and use snake_case. Most follow a verb_noun pattern (create_frame, delete_variable), but a few are single verbs (figma_use, figma_execute) or include adverbs (figma_batch_create_variables), causing minor inconsistency.
62 tools is very high for an MCP server. While Figma's complexity justifies many specialized tools, the count borders on overwhelming. Many tools could be consolidated (e.g., multiple 'get' tools, batch operations), making it feel heavier than ideal.
The tool surface covers most Figma domains: variables, components, styles, prototypes, compliance, screenshots, and more. However, it relies heavily on the generic figma_execute for tasks like text editing and node manipulation, leaving a gap in dedicated tools for those operations.
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.
Build and manage your design system with AI: tokens, themes, components, icons, Figma and code.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Cursor to interact with Figma designs programmatically. Supports reading design information, modifying elements, creating components, managing text content, and automating design workflows through natural language commands.894MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read and modify Figma designs programmatically, supporting design analysis, element creation, text replacement, annotations, auto-layout configuration, and prototype visualization through natural language commands.653MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Figma designs programmatically, supporting comprehensive design automation including text manipulation with formatting preservation, batch operations, prototyping, auto-layout configuration, and component management.75314MIT
- AlicenseNot gradedqualityCmaintenanceAI assistants can read and inspect Figma design context locally via a plugin, without external API keys or rate limits.17MIT
Appeared in Searches
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/atezer/FMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server