Skip to main content
Glama

šŸŽØ FigCraft Live MCP Server (figcraft-mcp)

License: MIT MCP Protocol Node.js TypeScript

Official, production-grade Model Context Protocol (MCP) server for FigCraft (ArtCraft Team). Enables AI coding assistants (Antigravity IDE, Claude Desktop, Cursor, VS Code) to create design files, automatically open them immediately in the GUI, and generate UI/UX live on the user's screen in real-time with Figma-grade Auto-Layout, Luxury Obsidian Titanium Theming, Anti-Overflow Text Constraints, and Harness MCP Quality Gates.


⚔ The Canonical 1-by-1 Automated Workflow

In traditional workflows, AI agents generated design files in the background, leaving users to manually browse files and open them in FigCraft.

figcraft-mcp enforces the strict 1-per-1 Automated Pipeline:

flowchart TD
    A["1. Create & Name Project File<br/>(AI initializes *.figcraft with project name)"] --> B["2. Automatically Open in FigCraft GUI<br/>(AI sends file.open — user does NOT touch anything)"]
    B --> C["3. Generate Responsive System<br/>(Desktop 1440px, Tablet 768px, Mobile 375px side-by-side)"]
    C --> D["4. Live Luxury Components & Auto-Layout<br/>(Radiant Gold CTAs, Glassmorphism, Zero-Overflow Text)"]
    D --> E["5. Anti-Overflow & Harness Quality Audit<br/>(Verify 0 overflows, 0 literal \\n, and record evidence)"]
    E --> F["6. Automatic Save to Disk<br/>(AI persists canvas state back to .figcraft file)"]

Related MCP server: Figma Dash MCP Server

šŸ’Ž Solusi Visual & Perbaikan Layout (v1.3.0)

Berdasarkan riset dokumentasi Context7 MCP untuk Figma Plugin API dan Tailwind CSS v4 design tokens:

  1. Anti-Overflow Text Wrapping (textAutoResize: 'height'):

    • Menghilangkan teks yang meluber keluar dari kartu dengan memaksa text node menggunakan textAutoResize: 'height' dan pembatasan lebar (sizingH: 'fill' / constrained width), sehingga teks secara otomatis membungkus (wrap) ke bawah secara rapi.

  2. Pembersihan Mutlak Karakter \n:

    • Memastikan string multiline terkonversi menjadi karakter line-break asli, bukan string karakter \n literal.

  3. Palet Warna Luxury Obsidian Titanium:

    • Menggantikan warna khaki/kusam dengan Radiant Amber Gold (#F59E0B), Obsidian Space Canvas (#090D14), Glassmorphic Cards (#131B2CD9), dan Neon Emerald Badges (#064E3B66 + #34D399).

  4. Depth & Glassmorphism (effects):

    • Menambahkan drop shadow mewah (effects: [{ type: 'dropShadow', color: '#F59E0B4D', radius: 24 }]) pada tombol utama dan soft elevation shadow pada kartu.


šŸ› ļø MCP Tools Reference (15 Tools)

Tool Name

Parameters

Description

figcraft_create_and_open

filePath (string), projectName (string)

Langkah 1 & 2: Buat file kanonik .figcraft beserta nama proyek, lalu otomatis langsung buka di jendela aktif FigCraft GUI.

figcraft_create_responsive_system

projectName (string), theme ('luxury'|'dark'|'light')

Responsive System: Buat 3 Artboard sinkron berdampingan (Desktop 1440px, Tablet 768px, Mobile 375px) dengan Auto-Layout vertikal.

figcraft_create_autolayout_frame

name, direction, gap, padding, mainAlign, crossAlign, sizingH, sizingV, bgColor, effects

Figma Flexbox: Buat kontainer Auto-Layout terstruktur dengan drop shadow dan corner smoothing.

figcraft_create_component

type ('navbar'|'hero'|'card'), parent (number), options (object)

Atomic Components: Render komponen tingkat tinggi siap pakai dengan garansi anti-overflow.

figcraft_fix_overflow

(none)

Anti-Overflow Auto-Fixer: Pindai seluruh kanvas dan perbaiki otomatis teks yang melebihi batas kotaknya serta bersihkan literal \n.

figcraft_apply_luxury_theme

(none)

Luxury Theming: Terapkan palet Obsidian Titanium, tombol emas bersinar (glow), dan kartu kaca modern di seluruh kanvas.

figcraft_audit_layout

(none)

Harness Audit: Audit kualitas kanvas (overflow, teks literal \n, cakupan responsif) dan hasilkan bukti Harness quality gate.

figcraft_create_node

type, name, parent, x, y, width, height, text, props

Langkah 3: Gambar elemen visual secara live di kanvas dengan sanitasi teks otomatis dan auto-wrap.

figcraft_set_properties

id (number), props (object)

Ubah styling, warna (fills), garis (strokes), tipografi, dan auto-layout pada layer aktif.

figcraft_batch

commands (array)

Jalankan serangkaian perintah desain FigCraft secara atomik dalam satu batch transaksi.

figcraft_inspect_document

depth (number), allPages (boolean)

Ambil tree hierarki lengkap dari seluruh layer, halaman, dan styling dokumen aktif sebagai JSON.

figcraft_open_file

filePath (string)

Buka berkas desain (.figcraft, .json, .fig, .sketch, .svg, gambar) ke tab aktif jendela FigCraft.

figcraft_save_file

path (string, opsional)

Simpan dokumen kanvas aktif ke disk (.figcraft).

figcraft_screenshot

ids (array), scale (number)

Rekam snapshot visual kanvas aktif atau frame tertentu dalam format PNG resolusi tinggi.

figcraft_ensure_gui

(none)

Periksa dan luncurkan otomatis jendela FigCraft GUI pada port kontrol 9099 jika belum aktif.


šŸ¤ Kolaborasi Powerful: Harness MCP + FigCraft MCP

FigCraft MCP dirancang untuk berkolaborasi langsung dengan principal-agentic-harness:

  1. Claim Task di Harness: Agen mengklaim tugas UI/UX melalui harness.claim_task.

  2. Inisialisasi Kanvas & Sistem Responsif: Agen membuat berkas dengan figcraft_create_and_open, lalu menghasilkan 3 artboard responsif (Desktop 1440, Tablet 768, Mobile 375) via figcraft_create_responsive_system.

  3. Desain Komponen Bebas Overflow: Agen menggunakan figcraft_create_component dan figcraft_create_autolayout_frame. Semua teks otomatis dibatasi dengan textAutoResize: 'height' sehingga tidak pernah meluber.

  4. Perbaikan Otomatis & Audit: Agen menjalankan figcraft_fix_overflow dan figcraft_audit_layout untuk memastikan 0 overflow dan 0 literal \n.

  5. Rekam Bukti & Verifikasi Quality Gate: Bukti audit kanvas langsung direkam ke Harness melalui harness.record_evidence dan checkpoint ditandai lulus via harness.update_quality_checkpoint.


šŸ“ Repository Structure

figcraft-mcp/
ā”œā”€ā”€ bin/
│   └── figcraft-mcp.js       # CLI runner for npx execution
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # Main stdio MCP entrypoint
│   ā”œā”€ā”€ server.ts             # McpServer instance & tool definitions (15 tools)
│   ā”œā”€ā”€ client.ts             # FigCraft Wire Socket Client (Port 9099)
│   ā”œā”€ā”€ layout.ts             # Luxury tokens, Auto-Layout normalizer & text sanitizer
│   ā”œā”€ā”€ components.ts         # High-level atomic UI components (Navbar, Hero, Card)
│   ā”œā”€ā”€ audit.ts              # Harness-ready layout audit & anti-overflow repair engine
│   ā”œā”€ā”€ template.ts           # Canonical .figcraft project builder
│   └── types.ts              # TypeScript interfaces & types
ā”œā”€ā”€ dist/                     # Compiled production ESM & types
ā”œā”€ā”€ package.json              # NPM manifest & metadata
ā”œā”€ā”€ tsconfig.json             # TypeScript configuration
ā”œā”€ā”€ LICENSE                   # MIT License
└── README.md                 # Complete documentation

šŸ“„ License

Distributed under the MIT License. See LICENSE for more information.

Author: Vicky Mosafan

Available Tools

30 tools
apply_luxury_themeA

Ubah palet warna dan styling kanvas aktif dari yang kaku/kusam ke tema modern Luxury Obsidian & Amber Gold / Radiant Cyan (tombol emas berkilau dengan glow shadow, kartu kaca glassmorphism, dan badge emerald neon).

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It does disclose the scope ('kanvas aktif') and precisely what visual changes will occur, which is real value beyond the name, but it omits that this is an irreversible bulk mutation that overwrites existing colors, and says nothing about permissions, undo, or what is returned.

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

Conciseness4/5

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

A single front-loaded sentence with the action first and the theme details in a parenthetical. The parenthetical is dense but every element (buttons, cards, badges) describes a distinct part of the restyle, so nothing is wasted.

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

Completeness3/5

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

For a zero-parameter tool with no output schema, the description is close to sufficient, but as an unannotated mutation it should state that existing styling is replaced wholesale and whether it applies to the whole page or a selection. It is also written in Indonesian while the sibling tool names and rest of the surface are English, which adds friction for tool selection.

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

Parameters4/5

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

The schema declares zero parameters at 100% coverage, so there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless tool.

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

Purpose4/5

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

States a specific verb and resource in Indonesian: 'Ubah palet warna dan styling kanvas aktif' (change the active canvas's color palette and styling), then enumerates the concrete visual outcome (gold buttons with glow, glassmorphism cards, neon emerald badges). An agent can tell this is a whole-canvas restyle rather than a node-level edit, though it never names a sibling such as set_properties or create_node to contrast with.

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

Usage Guidelines3/5

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

Usage is only implied by the phrase 'dari yang kaku/kusam' (from stiff/dull), which suggests applying it when an existing canvas looks plain. There is no explicit when-to-use vs when-not, no mention of whether it targets the whole file or a selection, and no prerequisite (e.g. an open, active document) is stated.

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

audit_layoutA

Audit kualitas layout kanvas secara otomatis untuk mendeteksi teks yang meluber melebihi kotak (overflow), teks escaped \n mentah, hierarki flat layers tanpa Auto-Layout, serta kelengkapan artboard responsif. Menghasilkan skor kualitas dan payload bukti untuk Harness MCP quality checkpoints.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose a meaningful behavior — that the tool returns a quality score plus an evidence payload — which is valuable since there is no output schema. However, it never states that the operation is read-only/non-mutating, whether it inspects the whole document or a selection, or what happens on an empty canvas.

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

Conciseness4/5

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

Two sentences with no filler: the first front-loads purpose and the enumerated check list, the second front-loads the return contract. The check list is long but each item is a distinct detection rule, so it earns its space. Slightly dense enumeration keeps it from a 5.

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

Completeness4/5

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

For a zero-parameter, self-contained diagnostic, the description covers both what is checked and what comes back (score + evidence payload), which is more than the structured fields provide since there is no output schema. It leaves out the score scale/thresholds and whether results are persisted, but nothing essential to invoking it is missing.

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

Parameters4/5

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

The tool takes zero parameters, so there are no parameter semantics to explain; the baseline for a parameterless tool applies. The description correctly describes the tool as a whole-canvas audit rather than implying any scoping input.

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

Purpose4/5

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

States a specific verb ('Audit') and resource ('kualitas layout kanvas') and enumerates four concrete checks: overflow text, raw escaped \n, flat layer hierarchy without Auto-Layout, and responsive artboard completeness. An agent can tell this is a diagnostic tool, not a fixer. However, it never names a sibling such as figcraft_fix_overflow or figcraft_create_responsive_system, so the differentiation from those is only implicit.

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

Usage Guidelines3/5

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

Mentions it produces evidence payloads 'untuk Harness MCP quality checkpoints', which implies the workflow where it belongs. But there is no explicit when-to-use or when-not-to-use guidance, and nothing tells the agent to run this audit before calling fix_overflow or create_responsive_system rather than after.

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

batchB

Jalankan serangkaian perintah manipulasi desain FigCraft secara atomik dalam satu batch transaksi.

NameRequiredDescriptionDefault
commandsYesDaftar perintah

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the single most important trait — all-or-nothing atomic execution — which is real value. However it says nothing about what happens when one command in the list fails, whether commands execute in array order, whether later commands see the effects of earlier ones, or whether a document must be open first.

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

Conciseness4/5

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

One well-formed sentence with the key property (atomicity) placed at the end as the distinguishing clause; nothing is padded. It is arguably too terse for a mutation tool, but there is no wasted wording.

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

Completeness3/5

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

Given a nested command-list input, no annotations, and no output schema, the description covers the core concept but leaves the agent guessing about failure semantics, execution order, and what the batch returns (per-command results vs. a single status). It is minimally adequate rather than complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the single 'commands' array and its command/params members are already documented in the schema. The description adds no syntax, ordering, or naming-convention detail beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and scope: running a series of FigCraft design-manipulation commands atomically in one batch transaction. This clearly separates it from single-command siblings like create_node or set_properties, but it never names those siblings or says 'use this instead of issuing each command separately', so the differentiation is inferred rather than asserted.

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

Usage Guidelines3/5

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

The word 'atomik' implies the use case (multiple dependent edits that must all succeed or all fail), but there is no explicit when-to-use, when-not-to-use, or named alternative. An agent must derive that individual command tools exist as the non-batch path from sibling names alone.

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

create_and_openB

Langkah 1 & 2 Kanonik: Buat berkas kanvas (.figcraft) beserta namanya di disk, lalu otomatis LANGSUNG buka berkas tersebut di jendela aktif FigCraft GUI di monitor pengguna tanpa perlu user buka manual.

NameRequiredDescriptionDefault
filePathYesPath file kanvas tujuan (contoh: designs/storefront.figcraft)
projectNameNoNama proyek desain (contoh: Aura Spatial Commerce)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden. It does disclose the notable side effect: the file is automatically opened in the user's active GUI window on their monitor without manual action, which is genuinely useful behavioral context. It omits equally important traits such as what happens if the target path already exists (overwrite? error?), permission requirements, and failure modes.

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

Conciseness3/5

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

A single sentence, front-loaded with the canonical step framing, which is good. However, the tail is padded with redundant emphasis ("otomatis LANGSUNG" plus "tanpa perlu user buka manual") that restates the same auto-open guarantee twice rather than adding information.

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

Completeness3/5

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

For a simple two-parameter creation tool with no output schema, the description adequately conveys what happens end to end. Gaps remain around overwrite/conflict behavior and the resulting document state, which matter for a mutating tool with zero annotation coverage.

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

Parameters3/5

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

Schema description coverage is 100%, with both filePath and projectName documented with examples in the schema itself, so the baseline is 3. The description adds nothing about path format, relative-vs-absolute resolution, or the role of projectName beyond the name field.

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

Purpose4/5

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

States a concrete two-part action: create a .figcraft canvas file on disk with a given name, then open it in the active FigCraft GUI window. Verb and resource are specific. It does not, however, distinguish itself from the very similar sibling 'figcraft_create_and_open' or from 'figcraft_open_file'/'figcraft_save_file', leaving an agent to infer whether these are duplicates.

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

Usage Guidelines3/5

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

"Langkah 1 & 2 Kanonik" implies this is the intended first step of a workflow, which is useful positioning. But there is no explicit when-not, no stated alternative (e.g., use open_file when the file already exists), and no prerequisites. Usage is implied rather than directed.

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

create_autolayout_frameC

Buat kontainer Auto-Layout (Figma-grade Flexbox) dengan arah vertikal/horizontal, padding, gap, alignment, sizing (hug/fill/fixed), corner smoothing (squircle), dan dropShadow/glassmorphism sehingga elemen tidak berantakan atau bertumpuk.

NameRequiredDescriptionDefault
xNoPosisi X (hanya untuk artboard root)
yNoPosisi Y (hanya untuk artboard root)
gapNoJarak antar elemen anak dalam pixel
nameYesNama kontainer frame (contoh: Navbar, Hero Stack, Card Grid)
widthNoLebar frame jika sizingH fixed
heightNoTinggi frame jika sizingV fixed
parentNoID parent frame (default: halaman aktif)
bgColorNoWarna latar solid hex (contoh: #131B2CD9)
effectsNoDaftar efek visual seperti dropShadow, layerBlur, backgroundBlur
paddingNoPadding pixel: angka atau [T, R, B, L]
sizingHNoPerilaku ukuran horizontalfill
sizingVNoPerilaku ukuran vertikalhug
crossGapNoJarak antar baris jika wrapping aktif
directionNoArah Auto-Layoutvertical
mainAlignNoAlignment sumbu utama (flex-direction)min
crossAlignNoAlignment sumbu silang (cross-axis)min
borderColorNoWarna border hex (contoh: #25334D)
borderWidthNoKetebalan border pixel
cornerRadiusNoRadius sudut kelengkungan (border-radius)
cornerSmoothingNoKehalusan sudut squircle (0-1, default: 0.6)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden of behavioral disclosure. It implies a mutation ('Buat' / create) and lists supported visual features, but does not state what document state is modified, whether an active file or page is required, what is returned, 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.

Conciseness4/5

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

The description is a single front-loaded sentence that immediately identifies the tool's purpose and then lists key capabilities. It is dense because it enumerates many features, but it is not padded or repetitive.

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

Completeness3/5

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

The schema is rich and fully documented, which covers the large parameter surface. However, for a complex creation tool with no annotations and no output schema, the description still omits behavioral details such as side effects, return value, and usage guidance, leaving clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all 20 parameters are already well documented in the schema. The description names several feature areas but adds no syntax, constraints, or meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource: creating an Auto-Layout container, and enumerates the key capabilities such as direction, padding, gap, alignment, sizing, corner smoothing, and effects. It is clear what the tool does, but it does not distinguish itself from sibling creation tools like create_node, create_component, or create_responsive_system.

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

Usage Guidelines2/5

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

The description explains what the tool creates and gives a generic motivation ('so elements are not messy or overlapping'), but gives no explicit when-to-use guidance. It does not mention alternatives, prerequisites, or when to prefer this over sibling tools such as create_responsive_system or create_node.

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

create_componentB

Hasilkan komponen UI modern Luxury Obsidian Titanium siap pakai dengan anti-overflow guarantee: "navbar" (logo + links + radiant CTA), "hero" (neon emerald badge + multiline display + dual buttons), atau "card" (media slot + tag + title + body + radiant gold price/cta).

NameRequiredDescriptionDefault
typeYesTipe komponen yang dibuat
parentYesID frame kontainer tempat komponen diletakkan
optionsYesOpsi komponen (title, subtitle, badge, brandName, links, price, buttonLabel, theme, dll)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It does contribute real behavioral information — the components come 'siap pakai' (pre-styled) with an 'anti-overflow guarantee', implying no further overflow fixing is needed — but it is silent on what is actually returned (node IDs for wiring?), how many child nodes get created, and required document state.

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

Conciseness4/5

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

One dense sentence, front-loaded with the capability and the standout guarantee, with the three variants listed in a parallel structure. It is marketing-flavoured ('Luxury Obsidian Titanium', 'radiant gold') but nearly every clause carries information about output content.

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

Completeness3/5

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

Three required parameters with a nested, loosely-typed `options` object and no output schema make this moderately complex, yet the description never states the return value or the failure/lookup semantics for `parent`. It adequately describes what gets built but not enough for an agent to plan the follow-up call (e.g. setting properties on the new node).

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by mapping each `type` value to the option fields it expects (navbar → logo/links/CTA, hero → badge/display/dual buttons, card → media/tag/title/body/price). This gives the otherwise open `options` object concrete meaning that the schema's 'additionalProperties: {}' does not.

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

Purpose4/5

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

The description opens with a specific verb + resource ('Hasilkan komponen UI modern') and enumerates the three exact output types matching the enum (navbar, hero, card) with their visual contents. That makes it distinguishable from siblings like create_node or create_autolayout_frame, though no sibling is ever named explicitly.

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

Usage Guidelines2/5

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

It never says when to pick this tool over figcraft_create_node or figcraft_create_autolayout_frame, nor what prerequisites apply (e.g. that `parent` must be an existing frame). The only implied guidance is that callers choose one of three types; there are no exclusions or alternative-routing advice.

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

create_nodeB

Langkah 3 Kanonik: Gambar elemen visual (frame, rectangle, text, ellipse, button, dll) secara LIVE langsung di kanvas dengan pembersihan otomatis karakter \n dan perlindungan otomatis dari teks meluber (textAutoResize: "height").

NameRequiredDescriptionDefault
xNoPosisi X relatif terhadap parent
yNoPosisi Y relatif terhadap parent
nameNoNama layer
textNoIsi teks (jika type = text, otomatis disanitasi dari literal \n dan dibungkus rapi)
typeYesTipe node layer
propsNoProperti visual: fills, strokes, cornerRadius, cornerSmoothing, effects, fontSize, fontFamily, fontWeight, layout, gap, padding, textAutoResize, dll.
widthNoLebar layer dalam pixel
heightNoTinggi layer dalam pixel
parentNoID parent frame (default: current page)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden; it does disclose that drawing is LIVE on the canvas (a document mutation) and that it auto-sanitizes \n and auto-applies textAutoResize: 'height'. It omits prerequisites (open file), whether changes are undoable, failure behavior, and what is returned, leaving real gaps for a mutation tool.

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

Conciseness4/5

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

A single front-loaded sentence with the workflow position, verb, and supported types stated early. The parenthetical type list is long but functional; nothing is truly redundant.

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

Completeness3/5

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

For a nine-parameter mutation tool with no annotations and no output schema, the description covers the core behavior but leaves the agent without prerequisites, side-effect scope, or result expectations. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all nine parameters, setting the baseline at 3. The description reinforces the text-handling behavior (sanitization, auto-wrap) and the props escape hatch, but adds no new syntax or constraint details.

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

Purpose4/5

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

States a concrete verb (gambar/draw) and enumerates the node types it can produce, plus its position as 'Langkah 3 Kanonik'. It does not explicitly contrast itself with neighbors like create_autolayout_frame or create_component, which also create nodes, so an agent could still be unsure which creator to pick.

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

Usage Guidelines3/5

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

The phrase 'Langkah 3 Kanonik' implies this is a step in a prescribed workflow, but no condition tells the agent when to use this versus create_autolayout_frame, create_component, or batch. Usage is implied rather than stated.

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

create_responsive_systemB

Buat sistem 3 Artboard Responsif tersinkronisasi berdampingan di kanvas (Desktop 1440px, Tablet 768px, Mobile 375px) dengan Auto-Layout root frame vertikal dan tema warna Luxury Obsidian Titanium. Terintegrasi penuh dengan Harness MCP responsive verification.

NameRequiredDescriptionDefault
themeNoTema visual kanvas: luxury (Obsidian & Amber Gold), dark, atau lightluxury
projectNameNoNama proyek/halaman (contoh: Storefront Landing Page)

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the burden. It usefully discloses the structural output (three synced artboards, vertical auto-layout root) and the applied theme, but omits preconditions (does a file need to be open?), side effects on existing canvas content, and return values. Meaningful but incomplete behavioral disclosure for a mutating creation tool.

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

Conciseness4/5

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

A single front-loaded sentence with the verb first and no filler; the parenthetical dimensions are efficient. It is dense with jargon ('Harness MCP responsive verification') but every clause adds substance.

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

Completeness3/5

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

For a tool that spawns three artboards with no annotations and no output schema, the description covers the visible output structure and theme well but leaves preconditions and return behavior unstated. Adequate but with clear gaps relative to the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, with a documented theme enum and projectName example, so the schema already does the heavy lifting. The description only echoes the luxury theme value ('Luxury Obsidian Titanium') and adds nothing about projectName, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource: it creates a 3-artboard responsive system on canvas, and names the exact breakpoints (Desktop 1440px, Tablet 768px, Mobile 375px) plus the auto-layout root structure. An agent knows precisely what gets produced, though it never differentiates itself from siblings like create_autolayout_frame or figcraft_create_responsive_system.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named despite several overlapping siblings (create_autolayout_frame, apply_luxury_theme). The 'Harness MCP responsive verification' clause implies downstream context but does not route the agent to or away from this tool.

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

ensure_guiB

Pastikan FigCraft GUI berjalan aktif dengan jendela interaktif di monitor pengguna pada port kontrol 9099.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It usefully discloses the control port (9099) and that an interactive window must appear on the user's monitor, which tells the agent this is a side-effecting environment-setup operation. However, it does not say whether the tool launches a process, whether it is idempotent when the GUI is already running, whether it blocks until the window appears, or how failure is signalled.

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

Conciseness4/5

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

A single front-loaded sentence with the verb first and no filler. The only friction is that it is written in Indonesian while the surrounding tool ecosystem and sibling names are English, which adds a small parsing cost rather than verbosity.

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

Completeness3/5

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

With no parameters, no output schema, and no annotations, the description is the sole source of behavioral information, and it omits the practically important details: blocking vs non-blocking behaviour, what is returned on success, and what happens on failure (e.g. no display available). Adequate to know what the tool does, but not complete enough to predict its runtime behaviour.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is nothing to misdocument. The description correctly implies a parameterless call whose behaviour is fully determined by the fixed port 9099 and the user's monitor.

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

Purpose4/5

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

The description states a concrete verb and resource ('Pastikan FigCraft GUI berjalan aktif' — ensure the FigCraft GUI is actively running) plus specifics: an interactive window on the user's monitor and control port 9099. That is enough to distinguish it from siblings like figcraft_screenshot or figcraft_open_file. It stops short of explicitly contrasting itself with related GUI/session tools, so it is clear but not differentiated by name.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of prerequisites, and no mention of alternatives. The agent must infer that this should be called before GUI-dependent operations, and it is told nothing about whether it is safe or necessary to call when the GUI is already running. Usage is only weakly implied by the word 'ensure'.

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

figcraft_apply_luxury_themeB

Ubah palet warna dan styling kanvas aktif dari yang kaku/kusam ke tema modern Luxury Obsidian & Amber Gold / Radiant Cyan (tombol emas berkilau dengan glow shadow, kartu kaca glassmorphism, dan badge emerald neon).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for what is a mutating restyle operation. It describes the visual result but never says that existing colors and styles are overwritten, whether the change is reversible or undoable, which nodes/frames are affected, or what happens if no canvas is active. The concrete visual detail is welcome, but the mutation's scope and consequences remain undisclosed.

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

Conciseness3/5

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

It is a single sentence with the action front-loaded, which is good. But the sentence is overloaded with decorative parenthetical detail and presents two alternative theme names separated by a slash without explaining how the choice is made, which reads as clutter rather than information for a zero-parameter tool.

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

Completeness2/5

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

For a zero-parameter, annotation-free mutation with no output schema, the description should cover preconditions, affected scope, and reversibility. It omits all of these: no statement of whether the whole document or only the current frame is restyled, no indication of which of the two themes wins, and no mention of what happens with no open canvas.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate, and the baseline of 4 applies. All of the behavior is conveyed through the narrative rather than through parameter options.

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

Purpose4/5

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

The description states a concrete verb and resource: changing the color palette and styling of the active canvas, and it enumerates the target look (gold glow buttons, glassmorphism cards, neon emerald badges). That is far more specific than the sibling names like set_properties or create_node. It stops short of naming which sibling it is not, and the two themes offered side by side ('Luxury Obsidian & Amber Gold / Radiant Cyan') leave it unclear which one is actually applied.

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

Usage Guidelines3/5

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

The phrase 'dari yang kaku/kusam ke tema modern' implies the trigger condition: an existing canvas that looks stiff or dull. Mentioning 'kanvas aktif' also hints that an active document must exist first. However, there is no explicit when-not guidance and no routing to alternatives such as set_properties for manual restyling, so the agent must infer usage.

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

figcraft_audit_layoutA

Audit kualitas layout kanvas secara otomatis untuk mendeteksi teks yang meluber melebihi kotak (overflow), teks escaped \n mentah, hierarki flat layers tanpa Auto-Layout, serta kelengkapan artboard responsif. Menghasilkan skor kualitas dan payload bukti untuk Harness MCP quality checkpoints.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden. 'Audit' and 'Menghasilkan skor kualitas dan payload bukti' strongly imply a non-mutating read, but this is never stated outright, and the description does not say what scope is examined (current open document, selection, or page) or whether it requires an open file. The scoring output behavior is disclosed, which is genuinely useful context.

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

Conciseness4/5

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

Two tightly packed sentences: the first front-loads the audit scope and enumerated checks, the second states the output. No filler, though the enumerated list is dense enough that an English-language agent may need a moment to parse it, and the description is written in Indonesian while the surrounding tool ecosystem is English-named.

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

Completeness3/5

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

Since there is no output schema, the description must explain return values and does so partially (quality score plus evidence payload). However, for a zero-param tool whose behavior depends entirely on ambient state, the omission of what document/scope is audited and whether a file must be open leaves a real operational gap.

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

Parameters4/5

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

The tool takes zero parameters with 100% schema coverage, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly avoids restating schema details that do not exist.

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

Purpose4/5

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

The description names a specific verb ('Audit kualitas layout... secara otomatis') and enumerates the exact checks performed: overflow, raw escaped \n, flat layer hierarchy without Auto-Layout, and responsive artboard completeness. This is far more informative than a restatement of the name, though it never explicitly contrasts itself with the sibling fix_overflow, which is the natural confusion point (audit vs. remediate).

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

Usage Guidelines3/5

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

Usage is only implied: the mention of 'Harness MCP quality checkpoints' hints that this is a pre-check step, but there is no explicit statement of when to call it versus fix_overflow or inspect_document, and no precondition such as requiring a file to be open. The agent must infer the workflow position from the output description alone.

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

figcraft_batchB

Jalankan serangkaian perintah manipulasi desain FigCraft secara atomik dalam satu batch transaksi.

NameRequiredDescriptionDefault
commandsYesDaftar perintah

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full load, and it does disclose one meaningful trait: atomic transactional execution. It leaves out what happens on partial failure, whether commands run in order, rollback behavior, and any permission or rate constraints.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It could be tightened slightly but nothing is redundant.

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

Completeness3/5

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

For a one-parameter tool the description covers the core idea, and there is no output schema to explain. However, an atomic batch executor is exactly the kind of tool where failure and rollback semantics matter, and those are absent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the commands array, its items, and the command/params split. The description adds no semantics of its own, such as ordering guarantees or examples of valid command names.

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

Purpose4/5

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

The description names a specific action and object: running a series of FigCraft design manipulation commands as one atomic batch. That distinguishes it from the single-operation siblings such as create_node or set_properties, though it never names a sibling or says which commands are admissible.

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

Usage Guidelines2/5

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

There is no guidance on when an agent should batch operations versus calling the individual sibling tools, nor any prerequisite or exclusion stated. The word 'atomically' implies a use case (all-or-nothing multi-step edits) but the agent must infer it.

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

figcraft_create_and_openB

Langkah 1 & 2 Kanonik: Buat berkas kanvas (.figcraft) beserta namanya di disk, lalu otomatis LANGSUNG buka berkas tersebut di jendela aktif FigCraft GUI di monitor pengguna tanpa perlu user buka manual.

NameRequiredDescriptionDefault
filePathYesPath file kanvas tujuan (contoh: designs/storefront.figcraft)
projectNameNoNama proyek desain (contoh: Aura Spatial Commerce)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that the file is written to disk and then opened in the user's active GUI window without manual intervention, which is meaningful side-effect context. It does not address what happens if the target path already exists (overwrite vs. error), permission requirements, or failure behavior.

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

Conciseness4/5

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

A single front-loaded sentence that leads with the step designation and the create action, then the open action. Capitalized emphasis words are slightly noisy but the sentence earns its place overall.

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

Completeness3/5

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

For a two-parameter tool with no output schema and no annotations, the definition covers the core action but omits the return value (created path? window handle?) and overwrite/error semantics. Adequate to invoke, incomplete for handling edge cases.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters carry examples, so the schema already does the heavy lifting. The description's phrase 'beserta namanya' loosely signals that a project name accompanies the file, but adds no format, path-resolution, or validation detail beyond the schema.

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

Purpose4/5

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

The description states a concrete compound action: create a .figcraft canvas file on disk with its name, then immediately open it in the active FigCraft GUI window. The verb+resource pairing is specific and the two-step nature is clear. It only weakly differentiates from siblings like figcraft_open_file and figcraft_create_node, which it never mentions.

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

Usage Guidelines3/5

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

'Langkah 1 & 2 Kanonik' implies this is the canonical starting step for a design workflow, which is useful framing. However, it never states when to prefer this over figcraft_open_file (existing file) or when not to use it, leaving the agent to infer the boundary.

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

figcraft_create_autolayout_frameB

Buat kontainer Auto-Layout (Figma-grade Flexbox) dengan arah vertikal/horizontal, padding, gap, alignment, sizing (hug/fill/fixed), corner smoothing (squircle), dan dropShadow/glassmorphism sehingga elemen tidak berantakan atau bertumpuk.

NameRequiredDescriptionDefault
xNoPosisi X (hanya untuk artboard root)
yNoPosisi Y (hanya untuk artboard root)
gapNoJarak antar elemen anak dalam pixel
nameYesNama kontainer frame (contoh: Navbar, Hero Stack, Card Grid)
widthNoLebar frame jika sizingH fixed
heightNoTinggi frame jika sizingV fixed
parentNoID parent frame (default: halaman aktif)
bgColorNoWarna latar solid hex (contoh: #131B2CD9)
effectsNoDaftar efek visual seperti dropShadow, layerBlur, backgroundBlur
paddingNoPadding pixel: angka atau [T, R, B, L]
sizingHNoPerilaku ukuran horizontalfill
sizingVNoPerilaku ukuran vertikalhug
crossGapNoJarak antar baris jika wrapping aktif
directionNoArah Auto-Layoutvertical
mainAlignNoAlignment sumbu utama (flex-direction)min
crossAlignNoAlignment sumbu silang (cross-axis)min
borderColorNoWarna border hex (contoh: #25334D)
borderWidthNoKetebalan border pixel
cornerRadiusNoRadius sudut kelengkungan (border-radius)
cornerSmoothingNoKehalusan sudut squircle (0-1, default: 0.6)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It states that a container is created but does not disclose that this mutates the active document, what is returned (the new frame's ID, needed for the 'parent' parameter), whether a file must be open first, or how effects like glassmorphism/dropShadow are resolved. Only the schema's own x/y note hints at artboard-root behavior.

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

Conciseness4/5

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

It is a single front-loaded sentence that opens with the action and then enumerates capabilities, with no filler or repetition. It is keyword-dense and slightly hard to parse, but every clause maps to a real capability of the tool.

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

Completeness3/5

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

For a 20-parameter mutation tool with no annotations and no output schema, the description covers what is built but omits return value, document-state prerequisites, and how the created frame is referenced afterwards. The 100% schema coverage compensates for parameter gaps, leaving this at minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so every one of the 20 parameters is already documented in the schema, including enums and defaults. The description restates the feature set (padding, gap, sizing, corner smoothing) but adds no syntax, constraints, or interaction rules beyond what the schema already supplies; baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb+resource ('Buat kontainer Auto-Layout') and enumerates the capabilities (direction, padding, gap, alignment, sizing, corner smoothing, effects). It is clear what the tool creates, but it never distinguishes itself from the near-identical sibling 'create_autolayout_frame' / 'figcraft_create_autolayout_frame' variants listed alongside it.

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

Usage Guidelines3/5

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

The closing clause ('sehingga elemen tidak berantakan atau bertumpuk') implies the use case — arranging child elements without overlap — but there is no explicit when-to-use vs. when-to-use-alternative guidance, no prerequisites (e.g. an open file or existing parent), and no mention of when 'create_node' or 'create_responsive_system' would be preferred.

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

figcraft_create_componentB

Hasilkan komponen UI modern Luxury Obsidian Titanium siap pakai dengan anti-overflow guarantee: "navbar" (logo + links + radiant CTA), "hero" (neon emerald badge + multiline display + dual buttons), atau "card" (media slot + tag + title + body + radiant gold price/cta).

NameRequiredDescriptionDefault
typeYesTipe komponen yang dibuat
parentYesID frame kontainer tempat komponen diletakkan
optionsYesOpsi komponen (title, subtitle, badge, brandName, links, price, buttonLabel, theme, dll)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations present the description carries the full behavioral burden. It does disclose useful traits: the components come pre-styled in a specific luxury theme and are guaranteed overflow-free, which tells the agent it is a hostile-layout-safe mutation. However, it never says that the tool mutates the document, that a file must be open, what is returned (node IDs?), or how failure is signalled.

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

Conciseness4/5

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

A single dense sentence that front-loads the value proposition (ready-made luxury components with anti-overflow) before the variant list. It is efficient, though the heavy inline enumeration of variant internals makes it slightly hard to scan.

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

Completeness3/5

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

For a three-parameter mutation tool with a free-form nested options object and no output schema, the description covers what the tool produces but leaves out the return value, preconditions, and which option keys are meaningful for which variant. Adequate, with clear gaps an agent would have to discover by trial.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds real meaning for the `type` enum by describing the composition of each variant (logo + links + CTA, badge + display + dual buttons, media + tag + title + body + price), but it adds nothing about `parent` or the nested `options` keys beyond what the schema already offers.

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

Purpose4/5

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

States a specific verb and resource ('Hasilkan komponen UI ... siap pakai') and enumerates the three concrete variants (navbar, hero, card) with their constituent parts, which lets an agent predict the output. It does not explicitly distinguish itself from sibling node-creation tools such as create_node or create_autolayout_frame, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no mention of alternatives like apply_luxury_theme, create_autolayout_frame, or fix_overflow. The 'anti-overflow guarantee' hints at a reason to prefer this tool, but the agent must infer that, and no prerequisites (open file, valid parent frame) are stated.

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

figcraft_create_nodeB

Langkah 3 Kanonik: Gambar elemen visual (frame, rectangle, text, ellipse, button, dll) secara LIVE langsung di kanvas dengan pembersihan otomatis karakter \n dan perlindungan otomatis dari teks meluber (textAutoResize: "height").

NameRequiredDescriptionDefault
xNoPosisi X relatif terhadap parent
yNoPosisi Y relatif terhadap parent
nameNoNama layer
textNoIsi teks (jika type = text, otomatis disanitasi dari literal \n dan dibungkus rapi)
typeYesTipe node layer
propsNoProperti visual: fills, strokes, cornerRadius, cornerSmoothing, effects, fontSize, fontFamily, fontWeight, layout, gap, padding, textAutoResize, dll.
widthNoLebar layer dalam pixel
heightNoTinggi layer dalam pixel
parentNoID parent frame (default: current page)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden; it does disclose useful behavior beyond the schema — LIVE canvas mutation, automatic sanitization of literal \n in text, and automatic textAutoResize 'height' to prevent overflow. It does not say what is returned (crucially the new node's ID, needed as a 'parent' for later calls), whether it requires an open document, or whether existing canvas content is affected.

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

Conciseness4/5

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

A single front-loaded sentence with no redundancy; the enumerated node types and the two automatic behaviors are packed efficiently. The 'Langkah 3 Kanonik' preamble adds little for tool selection but costs only a few words.

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

Completeness3/5

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

For a 9-parameter mutation tool with a nested free-form props object and no annotations or output schema, the description is only partially sufficient. It explains text handling but omits the return value (node ID), the required document/page state, and how it relates to the alternate creation tools, leaving real gaps for correct chaining.

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

Parameters3/5

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

Schema description coverage is 100%, so all nine parameters are already documented, which sets the baseline at 3. The description adds a little meaning for 'text' (sanitized, wrapped) and textAutoResize, but says nothing about the free-form 'props' object, the coordinate system, or the 'parent' ID fallback beyond what the schema already states.

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

Purpose4/5

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

States a concrete verb+resource: drawing visual elements (frame, rectangle, text, ellipse, button, etc.) LIVE onto the canvas, which is clearly distinct from read/audit tools. However, it does not distinguish itself from close siblings such as figcraft_create_autolayout_frame, figcraft_create_component, or create_node, so an agent cannot tell from the text alone which constructor to pick.

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

Usage Guidelines2/5

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

The only usage signal is the phrase 'Langkah 3 Kanonik' (canonical step 3), which implies a position in some workflow but never states when to use this tool, when not to, or which alternative to prefer. No prerequisites (e.g., an open file/active page, a valid parent ID) are mentioned.

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

figcraft_create_responsive_systemB

Buat sistem 3 Artboard Responsif tersinkronisasi berdampingan di kanvas (Desktop 1440px, Tablet 768px, Mobile 375px) dengan Auto-Layout root frame vertikal dan tema warna Luxury Obsidian Titanium. Terintegrasi penuh dengan Harness MCP responsive verification.

NameRequiredDescriptionDefault
themeNoTema visual kanvas: luxury (Obsidian & Amber Gold), dark, atau lightluxury
projectNameNoNama proyek/halaman (contoh: Storefront Landing Page)

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the behavioral burden. It usefully discloses the concrete output shape (three side-by-side artboards at fixed widths, vertical Auto-Layout root, Obsidian/Titanium palette) but omits side effects: whether existing canvas content is replaced or appended to, whether the operation is reversible, and what the 'Harness MCP responsive verification' integration actually does. That last phrase is marketing-level rather than operational.

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

Conciseness4/5

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

A single front-loaded sentence that puts the action and the three breakpoints first, with supporting detail trailing. It is dense and slightly run-on, and the trailing Harness MCP clause adds little, but there is no filler paragraph and nothing is buried.

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

Completeness3/5

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

For a multi-artboard generator with no annotations and no output schema, the description covers what will be produced but not the conditions of invocation (open document state, permissions) or the result contract an agent would need to verify success. Adequate but with clear gaps for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema, including the theme enum with its 'luxury (Obsidian & Amber Gold)' value. The description restates the luxury theme but adds nothing about the projectName parameter, so it does not meaningfully exceed the schema baseline.

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

Purpose4/5

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

The description gives a specific verb and resource ('Buat sistem 3 Artboard Responsif') plus concrete scope: three synchronized artboards at 1440/768/375px with a vertical Auto-Layout root frame and a named theme. This distinguishes it from the single-frame sibling figcraft_create_autolayout_frame, though it never names or explicitly contrasts any sibling.

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

Usage Guidelines3/5

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

Usage is only implied by the composite nature of the tool: an agent can infer it is the one-shot option for a full responsive trio, but the description never says when to prefer it over create_autolayout_frame + apply_luxury_theme done manually, nor does it list prerequisites such as an already-open file.

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

figcraft_ensure_guiA

Pastikan FigCraft GUI berjalan aktif dengan jendela interaktif di monitor pengguna pada port kontrol 9099.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the important behavioral facts: an interactive window is launched/confirmed on the user's monitor and the control channel is on port 9099. It does not say whether the call is idempotent when the GUI is already running, what side effects occur, or what the caller gets back.

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

Conciseness5/5

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

A single sentence with the action, the target state, and the port front-loaded. Nothing is wasted and nothing is buried.

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

Completeness3/5

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

For a zero-parameter, side-effecting GUI launch tool with no annotations and no output schema, the description needs to explain idempotency, failure modes, and what the caller can rely on afterwards. It conveys the core action and port but leaves those gaps, so it is adequate rather than complete.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description's mention of port 9099 is useful context even though it is not an input.

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

Purpose4/5

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

The description states a concrete verb and resource: ensure the FigCraft GUI is actively running with an interactive window on the user's monitor, plus the control port (9099). That is much more than a restatement of the name. It does not, however, differentiate itself from siblings like figcraft_create_and_open or ensure_gui.

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

Usage Guidelines3/5

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

"Pastikan ... berjalan aktif" implies this is the tool to call when the GUI may not be up, which gives an implied trigger condition. There is no explicit when-not guidance, no mention of prerequisites, and no reference to alternative tools such as figcraft_create_and_open for opening a document.

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

figcraft_fix_overflowB

Pindai seluruh kanvas dan perbaiki otomatis teks yang melebihi batas kotaknya (text overflow) serta bersihkan karakter \n escaped mentah menjadi multiline wraps rapi dengan textAutoResize: "height".

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the tool scans the entire canvas and mutates text properties by setting textAutoResize to 'height', but it does not state whether changes are reversible, whether permissions are required, or what the tool returns.

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

Conciseness4/5

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

The description is a single front-loaded sentence that identifies the canvas-wide scan and the two fixes. It is dense but efficient; no sentence is wasted, though the phrasing is slightly long for the amount of guidance provided.

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

Completeness3/5

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

For a no-parameter mutation tool with no annotations and no output schema, the description covers the scope and the specific changes made. However, it omits safety context such as reversibility, report of changes, and any error behavior, leaving meaningful gaps for an agent invoking a canvas-wide mutation.

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

Parameters4/5

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

There are zero parameters, and the schema coverage is full. The description adds relevant detail about the automatic behavior and the textAutoResize setting, though parameter semantics are not applicable for a no-argument tool.

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

Purpose4/5

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

The description uses a specific verb and resource: it scans the entire canvas and automatically fixes text overflow and escaped newline characters. It clearly states the tool's main outcome, but it does not explicitly distinguish itself from the sibling fix_overflow tool, which may have overlapping purpose.

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

Usage Guidelines2/5

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

It implies usage in the context of text overflow and raw escaped newlines, but it gives no explicit when-to-use guidance, no prerequisites, and no alternatives. The sibling fix_overflow is not mentioned or differentiated.

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

figcraft_inspect_documentA

Inspeksi hierarki kanvas dokumen aktif: halaman, layer, frame, styling, dan bounding box.

NameRequiredDescriptionDefault
depthNoKedalaman inspeksi tree layer
allPagesNoPeriksa seluruh halaman

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. 'Inspeksi' implies a non-mutating read and the enumeration gives some sense of the returned structure, but it never confirms read-only behavior, mentions that output could be large for deep canvases, or states prerequisites such as an open document.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the covered resources are listed compactly after the core statement. Slightly more structure (e.g. separating purpose from returned content) would earn a 5.

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

Completeness4/5

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

With no output schema, the description usefully enumerates what the inspection returns (hierarchy, styling, bounding boxes), covering the main gap. It does not explain read-only semantics or output size, which matters for a tree-walk tool with a depth parameter.

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

Parameters3/5

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

Schema description coverage is 100% – both 'depth' and 'allPages' are documented in the schema with defaults. The description adds no meaning beyond that (e.g. what depth=4 actually yields or when to set allPages), so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb ('Inspeksi') and a specific resource ('hierarki kanvas dokumen aktif'), then enumerates what is covered: pages, layers, frames, styling, and bounding boxes. It is clearly the read/inspection counterpart to the many create/set siblings, though it never names them explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: inspecting the 'active document' suggests a file must already be open, which hints at a prerequisite. There is no statement of when to prefer this over figcraft_screenshot or figcraft_audit_layout, and no exclusions or alternatives are given.

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

figcraft_open_fileA

Buka berkas desain (.figcraft, .json, .fig, .sketch, .svg, gambar) ke tab aktif di GUI FigCraft.

NameRequiredDescriptionDefault
filePathYesPath berkas yang akan dibuka

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full load. It does disclose a real behavioral trait — the file lands in the active tab rather than a new one, and which formats are accepted — but it stays silent on side effects (does opening replace the current tab's contents?), failure modes for missing/unsupported files, and the GUI prerequisite.

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

Conciseness4/5

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

A single well-formed sentence with the action front-loaded and no filler. It is efficient, though the format list crowds out the routing and prerequisite information an agent actually needs before calling it.

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

Completeness3/5

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

For a one-parameter tool this covers the core action, but with no annotations and no output schema the description should say what opening returns (e.g. a document handle needed by sibling tools like inspect_document or set_properties) and confirm the GUI prerequisite. Those gaps leave the agent guessing about follow-up calls.

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

Parameters4/5

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

Schema coverage is 100%, so the filePath parameter is already documented in the schema. The description still adds value by enumerating the file types filePath will accept, telling the agent what inputs are valid beyond the plain 'path to open' schema text.

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

Purpose4/5

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

The description gives a specific verb and resource ('Buka berkas desain') and adds scope detail: the target is the active tab in the FigCraft GUI, plus an enumerated list of accepted formats (.figcraft, .json, .fig, .sketch, .svg, images). It does not, however, differentiate itself from the sibling figcraft_create_and_open, so an agent must infer that this one only opens existing files.

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

Usage Guidelines3/5

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

Usage is only implied: opening an existing design file as opposed to creating one. The description never states when to prefer this over figcraft_create_and_open, nor any precondition such as the GUI needing to be running (a sibling figcraft_ensure_gui exists, which suggests a prerequisite worth mentioning).

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

figcraft_save_fileC

Simpan dokumen aktif di FigCraft ke disk (.figcraft).

NameRequiredDescriptionDefault
pathNoPath berkas penyimpanan (opsional, default: path berkas saat dibuka)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It only says the active document is saved to disk; it does not mention overwrite behavior, required active-document state, permission needs, or error conditions, which are important for a write operation.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted wording. It is efficient, though its brevity contributes to the gaps in usage and behavioral detail.

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

Completeness3/5

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

For a simple one-parameter save tool with no output schema, the description covers the core action adequately. However, with no annotations, it should disclose more about save semantics such as overwriting and default path behavior to be fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already fully documents the optional 'path' parameter and its default behavior. The description adds no further parameter meaning beyond what the schema provides, which matches the baseline for high schema coverage.

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

Purpose4/5

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

The description states a specific verb and resource: saving the active FigCraft document to disk as '.figcraft'. This distinguishes it from read-oriented siblings such as figcraft_open_file, but it does not explicitly name or differentiate itself from related save/open workflows.

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

Usage Guidelines2/5

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

The description implies the save action but gives no explicit guidance on when to use this tool versus alternatives such as figcraft_open_file or create_and_open. No prerequisites, exclusions, or conditions for invocation are stated.

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

figcraft_screenshotC

Ambil snapshot visual kanvas aktif atau frame tertentu dalam format PNG untuk bukti Harness quality gate.

NameRequiredDescriptionDefault
idsNoID frame spesifik untuk diekspor (opsional, default: seluruh halaman)
scaleNoSkala resolusi render (default: 1)

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the output format. It does not say whether a file is written to disk and where, whether image data is returned, whether the operation is read-only or has side effects, or what happens if no frame matches the given ids. For a capture tool with zero annotation coverage, this is a serious gap.

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

Conciseness4/5

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

A single compact sentence that front-loads the action and the object being captured. The 'Harness quality gate' clause is domain jargon that consumes space without informing an agent how to call the tool, which keeps it from a 5.

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

Completeness2/5

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

Two optional parameters and no annotations or output schema mean the description must explain what comes back and any side effects, and it does neither. An agent cannot tell whether the result is a file path, image bytes, or a URL, nor whether a file gets written. Only the PNG format is specified.

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

Parameters3/5

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

Schema description coverage is 100%, so both the ids array and scale parameter are already documented in the schema. The description only restates the canvas-versus-specific-frame distinction that the schema's ids description already conveys, adding no syntax, format, or range detail beyond it. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource: take a visual snapshot of the active canvas or a specific frame in PNG format. That is clearly distinguishable from siblings like create_node or audit_layout. The trailing phrase about 'Harness quality gate evidence' adds a use motive rather than a new capability, and the near-identical sibling named 'screenshot' is not differentiated.

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

Usage Guidelines3/5

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

Usage is implied by the phrase 'untuk bukti Harness quality gate', which suggests capturing evidence for a quality gate. However, there is no explicit statement of when to prefer this over audit_layout or inspect_document, and no mention of prerequisites such as an open file or GUI being ready (note the sibling figcraft_ensure_gui exists).

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

figcraft_set_propertiesC

Ubah properti visual (fills, stroke, tipografi, corner radius, corner smoothing, effects, auto-layout) pada node yang ada di kanvas.

NameRequiredDescriptionDefault
idYesID layer yang akan diubah
propsYesProperti yang diubah

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden. It says the target must already exist, but does not disclose whether props are merged into or replace existing styling, whether the operation is reversible or undoable, what happens to property families omitted from props, or what the call returns on success or partial failure. For a mutation tool with zero annotation coverage this is a substantial omission.

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

Conciseness4/5

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

One sentence, front-loaded with the verb and the property enumeration, with no filler. It is efficient rather than padded; the shortfall is under-specification, not verbosity.

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

Completeness2/5

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

The tool mutates the document, accepts a nested free-form props object, has no annotations, and has no output schema. Against that complexity the description answers only 'what categories can I set' and leaves merge semantics, validation failures, and return behavior unaddressed, so an agent cannot confidently call it on an existing node.

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

Parameters3/5

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

Schema coverage is nominally 100%, but the props parameter is a free-form object with additionalProperties: {}, so the schema itself explains almost nothing about expected keys or value formats. The description partially compensates by naming the supported property categories, which is genuinely additive for an untyped bag. It still gives no key names, value shapes (e.g. color format, radius units), or guidance for nested auto-layout objects.

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

Purpose4/5

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

States a specific verb (change/update) and resource (visual properties on an existing canvas node) and enumerates the property families covered: fills, stroke, typography, corner radius, corner smoothing, effects, auto-layout. That is concrete enough to separate it from create_node or create_autolayout_frame, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

The phrase 'pada node yang ada di kanvas' implicitly scopes it to nodes that already exist, which is a small hint versus creation tools. But there is no explicit when-to-use, no prerequisites, and no mention of alternatives such as create_node or batch for applying the same change to many nodes.

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

fix_overflowA

Pindai seluruh kanvas dan perbaiki otomatis teks yang melebihi batas kotaknya (text overflow) serta bersihkan karakter \n escaped mentah menjadi multiline wraps rapi dengan textAutoResize: "height".

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the document-wide scope and that it mutates text nodes by setting textAutoResize to "height", which is valuable, but it says nothing about reversibility, what happens to nodes that cannot be fixed, prerequisites such as an open file or GUI, or rate/performance limits on a full-canvas scan.

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

Conciseness4/5

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

A single dense sentence that front-loads the primary action (scan canvas, fix overflow) before the secondary cleanup. It is slightly overloaded by embedding the literal textAutoResize value, but nothing is truly wasted.

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

Completeness3/5

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

For a zero-parameter global mutation tool with no annotations and no output schema, the description covers scope and the two effects well. It is still missing what the agent should expect afterward (e.g. whether the canvas is left modified with no report) and any precondition about the document being open.

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

Parameters5/5

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

The tool takes zero parameters, so there is no parameter semantics to explain; the baseline for a parameterless tool applies, and the description correctly avoids inventing options.

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

Purpose4/5

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

The description states a specific verb and resource: scan the entire canvas and auto-fix text overflow, plus clean raw escaped \n into multiline wraps with textAutoResize "height". It is clear what the tool does, though it does not explicitly contrast itself with the sibling audit_layout, which addresses an adjacent concern.

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

Usage Guidelines3/5

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

Usage is only implied by the problem it solves (text overflow and escaped newlines). There is no statement of when to prefer it over audit_layout or when it should not be run, and no prerequisites are given.

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

inspect_documentC

Inspeksi hierarki kanvas dokumen aktif: halaman, layer, frame, styling, dan bounding box.

NameRequiredDescriptionDefault
depthNoKedalaman inspeksi tree layer
allPagesNoPeriksa seluruh halaman

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden. 'Inspeksi' implies a read, but the description never states that it is side-effect free, how large the returned hierarchy can get, or that cost/size scales with the depth and allPages parameters.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the inspected aspects are listed compactly. Slight deduction because the list of aspects doubles as the only clue about return shape rather than being framed that way.

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

Completeness3/5

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 convey what comes back; it partly does by naming pages, layers, frames, styling, and bounding boxes. It still omits the shape of the result (tree vs flat), pagination or size limits, and the fact a document must be open — all relevant for a two-parameter inspection tool.

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

Parameters3/5

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

Schema description coverage is 100%: both 'depth' (tree depth, default 4) and 'allPages' (check all pages, default false) are documented in the schema itself. The description adds no extra meaning about how depth interacts with output size or what the default scope (current page only) actually is, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Inspeksi') plus resource ('hierarki kanvas dokumen aktif') and enumerates the inspected aspects: pages, layers, frames, styling, bounding boxes. This distinguishes it from mutation siblings like set_properties or create_node, but it does not distinguish it from figcraft_inspect_document (effectively the same tool) or from audit_layout/screenshot which are adjacent read operations.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of when to prefer this over audit_layout, screenshot, or the duplicate figcraft_inspect_document, and no prerequisites. The only contextual cue is the word 'aktif' (active document), which implies a document must already be open but never says so.

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

open_fileB

Buka berkas desain (.figcraft, .json, .fig, .sketch, .svg, gambar) ke tab aktif di GUI FigCraft.

NameRequiredDescriptionDefault
filePathYesPath berkas yang akan dibuka

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It does disclose two useful traits the schema cannot: which file formats are accepted and that the document is loaded into the currently active GUI tab (an implicit dependency on a running GUI and a side effect on that tab). It does not say what happens to unsaved content in the active tab, whether ensure_gui is a prerequisite, or how failures are reported.

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

Conciseness5/5

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

A single sentence that front-loads the action, then the accepted formats, then the destination. Nothing is padded and nothing essential is buried.

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

Completeness4/5

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

For a one-parameter tool with no output schema and full schema coverage, the description supplies what matters: accepted formats and where the file lands. The remaining gap is the interaction with a possibly dirty active tab and GUI readiness, which matters for a GUI-mutating tool with no annotations.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter, so the schema already defines filePath and its meaning. The format enumeration in the description constrains what values are valid beyond type=string, which is a small addition, but no path syntax, absolute-vs-relative convention, or size limits are added.

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

Purpose4/5

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

States a specific verb (buka/open) and resource (berkas desain) and enumerates the accepted formats (.figcraft, .json, .fig, .sketch, .svg, images), which an agent can match against an incoming filename. It does not distinguish itself from the sibling 'create_and_open' / 'figcraft_create_and_open', which plausibly also ends in an opened file, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over 'create_and_open' or when to prefer 'inspect_document'. The destination ('tab aktif di GUI FigCraft') is stated, which implies the tool operates on an existing GUI session, but no prerequisites or exclusions are given.

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

save_fileB

Simpan dokumen aktif di FigCraft ke disk (.figcraft).

NameRequiredDescriptionDefault
pathNoPath berkas penyimpanan (opsional, default: path berkas saat dibuka)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral load, and it does disclose two useful facts: the target is the active document and the format is .figcraft. It does not state whether an existing file is overwritten, whether confirmation is required, or what is returned on success/failure.

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

Conciseness4/5

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

One front-loaded sentence with no filler, stating verb, target, and format. It is efficient, though the extreme brevity leaves no room for the operational caveats noted above.

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

Completeness3/5

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

For a one-optional-parameter tool with full schema coverage and no output schema, the essentials are present. Given the absence of annotations on a disk-write operation, the description is adequate but does not fully cover overwrite, error, or permission behavior.

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

Parameters3/5

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

Schema coverage is 100% and the single path parameter already documents its optional status and default. The description adds no syntax, extension rules, or directory behavior beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: saving the active FigCraft document to disk in .figcraft format. It is clearly distinguishable from open_file and create_and_open, though the description does not explicitly name those siblings as alternatives.

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

Usage Guidelines3/5

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

Usage is implied: use it to persist the currently active document. However, it gives no explicit when/when-not guidance, no mention of what happens if no document is open, and no comparison against create_and_open, which also produces files.

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

screenshotB

Ambil snapshot visual kanvas aktif atau frame tertentu dalam format PNG untuk bukti Harness quality gate.

NameRequiredDescriptionDefault
idsNoID frame spesifik untuk diekspor (opsional, default: seluruh halaman)
scaleNoSkala resolusi render (default: 1)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry behavior itself; it establishes that this is a non-destructive visual capture scoped to the active canvas or a named frame, in PNG. It does not disclose what is returned (image payload vs. file path), whether a GUI session must be active (relevant given the figcraft_ensure_gui sibling), or any size/scale implications.

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

Conciseness4/5

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

A single compact sentence with the action and format front-loaded and no filler. It is lean, though the trailing purpose clause is the only place usage context appears, so a slightly richer structure would help.

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

Completeness3/5

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

For a two-optional-parameter capture tool with no annotations and no output schema, the definition covers what is captured and in what format but leaves the return contract undefined. An agent knows how to call it but not what it receives back.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'ids' and 'scale' are already documented in the schema. The description only echoes the optional frame targeting ('frame tertentu') and adds no syntax or interaction detail (e.g., multiple ids, effect of scale on output size), so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Ambil snapshot visual kanvas aktif atau frame tertentu') plus the output format (PNG), which clearly separates it from structural siblings like inspect_document or audit_layout. It does not explicitly name a sibling it replaces, so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'untuk bukti Harness quality gate' implies the context of use (capturing visual evidence for verification), which is more than nothing. However, there is no explicit when-to-use vs when-not guidance and no pointer to alternatives such as inspect_document for non-visual data.

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

set_propertiesB

Ubah properti visual (fills, stroke, tipografi, corner radius, corner smoothing, effects, auto-layout) pada node yang ada di kanvas.

NameRequiredDescriptionDefault
idYesID layer yang akan diubah
propsYesProperti yang diubah

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden for a mutation tool, and it delivers very little. It does not say whether unlisted properties are preserved, whether changes are reversible/undoable, what happens if the id is invalid, or how the free-form props object is interpreted. The bare verb 'Ubah' is the only behavioral signal, which is insufficient for an unannotated write operation.

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

Conciseness4/5

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

A single, front-loaded sentence with the resource and the property inventory stated immediately; no filler or redundancy. It could be tightened only slightly by adding a usage clause rather than by removing anything.

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

Completeness2/5

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

For an unannotated mutation tool whose core parameter is an undifferentiated free-form object and with no output schema, the description is materially incomplete. The agent is left without the props key vocabulary, the return/confirmation shape, or failure behavior — all of which the structured fields fail to supply here. The property-family list is a start but does not close the gap.

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

Parameters3/5

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

Schema coverage is nominally 100%, but the two schema descriptions are near-tautological ('ID layer yang akan diubah', 'Properti yang diubah'), and props is declared as a free-form object with additionalProperties: {} and no key documentation at all. The description partially compensates by listing the property categories that belong in props (fills, stroke, typography, corner radius, corner smoothing, effects, auto-layout), which is genuinely additive. However it gives no key names or value formats, so the agent still cannot construct props reliably — above baseline but well short of adequate.

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

Purpose4/5

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

The description names a specific verb (Ubah/change) and resource (visual properties on an existing canvas node) and enumerates the property families covered: fills, stroke, typography, corner radius, corner smoothing, effects, auto-layout. The phrase 'pada node yang ada di kanvas' implicitly separates it from creation siblings like create_node. It stops short of naming an explicit alternative, so it is clear but not sibling-differentiating at the level of a 5.

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

Usage Guidelines3/5

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

Usage is only implied: 'node yang ada di kanvas' signals this applies to existing nodes rather than new ones, which is a useful implicit boundary against create_node. There is no explicit statement of when to prefer this over figcraft_batch (for multiple nodes) or other sibling tools, and no prerequisites are given. This is minimum-viable guidance rather than routing guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updatesv1.0.0
    • First observedapply_luxury_theme
    • First observedaudit_layout
    • First observedbatch
    • First observedcreate_and_open
    • First observedcreate_autolayout_frame
    • First observedcreate_component
    • First observedcreate_node
    • First observedcreate_responsive_system
    • First observedensure_gui
    • First observedfigcraft_apply_luxury_theme
    • First observedfigcraft_audit_layout
    • First observedfigcraft_batch
    • First observedfigcraft_create_and_open
    • First observedfigcraft_create_autolayout_frame
    • First observedfigcraft_create_component
    • First observedfigcraft_create_node
    • First observedfigcraft_create_responsive_system
    • First observedfigcraft_ensure_gui
    • First observedfigcraft_fix_overflow
    • First observedfigcraft_inspect_document
    • First observedfigcraft_open_file
    • First observedfigcraft_save_file
    • First observedfigcraft_screenshot
    • First observedfigcraft_set_properties
    • First observedfix_overflow
    • First observedinspect_document
    • First observedopen_file
    • First observedsave_file
    • First observedscreenshot
    • First observedset_properties

TDQS

C2.9/5.0

Scored across 30 tools

Disambiguation1/5

Every single tool exists twice with byte-identical descriptions: `figcraft_create_and_open` and `create_and_open`, `figcraft_batch` and `batch`, etc. An agent has no principled way to choose between the prefixed and unprefixed variants — they appear to do exactly the same thing. This is the maximal case of overlapping tools.

Naming Consistency2/5

Individually the names follow a clean `verb_noun` snake_case pattern (create_node, set_properties, audit_layout). However the surface uses two parallel naming conventions simultaneously — a `figcraft_`-prefixed alias set and a bare alias set — with no stated rule for which to use, which is exactly the kind of mixed convention this dimension penalizes.

Tool Count2/5

The count is reported as 30, well past the 25+ threshold for 'too many', and in reality there are only ~15 unique operations duplicated 2x. The extra 15 tools earn no place in the surface and actively inflate the tool list an agent must scan.

Completeness4/5

The unique tool set covers the full canvas lifecycle for a Figma-like editor: create/open, node creation, autolayout, components, property mutation, theming, overflow repair, layout audit, document inspection, screenshot, save, and a generic `batch` escape hatch. Minor gaps exist (no explicit delete/remove-node, reorder, or grouping tool outside of batch), but these are workable.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants like Claude and Cursor to interact directly with Figma to create, modify, and analyze design elements in real-time. It provides a comprehensive suite of tools for document inspection, styling, component management, and automated layout via a bidirectional WebSocket connection.
    807 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to read and write Figma designs through a local WebSocket relay, turning Figma selections into framework-aware code and building/editing designs directly on the canvas. Provides 112 MCP tools for bidirectional design-code workflows with support for any MCP client.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding assistants to draw UI directly on a Figma Desktop canvas and read existing designs back as structured JSON, tokens, CSS, and screenshots, all over a localhost bridge without external API keys.
    551 npm
    2
    MIT