figma-free-mcp
figma-free-mcp connects Claude to Figma (including free plans) via a WebSocket relay and plugin, enabling AI-driven design automation across 100+ tools — no paid plan or manual channel IDs required.
Connection & Session Management
Auto-detect and connect to active Figma plugin sessions; list or manually join channels
Document & Page Management
Get document info, node details, current selection, all styles, local/library components, and variables
Create, rename, delete, duplicate, switch, and organize pages; detect/remove duplicates; clean up empty pages
Shape & Element Creation
Create frames, rectangles, ellipses, polygons, stars, text nodes, and import SVG strings
Create FigJam elements: sticky notes, shapes with text, connectors, and sections
Node Modification
Move, resize, rotate, rename, clone, reorder, delete, group/ungroup, flatten, and convert nodes
Set fill/stroke colors, gradients, image fills (URL or base64), corner radius, opacity, visibility, and lock state
Apply effects (drop shadow, inner shadow, blur), layout grids, guides, and boolean operations (union, subtract, intersect, exclude)
Typography & Text
Set text content, font family/size/weight, letter/line spacing, paragraph spacing, text case, decoration, and alignment
Apply text styles, load fonts asynchronously, and batch-update multiple text nodes
Components & Variants
Create component instances, convert nodes to components, create component sets (variants)
Switch variant properties on instances; auto-generate hover/active/disabled variants from a base component
Variables & Design Tokens
List, create, and update variables (COLOR, FLOAT, STRING, BOOLEAN); bind variables to node properties; switch variable modes
Sync CSS variables → Figma collections, export Figma variables → CSS custom properties, and diff CSS vs. Figma tokens
Design System & Code-to-Figma
Apply design system policies from markdown and audit files for consistency violations
Convert React/TSX components into Figma frames; convert CSS classes into Figma local paint/text styles
Export & Annotations
Export nodes as PNG, JPG, SVG, or PDF; get SVG markup of any node
Add and read annotation labels on nodes
Provides tools for interacting with Figma files, including document info, page management, element creation/modification, design token sync, and code-to-Figma conversion.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@figma-free-mcpCreate a button component in Figma"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🎨 Figma MCP for Free Plan
https://smithery.ai/servers/haju-xp/figma-free-mcp
Connect Claude to Figma with zero friction. No paid plan. No channel ID copy-paste. Just works.
✨ Why this exists
Figma Official MCP | ClaudeTalkToFigma | figma-free-mcp | |
Free plan | ❌ Paid only | ✅ | ✅ |
Auto-connect | ✅ | ❌ Manual channel ID | ✅ Auto-detect |
Tools | Many | 70+ | 100+ |
One-line install | ❌ | ❌ | ✅ |
Related MCP server: Claude Talk to Figma MCP
🚀 Quick Start (4 steps)
Step 1 — Install MCP + download plugin
npx figma-free-mcp@latest setupThis will:
✅ Register MCP in Claude Desktop automatically
✅ Download the Figma plugin to
~/.figma-free-mcp/plugin/✅ Show you the exact manifest path
Step 2 — Install the Figma plugin (one-time)
Open Figma Desktop
Menu → Plugins → Development → Import plugin from manifest...
Select the path shown in Step 1:
C:\Users\[YourName]\.figma-free-mcp\plugin\manifest.json
This will:
✅ Register the Figma plugin in your Figma Desktop
Step 3 — Start the relay server
figma-free-mcp socketThis will:
✅ Start the WebSocket relay server between Claude and Figma
✅ Keep the connection alive while you work
⚠️ Must run this BEFORE opening the Figma plugin. Keep this terminal open while using Claude with Figma.
Step 4 — Open the Figma plugin
Open your Figma file
Menu → Plugins → Figma Free MCP
This will:
✅ Auto-connect to the relay server
✅ No channel ID needed
💬 Usage
Once everything is running, just talk to Claude naturally:
"Figma에 버튼 컴포넌트 만들어줘"
"중복 페이지 찾아서 정리해줘"
"globals.css 색상 토큰을 Figma 변수로 싱크해줘"
"이 React 컴포넌트를 Figma 프레임으로 변환해줘"Claude automatically detects your open Figma file — no channel ID needed!
🗂️ Working with Multiple Files (Concurrent Editing)
Edit several Figma files in one session — still no channel IDs, just file names.
Setup: open each file and run the plugin in it (one plugin instance per file — a Figma limitation: a plugin can only touch the file it runs in).
"어떤 Figma 파일들이 열려 있어?" → list_active_channels (shows file & page names)
"미들마일 주문 파일에 버튼 만들어줘" → connect_to_file then edit, or run_on_file
"미들마일엔 헤더, 정산관리엔 합계 텍스트 넣어줘" → runs on both files concurrentlyTool | When to use |
| Focus one file — following commands all go there |
| Send one command to a specific file without switching — repeat across files to edit them concurrently |
⚠️ Each file you want to edit must have its own running plugin instance. A file that's only open in the background (no plugin) cannot be edited.
🛠️ All Tools (100+)
🔌 Auto-Connect & Multi-File
Tool | Description |
| Auto-detect active Figma sessions and connect |
| List open Figma plugin sessions with their file & page names |
| Connect by file name instead of channel ID (switches the active file) |
| Run one command on a specific file without switching — enables concurrent multi-file editing |
📄 Document & Pages
get_document_info, get_pages, get_selection, get_node_info, get_nodes_info, scan_text_nodes, get_styles, get_local_components, get_remote_components, get_variables and more
🖼️ Creation
create_frame, create_rectangle, create_ellipse, create_text, create_page, create_component_from_node, create_component_instance, create_component_set and more
✏️ Modification
set_fill_color, set_stroke_color, set_text_content, set_font_size, set_corner_radius, set_auto_layout, move_node, resize_node, delete_node, clone_node and more
🎨 Design System Sync
Tool | Description |
| CSS variables → Figma variable collections |
| Figma variables → CSS custom properties |
| Diff report between CSS and Figma |
| Apply design policy doc to Figma |
| Find policy violations in Figma file |
📋 Page Manager
Tool | Description |
| All pages + frame count + duplicate detection |
| Auto-merge/remove duplicate pages |
| Sort pages by number or alphabetically |
| Remove empty pages |
⚡ Code to Figma
Tool | Description |
| React/TSX component → Figma frame |
| CSS classes → Figma local styles |
| Generate hover/active/disabled variants |
🏗️ Architecture
Claude Desktop
│
│ stdio (MCP)
▼
figma-free-mcp server (100+ tools)
│
│ WebSocket (port 3055)
▼
Figma Plugin (auto-connect)
│
│ Figma API
▼
Your Figma File ✨⚙️ Commands Reference
# Install & register MCP
npx figma-free-mcp@latest setup
# Start WebSocket relay server
figma-free-mcp socket
# Uninstall
npx figma-free-mcp@latest uninstall🔄 Upgrading from v1.0.7 or earlier
─────────────────────────────
If you see a recurring "MCP figma-free-mcp-socket: Server disconnected" error in Claude Desktop, run this once:
npx figma-free-mcp@latest setupThen restart Claude Desktop. The error will be gone.
─────────────────────────────
❓ FAQ
Q. Do I need a paid Figma plan? A. No. Works with free Figma accounts.
Q. Do I need Claude Pro? A. Any Claude Desktop plan works.
Q. The plugin shows "Disconnected"
A. Make sure the relay server is running: figma-free-mcp socket
Q. Multiple Figma files are open
A. list_active_channels shows each session with its file & page name. Use connect_to_file("name") to focus one, or run_on_file("name", ...) to edit several files concurrently — no channel IDs needed. Each file must have its own running plugin instance.
Q. Port 3055 is already in use
A. Kill the existing process: netstat -ano | findstr :3055 then taskkill /PID [number] /F
⚠️ License & Usage
MIT License — free to use and modify.
✅ Personal & commercial use allowed ✅ Modification allowed ❌ Claiming as your own work prohibited ❌ Removing author credit prohibited
© 2026 haju-xp
🙏 Credits
Built on top of claude-talk-to-figma-mcp by arinspunk (MIT License).
Available Tools
100 toolsapply_design_systemB
Read a design system policy markdown file and apply styles to Figma
| Name | Required | Description | Default |
|---|---|---|---|
| policyFilePath | Yes | 디자인 시스템 정책 마크다운 파일 경로 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states it reads and applies, but does not indicate potential side effects, error handling, or whether it is destructive. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the action. It is concise and avoids fluff, though it could benefit from more structure (e.g., separating reading from applying).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and no annotations, the description is incomplete. It does not explain what 'apply styles' entails, which part of Figma is affected (selection, whole document), or the expected format of the markdown file. An agent may not have enough context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a Korean description that largely repeats the parameter name. The tool description adds 'Read a design system policy markdown file' but no further details on file format or constraints. Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a markdown file and applies styles to Figma, with a specific verb and resource. It distinguishes from siblings like 'apply_image_transform' and 'apply_variable_to_node' which are more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or how it differs from similar operations among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_image_transformC
Adjust image position, scale, and rotation within node. Rotates the IMAGE inside the node, not the node itself.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to transform image on | |
| scaleMode | No | Change scale mode | |
| rotation | No | Rotation in 90-degree increments (0, 90, 180, 270). Rotates the IMAGE inside the node, not the node itself. | |
| translateX | No | Horizontal translation offset | |
| translateY | No | Vertical translation offset | |
| scale | No | Scale factor (1 = 100%) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds one behavioral trait (rotation is image-only, not node rotation), but fails to mention whether the transform overwrites existing transforms, what happens if the node has no image, or if the operation is reversible. No mention of side effects or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, no wasted words. It front-loads the overall purpose and immediately clarifies a critical behavioral nuance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 6 parameters and lacking an output schema, the description does not explain the return value (if any) or side effects. It does not mention whether the tool modifies the node in place, what the success/failure indicators are, or prerequisites like the node needing to have an image. For a transformation tool, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters have descriptions in the schema (100% coverage), so the description adds minimal extra meaning. It reinforces that rotation applies to the image inside the node, which is already in the schema but beneficial to restate. Baseline 3 is appropriate; the description does not compensate for any parameter gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adjusts image position, scale, and rotation within a node, and importantly clarifies that rotation applies to the image inside the node, not the node itself. This distinguishes it from sibling tools like rotate_node. However, it could be more specific about what 'within node' means (e.g., nodes with image fills) and how it differs from set_image or set_image_fill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternative sibling tools such as set_image, resize_node, or rotate_node. It only distinguishes the rotation behavior. No when-to-use, when-not-to-use, or prerequisite conditions are mentioned, making it hard for an agent to decide contextually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_variable_to_nodeA
Bind a variable to a node property in Figma. Call once per field — for multiple fields, call multiple times.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to bind the variable to | |
| variableId | Yes | The ID of the variable to bind | |
| field | Yes | The node property field to bind (e.g., 'fills/0/color', 'opacity', 'width', 'height') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states the binding action but does not disclose side effects (e.g., overwriting, reversibility), prerequisites (variable must exist), or error scenarios, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences. The first sentence states the purpose, and the second provides a key usage guideline. No unnecessary words, front-loaded, and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the core action and usage pattern, it lacks details about error handling, prerequisites (e.g., variable existence), return values (no output schema), and potential side effects, which would be expected for a mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all three parameters, but the description adds value by explaining the 'field' parameter with examples and the per-field calling pattern, which clarifies the intended usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: binding a variable to a node property in Figma. It distinguishes itself from sibling tools like 'set_variable' by emphasizing the binding action and the per-field usage pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage guideline: 'Call once per field — for multiple fields, call multiple times.' This indicates when to use and how to batch calls, though it does not explicitly contrast with sibling tools like 'set_variable'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_design_consistencyC
Audit a Figma file for design system policy violations
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | No | 감사할 페이지 ID. 미지정 시 현재 페이지 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only states the purpose without mentioning whether the tool is read-only, what output it returns, what constitutes a violation, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, succinct sentence with no unnecessary words. However, it is too brief, omitting essential details that should be present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain the return value and audit process. It fails to do so, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a descriptive param comment. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (audit), resource (Figma file), and scope (design system policy violations). It distinguishes from sibling tools like apply_design_system and compare_design_tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines provided. The description does not specify when to use this tool vs alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auto_connectA
Automatically detect and connect to an active Figma plugin channel. No channel ID needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only says 'automatically detect and connect' but doesn't indicate what happens if no active channel exists, whether it times out, or whether it returns any connection status. Missing crucial behavioral details for a tool with zero parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 14 words, perfectly concise and front-loaded with the key action. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema, no annotations), the description is minimally adequate. However, it lacks important context such as what happens after connection, error behavior, or how success is indicated. For a tool with no output schema, these details would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so there is no need for parameter documentation. Baseline score of 4 is appropriate as the description adds no additional meaning but the schema coverage is 100% (vacuous).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: automatically detect and connect to an active Figma plugin channel without needing a channel ID. It distinguishes itself from siblings like 'join_channel' which likely require a channel ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or comparison to alternatives is provided. The phrase 'No channel ID needed' implicitly suggests using this tool when you lack a channel ID, but no direct guidance is given. Sibling context helps but description itself lacks explicit usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_operationB
Perform a boolean operation (union, subtract, intersect, exclude) on two or more nodes. All nodes must share the same parent.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Array of node IDs to combine (minimum 2). Order matters for SUBTRACT. | |
| operation | Yes | Boolean operation type | |
| name | No | Optional name for the resulting node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose side effects. It does not state whether the original nodes are deleted or replaced, whether the operation is destructive, or describe the result node. The mention of 'order matters for SUBTRACT' is helpful but insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with purpose. Achieves maximum clarity with minimum text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that modifies geometry, the description lacks essential context: what happens to the input nodes, what the result is, and any reversibility. Given the lack of output schema, the description should provide this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds the parent constraint, which complements the schema but does not significantly enhance understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Perform a boolean operation (union, subtract, intersect, exclude) on two or more nodes', using specific verbs and resource (nodes). It differentiates from siblings like group_nodes by specifying boolean operations rather than grouping, and includes a constraint (same parent).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., group_nodes, flatten_node). It does not provide context for when boolean operations are appropriate or when to expect different behavior. The constraint 'All nodes must share the same parent' is a prerequisite but not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleanup_empty_pagesA
Find and optionally delete pages with no children/frames
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | If true, only report empty pages without deleting (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It explains the dryRun parameter controls deletion but does not mention potential side effects (e.g., permanent deletion) or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, efficiently conveying the tool's purpose and optional deletion behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality but does not specify the output format (e.g., list of page names) which is needed since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning to the dryRun parameter by explaining its effect ('only report empty pages without deleting'), which goes beyond the schema's default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'Find' and 'delete' with resource 'pages with no children/frames', clearly distinguishing it from sibling tools like delete_page (deletes a specific page) or deduplicate_pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for cleaning empty pages but does not explicitly state when to use this tool vs alternatives, such as delete_page for specific pages or organize_pages for reordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_nodeC
Clone an existing node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to clone | |
| x | No | New X position for the clone (local coordinates, relative to parent) | |
| y | No | New Y position for the clone (local coordinates, relative to parent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'Clone', failing to disclose whether cloning preserves children, styles, or references, or if it is destructive to the original. The behavioral traits are minimally indicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it could be slightly more structured to elaborate on behavior or coordinate system. Still, it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain return values (e.g., cloned node ID) or post-clone state. It does not, making it incomplete for effective tool invocation and understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate parameter descriptions. The tool description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (clone) and resource (node in Figma), distinguishing it from sibling tools like delete_node, move_node, etc. However, it lacks specifics about what cloning entails (e.g., deep copy, style preservation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any when-not-to-use conditions. The description is merely a statement of functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_design_tokensB
Compare CSS variables with Figma variables and report differences
| Name | Required | Description | Default |
|---|---|---|---|
| cssFilePath | Yes | 비교할 CSS 파일 경로 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description implies read-only comparison but does not explicitly state whether it modifies data or what side effects occur. Agent cannot infer safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, straight to the point. No wasted words, but could be slightly more structured with the output type.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing details about output format (e.g., list of mismatches, how results are returned), file access, or network requirements. The tool is under-described given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is described in the schema. The description adds no additional context beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it compares CSS variables with Figma variables and reports differences. Distinguished from sibling sync tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternative sync tools or other comparison methods. No context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_frameA
Convert a group or shape node into a frame in Figma. Preserves position, size, visual properties, and children. Useful for converting groups into auto-layout-capable frames.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to convert to a frame |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses key behaviors: it preserves position, size, visual properties, and children. It also implicitates that the resulting frame supports auto-layout. Missing are details on whether the operation is reversible, if it requires specific permissions, or what happens if the node is already a frame. Overall, transparency is good but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences. The first sentence states the primary action, the second lists preserved properties, and the third provides a use case. Every sentence adds distinct value, and there is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description covers the core behavior, preservation details, and a use case. It lacks edge case handling (e.g., if node is already a frame) and does not specify the return value or whether the original node ID remains valid. Slight gaps, but sufficient for a simple conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'nodeId' has a schema description that is generic ('The ID of the node to convert to a frame'). The tool description adds context by specifying that the node must be a group or shape, which is meaningful beyond the schema. With 100% schema coverage, the description adds value by narrowing the valid node types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('convert'), the target resource ('group or shape node into a frame'), and provides specific details about what is preserved (position, size, visual properties, children). It effectively distinguishes from sibling tools like 'group_nodes' or 'ungroup_nodes' by specifying the conversion outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a use case ('useful for converting groups into auto-layout-capable frames') but does not explicitly state when not to use the tool or mention alternatives such as 'create_frame' or 'set_auto_layout'. The context is clear but lacks exclusions or comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_component_from_nodeB
Convert an existing node (frame, group, etc.) into a reusable component in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to convert into a component | |
| name | No | Optional new name for the component |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether the original node is replaced, if the operation is reversible, or any permissions required. The behavior regarding the original node's fate is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded. However, it omits behavioral details that could be included without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no behavioral context, the description is insufficient. It lacks information about return values, side effects, or constraints, making it incomplete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no new meaning beyond schema descriptions. Both parameters are adequately described in the schema, meeting baseline but not exceeding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Convert') and the resource ('existing node') with examples ('frame, group, etc.') leading to a specific result ('reusable component'). It differentiates from siblings like create_component_instance and create_component_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The sibling list includes create_component_instance and create_component_set, but the description doesn't clarify the distinction or when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_component_instanceB
Create an instance of a component in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| componentKey | Yes | Key of the component to instantiate | |
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description lacks behavioral details such as what happens on failure, whether creation is destructive, or any side effects. The description only states the action without additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose. It is front-loaded with the key verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema or annotations, the description is too minimal. It lacks context about return values, error handling, or placement scope (e.g., which page).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create an instance of a component in Figma', specifying the verb 'create' and the resource 'instance of a component', which distinguishes it from sibling tools like create_rectangle or create_component_from_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool versus alternatives. It is implied that one needs a component key, but no explicit usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_component_setA
Create a component set (variants) from multiple component nodes in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| componentIds | Yes | Array of component node IDs to combine into a component set | |
| name | No | Optional name for the component set |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'create a component set', but does not indicate that this is a mutating operation, required permissions, or side effects on original nodes (e.g., grouping). Lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 14 words, front-loaded with key information. No redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 2 parameters and no output schema, the description is minimal but covers the basic purpose. Lacks details on valid inputs, error scenarios, or return behavior, but is not severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds little beyond mentioning 'from multiple component nodes' which aligns with componentIds. It does not explain how the name is used or constraints on componentIds. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'component set (variants)', and the source 'from multiple component nodes'. This effectively distinguishes it from sibling tools like create_component_from_node (single component) and create_component_instance (instance).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool. It does not mention prerequisites like having valid component nodes, nor does it differentiate from similar sibling like generate_component_variants. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_connectorA
Create a connector (arrow or line) in FigJam. Connectors can link two existing nodes by ID, or connect arbitrary canvas positions. Use this to draw flow arrows between stickies, shapes, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| startNodeId | No | ID of the node where the connector starts (omit to use startX/startY) | |
| startX | No | X position of the connector start point (used when startNodeId is not provided) | |
| startY | No | Y position of the connector start point (used when startNodeId is not provided) | |
| endNodeId | No | ID of the node where the connector ends (omit to use endX/endY) | |
| endX | No | X position of the connector end point (used when endNodeId is not provided) | |
| endY | No | Y position of the connector end point (used when endNodeId is not provided) | |
| connectorLineType | No | Line routing style (default: ELBOWED) | |
| startStrokeCap | No | Arrowhead at the start (default: NONE) | |
| endStrokeCap | No | Arrowhead at the end (default: ARROW) | |
| strokeColor | No | Stroke color in RGBA format | |
| strokeWeight | No | Stroke weight / line thickness | |
| name | No | Optional name for the connector node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that connectors can link nodes or canvas positions, but does not mention behavioral aspects like permissions, side effects (e.g., does it modify existing nodes?), or what happens on creation. For a creation tool, the description is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no wasted words. It front-loads the purpose ('Create a connector') and immediately follows with key capabilities. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters, no annotations, and no output schema, the description is fairly complete. It explains the tool's purpose and two modes of operation. It could add more about return value (e.g., connector ID) or default styling, but the schema covers parameter details. Overall, it provides sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the conceptual grouping of parameters: linking by ID vs. coordinates (startNodeId/endNodeId vs. startX/startY/endX/endY). This helps an agent understand how to use parameters together, beyond individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a connector (arrow or line) in FigJam, distinguishes two modes (link by node ID or arbitrary coordinates), and gives example use ('draw flow arrows between stickies, shapes'). This differentiates it from sibling create tools like create_rectangle or create_sticky.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context ('Use this to draw flow arrows between stickies, shapes, etc.') but does not explicitly mention when not to use this tool or suggest alternatives (e.g., auto_connect for automatic linking). Guidelines are implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ellipseB
Create a new ellipse in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) | |
| width | Yes | Width of the ellipse | |
| height | Yes | Height of the ellipse | |
| name | No | Optional name for the ellipse | |
| parentId | No | Optional parent node ID to append the ellipse to | |
| fillColor | No | Fill color in RGBA format | |
| strokeColor | No | Stroke color in RGBA format | |
| strokeWeight | No | Stroke weight |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Create a new ellipse in Figma', omitting mutation effects, permissions, return value, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it could be improved by adding context about coordinate system or default behavior without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema), the description is too minimal and does not cover return values, coordinate system, or default values for optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no extra meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('ellipse') and distinguishes from siblings like create_rectangle and create_polygon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as create_rectangle or create_polygon. Context signals show many sibling shape creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_frameC
Create a new frame in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) | |
| width | Yes | Width of the frame | |
| height | Yes | Height of the frame | |
| name | No | Optional name for the frame | |
| parentId | No | Optional parent node ID to append the frame to | |
| fillColor | No | Fill color in RGBA format | |
| strokeColor | No | Stroke color in RGBA format | |
| strokeWeight | No | Stroke weight |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey all behavioral context. It only states the action, omitting details about side effects (e.g., whether the frame is added to the current page), required permissions, or error handling. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded with the purpose, which is good for conciseness. However, it sacrifices necessary detail, making it too terse given the tool's complexity and lack of annotations. It is adequate but not exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects) and the proximity of many sibling creation tools, the description lacks essential context such as return value, side effects, and relationship to other nodes. It does not help the agent understand the full implications of using this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for all 9 parameters, including nested objects. The description adds no additional meaning beyond what the schema offers, so it meets the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a new frame in Figma'), making the basic purpose understandable. However, it does not explicitly distinguish this tool from sibling creation tools like 'create_rectangle' or 'convert_to_frame', so it scores a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., create_rectangle, create_text). There is no mention of prerequisites, context, or when not to use it, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pageB
Create a new page in the current Figma document
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention side effects, output, limits, or whether the new page becomes active. For a create operation, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the purpose without any extraneous words. Every part is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, and the presence of many sibling tools, the description is too minimal. It does not explain what 'current Figma document' implies or what the result of creation is, leaving gaps for a new user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'name' described. However, the description adds no extra context such as naming conventions, uniqueness, or character limits. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (page), and the scope (in the current Figma document). It differentiates from sibling tools like delete_page, duplicate_page, and rename_page by focusing solely on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., duplicate_page or organize_pages). There is no mention of prerequisites or situations where creation is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_polygonB
Create a new polygon in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) | |
| width | Yes | Width of the polygon | |
| height | Yes | Height of the polygon | |
| sides | No | Number of sides (default: 6) | |
| name | No | Optional name for the polygon | |
| parentId | No | Optional parent node ID to append the polygon to | |
| fillColor | No | Fill color in RGBA format | |
| strokeColor | No | Stroke color in RGBA format | |
| strokeWeight | No | Stroke weight |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description fully bears the responsibility for disclosing behavioral traits. It only states 'Create a new polygon' without mentioning any side effects, permissions, or node creation details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. While concise, it could include more context without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters with nested objects and no output schema or annotations, the description is insufficient. It fails to explain return values, error handling, or any additional behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has full description coverage for all parameters, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'polygon in Figma'. It effectively distinguishes the tool from sibling shape creation tools like create_rectangle and create_ellipse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to create a polygon instead of a star or rectangle). The description lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_rectangleB
Create a new rectangle in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) | |
| width | Yes | Width of the rectangle | |
| height | Yes | Height of the rectangle | |
| name | No | Optional name for the rectangle | |
| parentId | No | Optional parent node ID to append the rectangle to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It does not mention side effects, permissions, or what happens after creation (e.g., whether the rectangle is selected or added to the canvas).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence, but it lacks substantive information. It is not overly long, but it could be more informative within the same space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description does not indicate what the tool returns (e.g., node ID, success status). For a creation tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is specific: 'Create a new rectangle in Figma.' It uses a clear verb-resource pair and contrasts with sibling tools like create_ellipse or create_frame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., create_frame, create_shape_with_text). No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sectionB
Create a FigJam section. Sections are used to group and organise content on the FigJam board. They appear as labelled coloured regions.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position on the canvas | |
| y | Yes | Y position on the canvas | |
| width | No | Width of the section (default: 800) | |
| height | No | Height of the section (default: 600) | |
| name | No | Label / name for the section | |
| fillColor | No | Background fill color in RGBA format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action and general purpose without disclosing side effects, permission needs, or return behavior. For a creation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose. Every word is useful. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters including a nested object, no output schema, and no annotations, the description provides minimal context. It explains what a section is but doesn't clarify expected behavior, defaults, or output. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any parameter information beyond what the schema provides, which is acceptable given the complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and resource 'FigJam section', and provides context about sections grouping content. It distinguishes from sibling creation tools by specifying 'FigJam section', though it doesn't directly compare to other creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_frame or create_rectangle. No prerequisites or exclusions mentioned. The description assumes the agent knows when to create a section.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shape_with_textB
Create a FigJam shape with text inside. Useful for flowcharts, diagrams, and process maps. Supported shapes: SQUARE, ELLIPSE, ROUNDED_RECTANGLE, DIAMOND, TRIANGLE_UP, TRIANGLE_DOWN, PARALLELOGRAM_RIGHT, PARALLELOGRAM_LEFT.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position on the canvas | |
| y | Yes | Y position on the canvas | |
| width | No | Width of the shape (default: 200) | |
| height | No | Height of the shape (default: 200) | |
| shapeType | No | The shape type (default: ROUNDED_RECTANGLE) | |
| text | No | Text to display inside the shape | |
| fillColor | No | Fill color in RGBA format (0-1 range each component) | |
| name | No | Optional name for the node | |
| parentId | No | Optional parent node ID to place the shape into |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states what the tool creates but does not mention side effects (e.g., node creation, selection changes), error conditions, or how text overflow is handled. This lack of detail limits transparency for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that front-load the main action and purpose. It is well-structured and easy to parse. However, the list of shapes could be integrated more naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters including a nested object, no output schema, and no annotations, the description is too brief. It lacks details on return values, default behaviors (e.g., when text is omitted), and how the shape interacts with the canvas or parent nodes. This makes it incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage, so baseline is 3. The description adds no extra meaning beyond listing the shape types, which are already in the schema. It does not clarify the fillColor format or coordinate system beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a FigJam shape with text inside') and specifies it's useful for flowcharts, diagrams, and process maps. It lists all supported shapes, making the purpose easy to understand. However, it does not differentiate from sibling tools like create_rectangle or create_ellipse which also create shapes but without text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for diagramming through the mention of flowcharts, diagrams, and process maps, which provides context. However, it lacks explicit guidance on when not to use this tool or alternatives like create_rectangle for plain shapes or set_text_content for adding text to existing shapes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_starC
Create a new star in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) | |
| width | Yes | Width of the star | |
| height | Yes | Height of the star | |
| points | No | Number of points (default: 5) | |
| innerRadius | No | Inner radius ratio (0.01-0.99, default: 0.5) | |
| name | No | Optional name for the star | |
| parentId | No | Optional parent node ID to append the star to | |
| fillColor | No | Fill color in RGBA format | |
| strokeColor | No | Stroke color in RGBA format | |
| strokeWeight | No | Stroke weight |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only states 'Create a new star'. It does not mention idempotency, return value, side effects, or required permissions. The schema details parameters but the description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise but too brief for a tool with 11 parameters and many siblings. It earns its place but could be slightly expanded without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 params, no output schema, many siblings), the description is incomplete. It does not explain how the tool fits among other shape creators or what the output is, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with detailed descriptions for each parameter. The description adds no additional meaning, so it meets the baseline for parameter semantics but provides no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new star in Figma' clearly states the verb and resource, and the name itself is specific enough. However, it does not differentiate from siblings like create_polygon, which overlap in concept, but 'star' is a distinct shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like create_polygon or create_shape_with_text. The description lacks any when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_stickyA
Create a sticky note in a FigJam board. Sticky notes are the primary way to add text content in FigJam.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position on the canvas | |
| y | Yes | Y position on the canvas | |
| text | Yes | Text content of the sticky note | |
| color | No | Background color of the sticky note (default: yellow). Supported values: yellow, pink, green, blue, purple, red, orange, teal, gray, white. | |
| isWide | No | Whether the sticky note should be wide format (default: false) | |
| name | No | Optional name/label for the node | |
| parentId | No | Optional parent node ID (e.g. a section) to place the sticky into |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'create' but does not disclose mutation behavior, idempotency, rate limits, auth requirements, or what gets destroyed. For a write tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, no redundant information. It is front-loaded with the core purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and no output schema, the description is minimal. It lacks details on coordinate system, text limits, or side effects. For a creation tool, it is functional but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema descriptions; it omits parameter details entirely. Adequate but no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a sticky note in a FigJam board and explains that sticky notes are the primary way to add text content in FigJam. This distinguishes it from siblings like create_text which are likely for non-FigJam contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding text content in FigJam but does not explicitly state when to use this tool over alternatives (e.g., create_text, set_sticky_text) or provide exclusions. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_textB
Create a new text element in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X position (local coordinates, relative to parent) | |
| y | Yes | Y position (local coordinates, relative to parent) | |
| text | Yes | Text content | |
| fontSize | No | Font size (default: 14) | |
| fontWeight | No | Font weight (e.g., 400 for Regular, 700 for Bold) | |
| fontColor | No | Font color in RGBA format | |
| name | No | Optional name for the text node by default following text | |
| parentId | No | Optional parent node ID to append the text to | |
| textAlignHorizontal | No | Horizontal text alignment. Use RIGHT for Arabic/RTL text. | |
| textAutoResize | No | Text resize behavior. Use HEIGHT for fixed-width text that wraps. | |
| width | No | Fixed width for the text node. Use with textAutoResize HEIGHT for wrapping text within a specific width. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only indicates creation without disclosing side effects, permissions, required state (e.g., file openness), or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It is efficient but could benefit from additional structure such as examples or notes given the 11 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite rich schema, the description fails to explain when to create vs. modify text, or to note that parentId is optional but may be needed, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add parameter information, but the schema already describes each parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create' and the resource 'new text element in Figma', differentiating it from sibling tools like create_rectangle or set_text_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No information is provided on when to use this tool versus alternatives such as create_shape_with_text or set_text_content, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
css_class_to_figma_styleB
Convert CSS class definitions to Figma local paint/text styles
| Name | Required | Description | Default |
|---|---|---|---|
| cssFilePath | Yes | Absolute path to the CSS file | |
| classNames | No | Optional list of specific class names to convert. If omitted, all classes are processed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Does not disclose whether styles are created or updated, if overwriting occurs, or any side effects. Only states conversion direction and types.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words conveys purpose efficiently with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple two-parameter tool with no output schema, but lacks information on return behavior or conflict handling. Sibling tools exist, so more context could help, but core function is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with clear descriptions. The tool description adds no extra meaning beyond the schema, meeting the baseline expectation for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Convert', the resource 'CSS class definitions', and the target 'Figma local paint/text styles'. It distinguishes this tool from siblings like sync_css_to_figma by specifying the exact conversion direction and output type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like sync_css_to_figma or apply_design_system. Missing prerequisites such as file path validity or Figma file state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deduplicate_pagesB
Find and remove duplicate pages, keeping the one with more content
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | If true, only report duplicates without deleting (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states it removes duplicates but does not explain what constitutes a duplicate (e.g., same name, same content). It also does not mention that a dryRun parameter exists (though the schema covers it) or what happens if dryRun is false. The deletion behavior is under-specified for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundancy. However, it could be slightly more detailed without becoming verbose, hence 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should explain return values (e.g., list of duplicates found/removed). It does not. Additionally, for a tool that can delete pages, more context about safety (e.g., dryRun default) is expected. The description is incomplete for a potentially destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (dryRun), so the description adds no new meaning. Baseline score of 3 is appropriate; the description does not elaborate on the parameter's role in context (e.g., 'dry-run mode' vs 'actual deletion'), but the schema already covers it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: find and remove duplicate pages, with a specific criterion (keep the one with more content). It is a specific verb-resource combination that distinguishes it from siblings like cleanup_empty_pages or delete_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, warnings about potential data loss, or when not to use it. With many sibling tools (cleanup_empty_pages, delete_page, etc.), such guidance is essential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_nodeC
Delete a node from Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It only states the basic delete action and omits critical traits such as irreversibility, whether child nodes are deleted, or any side effects. For a destructive operation, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler words. It is front-loaded with the action and resource, but it is so minimal that it omits useful behavioral context; still, as far as structure and brevity, it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It fails to mention the irreversible nature of the operation, whether children are affected, or how this tool differs from 'delete_multiple_nodes'. An agent is left without key information for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the 'nodeId' parameter is clearly described as 'The ID of the node to delete'. The tool description does not add extra parameter semantics beyond the schema but does not need to, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete'), a resource ('node'), and a context ('from Figma'), making the core action clear. It does not explicitly differentiate from the sibling tool 'delete_multiple_nodes', so the specificity is slightly incomplete, but the singular phrasing and tool name carry that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as 'delete_multiple_nodes'. The description gives no context for choosing between single and batch deletion, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_pageB
Delete a page from the current Figma document
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the page to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose behavioral traits. It only states the action without mentioning consequences (permanent deletion, permissions needed, impact on other pages). Insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Efficiently communicates the core function despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 param, no output schema), the description is minimally adequate. Does not explain return value or error scenarios, but acceptable for low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description in schema already explains the parameter. The tool description adds no extra meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (delete) and the resource (page) with context (from current Figma document). Distinguished from sibling 'delete_node' which deletes a node within a page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., delete_node). Missing prerequisites or conditions like whether the page can be current or the last page.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_pageA
Duplicate an existing page in the Figma document, creating a complete copy of all its contents
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the page to duplicate | |
| name | No | Optional name for the duplicated page (defaults to 'Original Name (Copy)') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description alone must disclose behavior. It states a complete copy is made, but does not detail side effects (e.g., page position, naming collision handling beyond default, undoability). Basic transparency but insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Clearly communicates the tool's action and result. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. Description lacks details on where the duplicate is placed, whether it's reversible, error handling for invalid pageId, or how it relates to siblings like clone_node. Incomplete for a side-effect tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for both parameters. Description adds no extra meaning to parameter semantics; it only explains the overall effect. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Duplicate' and resource 'an existing page', and specifies the result as 'creating a complete copy of all its contents'. It distinguishes from siblings like create_page (creates empty page) and clone_node (clones a node).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like clone_node or create_page. The purpose is straightforward, but the description lacks context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_node_as_imageC
Export a node as an image from Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to export | |
| format | No | Export format | |
| scale | No | Export scale |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the tool name without adding behavioral context. It does not state whether the operation is read-only, what response format to expect, what limits exist, or how unsupported nodes are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no wasted words. It is easy to parse, though the brevity sacrifices useful behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description is the only place to communicate return behavior, side effects, and constraints. It provides none of that, leaving an agent uncertain about what happens after invocation beyond the parameter contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters adequately. The description adds no additional meaning to nodeId, scale, or format beyond what the schema provides, which aligns with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Export'), resource ('a node'), and result ('as an image'), making the core purpose clear. It is distinct from sibling tools, though it does not explicitly differentiate itself from alternatives by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus siblings, no prerequisites, and no mention of exclusions or alternatives. Usage is only implied by the tool's purpose, not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flatten_nodeB
Flatten a node in Figma (e.g., for boolean operations or converting to path)
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ID of the node to flatten |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as mutation, destructiveness, permissions, or side effects. The minimal description offers insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (14 words) and front-loaded with the main action, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, no output schema, no annotations), the description provides core purpose but lacks details on outcomes, error conditions, or prerequisites, leaving some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter described as 'ID of the node to flatten'. The description adds no extra meaning beyond the schema, but the parameter is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('flatten a node') with examples (boolean operations, converting to path), distinguishing it from siblings like 'boolean_operation' (a specific operation type) and 'convert_to_frame'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples of when to use (boolean operations, converting to path) but lacks explicit guidance on when not to use, prerequisites (e.g., node type), or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_component_variantsA
Generate Figma component variants (default, hover, active, disabled) from a base component
| Name | Required | Description | Default |
|---|---|---|---|
| componentNodeId | Yes | The node ID of the base Figma component | |
| states | No | Optional list of states to generate (default: ["hover", "active", "disabled"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the base component is modified, what happens to existing variants, authentication requirements, or confirmation of non-destructive behavior. The creation nature is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the core functionality with no redundancy or unnecessary words. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description covers the basic purpose and parameters but lacks information on side effects, return values, or prerequisites. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning by specifying 'from a base component' and listing example states ('default, hover, active, disabled'), which clarifies the role of the two parameters beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (generate), the resource (Figma component variants), and lists specific states (default, hover, active, disabled). It distinguishes from sibling tools like create_component_set or set_instance_variant by focusing on variant generation from a base component.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating component variants but lacks explicit guidance on when to use this tool versus alternatives (e.g., create_component_set, set_instance_variant). No conditions or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annotationC
Read annotations from a node in Figma. Uses the proposed Annotations API.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to read annotations from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden of behavioral disclosure. It only states it reads annotations, but does not address edge cases (e.g., node not found, no annotations), response format, or any limitations related to the proposed API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) with no redundancy. The second sentence about the proposed API is slightly extraneous but does not detract from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should at least hint at the return format or contents of annotations. It fails to do so, leaving the agent uncertain about what to expect. Additionally, the mention of a 'proposed' API suggests instability but lacks further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a description for nodeId. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads annotations from a node, distinguishing it from sibling tools like set_annotation that write. The verb 'read' and resource 'annotations' are specific, but it could be more explicit about the context of annotations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While set_annotation exists as a sibling for writing, the description does not mention it or provide any when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_infoB
Get detailed information about the current Figma document
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' implies a read operation, but the description does not state whether there are side effects, authentication requirements, or any details about what 'detailed information' includes or how it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It front-loads the action and resource clearly, earning its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool, the description is minimally adequate, but it leaves the agent without a clear sense of what 'detailed information' means or what the output will contain. With no output schema and no annotations, more specificity about the returned content would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers this dimension. The description adds no parameter semantics, but none are needed for a parameterless tool; the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'current Figma document,' which identifies the tool's function. However, 'detailed information' is vague and does not specify what is included, and it doesn't explicitly distinguish itself from sibling tools like get_node_info or read_my_design.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_selection, get_node_info, or read_my_design. The description gives a general purpose but no context, exclusions, or selection criteria, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_figjam_elementsA
Get all FigJam-specific elements (stickies, connectors, shapes with text, sections, stamps) on the current page. Use this to read the contents of a FigJam board.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it reads contents but does not disclose behavioral details (e.g., whether the tool is read-only, what happens if the page is not a FigJam board, or performance characteristics). The description is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains what elements are retrieved, second when to use. Front-loaded, no filler, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description provides sufficient context for a simple read operation. It lists the element types and board context. It could mention the output structure (e.g., returns an array) but is not required to be exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100% trivially. Per guidelines, 0 parameters warrants a baseline of 4. Description adds no parameter semantics, which is acceptable here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves FigJam-specific elements (stickies, connectors, shapes with text, sections, stamps) on the current page, distinguishing it from general node retrieval tools like get_node_info or get_selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using this tool to read FigJam board contents, providing clear context. Lacks explicit alternatives or when-not-to-use guidance, but the sibling list implies alternatives like get_node_info for broader node data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gridA
Read layout grids from a frame node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the frame node to read grids from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Read' (non-destructive) but fails to mention error handling, permissions, or what happens if the node is not a frame. This leaves significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that front-loads the action ('Read layout grids from a frame node in Figma'). Every word is meaningful with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description is minimally adequate but lacks details about return format or behavior when the node has no grids. It covers the core functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the only parameter 'nodeId' is described in schema). The description adds no additional meaning beyond 'The ID of the frame node to read grids from', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read layout grids from a frame node in Figma' uses a specific verb ('Read') and identifies the resource ('layout grids'), clearly distinguishing it from sibling tools like 'set_grid' (write) and 'get_guide' (guides vs grids).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading grids from a frame node but provides no explicit guidance on when to use vs alternatives or prerequisites (e.g., node must be a frame). The purpose is clear enough for the agent to infer basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideC
Read guides from a page in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | The ID of the page to read guides from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior. It correctly implies a read operation but does not mention permissions, side effects, or return format. The description is insufficient for a mutation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (five words) and front-loaded. It has no wasted words, but the extreme brevity may sacrifice necessary detail, making it less than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only one parameter and no output schema, but the description fails to explain what guides are or how they relate to sibling tools like grids. The context is incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter with description). The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Read guides from a page', providing a clear verb and resource. However, it does not differentiate from sibling tools like get_grid or get_annotation, leaving ambiguity about what 'guides' refers to (e.g., ruler guides vs. grid guides).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as set_guide, get_grid, or get_annotation. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_image_from_nodeB
Extract image metadata from a node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to get image from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'extract image metadata' without detailing what metadata is returned, behavior on non-image nodes, or error conditions. Inadequate for unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is extremely concise and front-loaded with the core action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only one parameter, description should specify what 'image metadata' includes (e.g., dimensions, format). Current description leaves ambiguity, making it incomplete for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (nodeId described as 'The ID of the node'). Description adds no additional parameter semantics beyond schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Extract' and resource 'image metadata from a node', clearly distinguishing from sibling tools like 'export_node_as_image' or 'get_svg' which handle actual image data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of prerequisites, context, or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_local_componentsA
Get all local components from the Figma document
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly signals a read-only list operation via 'Get,' but it does not define what qualifies as 'local,' whether nested/variant components are included, or what the returned component data contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. Every word adds value, and the key scoping terms 'local' and 'Figma document' are included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter, the description is mostly sufficient to invoke the tool correctly. However, with no annotations and no output schema, the agent is left to infer the exact return structure and the precise boundary of 'local components.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no schema to elaborate on and no parameter meaning to clarify. Baseline 4 applies because no input documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get all local components' scoped to 'the Figma document.' It is clear and distinguishable from siblings like get_selection, get_styles, or get_node_info, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool instead of related tools like scan_nodes_by_types or get_styles. The term 'local' implies it excludes library/team components, but this distinction is not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoB
Get detailed information about a specific node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to get information about |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It only says 'get detailed information'; it does not disclose what fields or depth of data are returned, whether authentication/access is required, or how invalid node IDs are handled. The verb 'get' implies read-only, but no additional behavioral detail is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word contributes to stating the action and the target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool, the description is minimally sufficient to make a call, but it does not specify what 'detailed information' contains and does not route the agent away from get_nodes_info. With no output schema and no annotations, that leaves a real gap in selecting and interpreting the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents nodeId with 100% coverage, so the baseline is 3. The description adds 'specific node' but no extra meaning about the ID format, nesting, or addressability of nodes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: get detailed information about a specific node in Figma. It is not as strong as it could be because it does not explicitly contrast itself with the plural sibling get_nodes_info or with get_document_info, leaving the distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over get_nodes_info, get_selection, or get_document_info, and no mention of prerequisites or cases where it should not be used. The intended usage is only implicit in the verb 'get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodes_infoC
Get detailed information about multiple nodes in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Array of node IDs to get information about |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not reveal what 'detailed information' contains, whether there are limits on the number of node IDs, how errors are handled, or what the response format looks like. This is a minimal, somewhat tautological statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no redundant filler. It is front-loaded with the core action and resource. While it could include more useful detail, it does not waste words, so conciseness is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should clarify what information is returned for the requested nodes, but it does not. It also omits any mention of limits, error behavior, or relationship to sibling tools. For a tool with one parameter, the definition is underspecified and leaves important operational context unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has complete coverage (100%) for the single parameter, and the description adds no additional semantic detail beyond what the schema already says. The baseline of 3 applies because the schema documents the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('detailed information about multiple nodes in Figma'), which distinguishes it from singular sibling get_node_info by indicating multiplicity. However, 'detailed information' is vague about what exactly is returned, and it does not explicitly reference or contrast with similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus siblings like get_node_info, get_selection, or get_document_info. The description does not mention any conditions, exclusions, or alternatives, leaving the agent to infer usage solely from the tool name and parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pagesA
Get all pages in the current Figma document
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. Does not disclose if pages include hidden/archived pages, authorization requirements, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no wasted words, appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and no output schema, the description is fairly complete. However, lacks detail on what 'all pages' entails (e.g., hidden pages, order).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. Baseline score of 4 applies; the description adds context by specifying 'in the current Figma document', which is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'all pages' with scope 'in the current Figma document'. It is specific and distinguishes from sibling tools like 'create_page' and 'delete_page'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, filtering, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_remote_componentsA
Get available components from team libraries in Figma
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the operation is a read ('Get') but does not mention authentication requirements, library selection, or what 'available' entails (e.g., published vs. unpublished). Minimal transparency beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that is front-loaded with the verb and resource. No extraneous information, every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is adequate but could be more complete by clarifying that it retrieves published components from accessible team libraries. The lack of output schema increases the need for description of return value scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description does not need to explain parameters. It adds value by specifying the resource ('team libraries'), which is not evident from the empty schema. Baseline 4 for zero parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource 'available components from team libraries in Figma'. It distinguishes itself from the sibling tool 'get_local_components' by specifying 'remote' components, making its purpose precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving team library components but does not explicitly state when to use this tool versus alternatives like 'get_local_components'. No exclusions or conditions are provided, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_selectionB
Get information about the current selection in Figma
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. It signals a read operation through 'Get information' but does not disclose return fields, side-effect freedom, or any prerequisites like needing an open document. This is minimal extra value beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every word contributes to stating the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple zero-parameter getter, so the description is nearly sufficient. However, with no output schema present, the vague term 'information' leaves the agent guessing about the return shape, such as whether it returns node IDs, types, or names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is effectively complete, so the description has nothing to add. The baseline of 4 applies because no parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('current selection in Figma'), making the tool's basic purpose understandable. It is distinct from siblings such as set_selections, get_node_info, and get_document_info, though it does not enumerate exactly what information is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative tool guidance is provided. The name and sibling list imply it is for reading the active selection rather than mutating it with set_selections or querying a specific node with get_node_info, but this is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_styled_text_segmentsA
Get text segments with specific styling in a text node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to analyze | |
| property | Yes | The style property to analyze segments by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. However, it only states the function without disclosing behavioral traits such as what happens with invalid nodeId, whether it is a read-only operation, or if there are any side effects. The simplicity leaves ambiguity about error handling and output nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no extraneous information. It is appropriately sized for the tool's simplicity and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description omits details about return format, pagination, or error behavior. While the tool is simple, the description is minimally adequate but leaves gaps that could be filled with more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides; it merely restates the purpose without elaborating on parameter values or usage nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets text segments with specific styling within a text node. The verb 'Get' and resource 'text segments with specific styling' are specific. Among siblings, 'scan_text_nodes' is broader, so this tool is clearly distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to analyze styled segments in a specific text node, but it does not provide explicit instructions on when to use this tool versus alternatives like 'scan_text_nodes' or 'get_node_info'. No when-not or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stylesA
Get all styles from the current Figma document
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get', implying a read operation, but does not clarify what kinds of styles are included (fill, text, effect, grid), whether library styles are returned, or what the response contains. This is minimal behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word earns its place, and the verb-resource-scope structure makes it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter getter, the description is largely sufficient: an agent knows what action to take and what resource to expect. The main gap is the ambiguous scope of 'styles', which could be interpreted in multiple ways, but the overall call is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema requires no documentation. The baseline of 4 applies because there are no parameter semantics to clarify; the description does not need to add parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('all styles'), and a scope ('current Figma document'). It is immediately distinguishable from sibling tools like get_local_components or get_document_info, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_local_components or get_document_info. The phrase 'from the current Figma document' gives some context, but no explicit conditions, exclusions, or alternative-tool routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_svgA
Export a single node as an SVG string from Figma. Returns the SVG markup including all nested children.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to export as SVG |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states the output (SVG string with all nested children) and the action (export). However, it does not disclose any side effects, permissions, or limitations such as whether this triggers rendering or has size constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the core purpose. Every word adds value, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with one required parameter and no output schema, the description is mostly complete. It explains what is returned (SVG markup including children). Missing are potential error conditions or limitations, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single required parameter 'nodeId' described as 'The ID of the node to export as SVG'. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports a single node as an SVG string from Figma, with specific verb 'export' and resource 'node as SVG'. It distinguishes itself from sibling tools like 'export_node_as_image' and 'get_image_from_node' by specifying the output format (SVG) and including nested children.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining SVG markup of a node but does not explicitly mention when to use this tool over alternatives like 'export_node_as_image' or 'get_image_from_node'. No exclusion or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variablesA
List all variable collections and their variables in the current Figma file. Returns collections with their modes and variables.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('list... returns'), which is sufficient. No annotations exist, but the description carries the full burden and does not contradict any structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence that is front-loaded with the key action and resource, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and no output schema, the description completely explains what the tool does and returns, making it fully sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds meaning beyond the schema by describing the return structure (collections, modes, variables).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'list' and the resource 'variable collections and their variables', and it differentiates from sibling tools like 'apply_variable_to_node' or 'set_variable'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned, but for a simple read-only listing tool, the usage context is implied given sibling tools are mostly mutation or specific manipulators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_nodesC
Group nodes in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Array of IDs of the nodes to group | |
| name | No | Optional name for the group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but merely states the action. It does not disclose whether grouping is destructive, requires selection, or affects existing groups, leaving the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words), which is efficient, but lacks any explanatory structure. It earns a high conciseness score but could benefit from minimal elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (2 params, no output schema), the description is too minimal. It does not explain the effect of grouping, side effects, or expected behavior, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions in the schema). The description adds no extra meaning beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Group nodes in Figma' clearly states the action (group) and resource (nodes), distinguishing it from siblings like 'ungroup_nodes', 'flatten_node', and 'delete_node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool over alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_childB
Insert a child node inside a parent node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| parentId | Yes | ID of the parent node where the child will be inserted | |
| childId | Yes | ID of the child node to insert | |
| index | No | Optional index where to insert the child (if not specified, it will be added at the end) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether this is a destructive operation, auth requirements, or side effects on the document. The bare verb 'insert' leaves much to the agent's assumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the essential information. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a moderate number of parameters (3), the description is incomplete. It does not explain return values, error conditions, or the effect on the document structure. The agent may lack sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any extra meaning beyond what is already in the schema; it merely repeats the operation. No parameter details are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (insert) and the target resource (child node inside a parent node), which is distinct from sibling tools that perform other operations like delete, move, or rename.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like move_node or duplicate_node. No mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_channelC
Join a specific channel to communicate with Figma
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | The name of the channel to join |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose side effects, permissions, or state changes. It only says 'join' and 'communicate', with no indication of what happens upon joining, whether it's reversible, or if any permissions are required. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which risks under-specification. While it avoids fluff, it omits crucial details, making it less effective. It is concise but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should provide more context about return values, side effects, and prerequisites. For a state-changing tool like 'join_channel', this description is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the sole parameter ('channel') with full coverage (100%). The description adds no additional semantic value beyond what the schema provides, so a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (join) and the resource (channel). However, the phrase 'to communicate with Figma' is vague; it doesn't specify what joining a channel entails. Nonetheless, the core purpose is evident and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For instance, there is a sibling 'list_active_channels' that might be a prerequisite, but no hints are given. The description offers no usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_active_channelsA
List all active Figma plugin channels currently connected to the WebSocket server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a safe read operation, but does not disclose behavioral details such as latency, caching, or whether it affects server state. 'Active' is undefined, and there is no mention of side effects or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence containing all essential information. No unnecessary words, well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description clarifies the tool's purpose, it lacks information about the return value or output format. Since there is no output schema, the description should ideally describe what the listing includes (e.g., channel IDs, names). Without this, the agent may be uncertain about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%. The description adds meaning by specifying that the channels are 'active' and 'currently connected', which provides context beyond the empty schema. For a parameterless tool, this is excellent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the specific resource 'active Figma plugin channels' with a qualifier 'currently connected to the WebSocket server'. It uniquely identifies the tool's function among siblings like 'join_channel'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites, when not to use, or typical scenarios. The description is purely functional without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_pages_detailedA
List all pages in the Figma document with frame counts and duplicate detection
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only mentions outputs (frame counts, duplicates) but does not state that it is read-only, safe, or if it has any side effects. 'List' implies read, but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that immediately conveys action and key outputs. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, the description captures the main outputs. However, without an output schema, the agent might benefit from more detail on the structure (e.g., how duplicates are reported). Still mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (trivial). The description adds no parameter info, but baseline 3 is appropriate as per guidelines for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists all pages and includes frame counts and duplicate detection. It distinguishes from siblings like 'get_pages' (basic list) and 'deduplicate_pages' (action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives like 'get_pages' or 'deduplicate_pages'. It implies detailed page info but lacks when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_font_asyncC
Load a font asynchronously in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| family | Yes | Font family name | |
| style | No | Font style (e.g., 'Regular', 'Bold', 'Italic') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The async nature is mentioned, but no details on return behavior, error handling, or side effects. With no annotations, the description should provide more behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is entirely non-redundant and front-loaded with key information. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file loading operation with no output schema, the description lacks critical context about async behavior, error states, and usage prerequisites. Minimal completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond what the schema already provides. Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (load) and resource (font) with the async qualifier. It is distinct from sibling tools like set_font_name which modify properties rather than loading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, or prerequisites such as font availability. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_nodeB
Move a node to a new position in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to move | |
| x | Yes | New X position (local coordinates, relative to parent) | |
| y | Yes | New Y position (local coordinates, relative to parent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like side effects, permissions required, or coordinate system behavior. It only states the basic action without deeper context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that gets straight to the point with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fails to explain return values or provide complete context for using the tool effectively. It is minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already provides clear parameter meanings. The description adds no extra semantic value beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Move a node to a new position in Figma,' using a specific verb and resource. It effectively distinguishes this tool from siblings like 'resize_node' and 'rotate_node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It lacks information about prerequisites, limitations, or conditions under which moving a node might not be appropriate, such as within auto-layout frames.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organize_pagesA
Reorder pages alphabetically or by a custom number prefix (01., 02., etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Sort order: 'numbered' sorts by leading number prefix, 'alphabetical' sorts A-Z (default: numbered) | numbered |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states that pages are reordered, which implies mutation, but does not disclose side effects, prerequisites, or whether the operation affects all pages. Acceptable for a simple tool but lacks full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with purpose and contains no unnecessary words. Every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional param, no output schema), the description is sufficient. It explains both ordering methods clearly. Could mention return values or confirm the operation but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by providing an example of the number prefix format ('01., 02., etc.'), which goes beyond the schema's enum descriptions. This helps agents understand the expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('reorder') and resources ('pages') and clearly distinguishes two ordering methods (alphabetical, by number prefix). It differentiates from sibling tools like 'reorder_node' and 'deduplicate_pages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly states when to use the tool (to reorder pages alphabetically or by number prefix). It does not explicitly list exclusions or alternatives, but the context is clear given the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
react_to_figmaB
Analyze a React/TSX component file and create corresponding Figma frames and elements
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the React/TSX component file | |
| pageId | No | Optional Figma page ID to create elements in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the high-level purpose ('analyze and create') but omits critical details: whether it modifies existing elements, requires specific permissions, is destructive, or has side effects. The description is too brief to ensure the agent understands the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. However, it is perhaps too concise for the tool's complexity, missing opportunities to add useful context. Front-loading is good, but slightly more detail would improve utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of analyzing a React component and generating Figma elements, the description is incomplete. It lacks details about the creation process, error handling, behavior when pageId is omitted, and output expectations (no output schema). More context would help the agent use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, so the description adds no additional meaning beyond what the schema provides. Baseline of 3 is appropriate; the parameter details are already clear from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (analyze and create) and the resource (React/TSX component file to Figma frames/elements). It uniquely distinguishes from all sibling tools, which focus on manual creation or manipulation of Figma elements, not automated analysis and generation from code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, limitations, or scenarios where other tools (e.g., create_frame for manual work) would be more appropriate. The agent is left without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_nodeB
Rename a node (frame, component, group, etc.) in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to rename | |
| name | Yes | The new name for the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the rename is destructive, if it requires permissions, or what happens to the node's children or styles. For a mutation tool, this is a significant lack of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and to the point, with no extraneous information. It is efficient but lacks any structural elements like bullet points or sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should ideally explain what is returned (e.g., success confirmation, updated node ID). It does not. Also, annotations are missing. For a simple two-parameter tool, it is marginally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (nodeId and name). The description adds no extra meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'rename' and the resource 'node', and lists specific node types (frame, component, group, etc.), making it easy to distinguish from sibling tools like 'move_node' or 'delete_node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'set_node_properties', which might also allow renaming. The agent has no help in deciding between these tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_pageC
Rename an existing page in the Figma document
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the page to rename | |
| name | Yes | New name for the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral transparency. It reveals that the tool mutates the document by renaming a page, but does not disclose side effects, such as impact on nested elements or potential name conflicts. No read-only or destructive hints are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action. It is concise with no redundant words, though it could include brief context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is minimally adequate. However, it lacks completeness on preconditions (e.g., page must exist) and postconditions (e.g., name change affects references), which would help an agent avoid errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with clear descriptions for both parameters ('ID of the page to rename' and 'New name for the page'). The tool description adds no additional meaning beyond the schema, meeting the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it renames an existing page in the Figma document. The tool name and description together specify the resource (page) and action (rename). However, it does not explicitly differentiate from the sibling tool 'rename_node', which could rename any node, leaving potential ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'rename_node' or 'create_page'. There is no mention of prerequisites, such as the page needing to exist, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_nodeA
Change the z-order (layer order) of a node within its parent. Distinct from insert_child which re-parents a node — reorder_node changes position within the same parent.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to reorder | |
| position | No | Move to front/back or one step forward/backward | |
| index | No | Direct index position within parent's children (0 = bottom). Overrides position if both provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool changes layer order within the same parent, which is a non-destructive operation. It does not mention any side effects, permissions, or error conditions, but for this simple tool, the behavior is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short sentences that immediately convey the core purpose and key distinction. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema), the description covers all necessary aspects: purpose, distinction from a key sibling, and interaction between parameters. The agent has enough context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters. The description adds value by clarifying that the 'index' parameter overrides 'position' if both are provided, which is not stated in the schema. This helps the agent understand parameter precedence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool changes the z-order of a node within its parent, using a specific verb ('Change') and resource ('z-order of a node'). It clearly distinguishes itself from 'insert_child' by noting that reorder_node does not re-parent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly contrasts with 'insert_child' to guide when to use this tool vs that sibling. However, it does not mention other related siblings like 'move_node' (which changes position in 2D space) or provide explicit when-not-to-use guidance, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replace_image_fillA
Replace existing image on node with new image while preserving transform
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node with image to replace | |
| newImageSource | Yes | New image URL or base64 data | |
| sourceType | Yes | Source type: 'url' or 'base64' | |
| preserveTransform | No | Preserve existing image transform (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It notes that transform is preserved, which is useful, but omits other traits like what happens if no existing image, auth needs, or side effects. The description adds some context beyond the name but is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and efficient, containing no redundant or irrelevant information. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema and no annotations, the description is somewhat sparse. It covers the core action but lacks details on transform preservation semantics, error conditions, or the return value. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described in the schema. The description adds no additional parameter-specific meaning beyond what the schema provides. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description "Replace existing image on node with new image while preserving transform" clearly states the action (replace) and the resource (image on node). It provides a specific verb and resource, distinguishing it from generic set operations. However, it does not explicitly differentiate from the sibling tool 'set_image_fill'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to replace an image while keeping its transform, but it provides no explicit guidance on when to use this vs. alternatives like set_image_fill, nor does it mention prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_nodeC
Resize a node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to resize | |
| width | Yes | New width | |
| height | Yes | New height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Resize a node in Figma' only implies mutation; it does not disclose whether the operation is reversible, how it interacts with auto-layout, constraints, or child nodes, or any side effects. For a mutating tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero filler: 'Resize a node in Figma' conveys the purpose immediately. It earns its place, though the terseness borders on under-specification rather than deliberate brevity backed by richer content elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the one-sentence description must carry all context, but it omits what the tool returns, whether changes are undoable, and how resizing affects constraints or auto-layout parents. An agent calling this tool would have to guess at side effects and expected confirmation behavior, which is inadequate even for a simple 3-parameter mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters with clear descriptions ('New width', 'New height', 'The ID of the node to resize'). The description adds no additional parameter meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (resize) and resource (a node in Figma), making the core action unambiguous. It distinguishes from sibling tools because move_node, rename_node, delete_node, and clone_node each carry different verbs, so there is no overlap in what this tool does. It stops short of a 5 because it adds no scope detail (e.g., which node types are resizable) or explicit differentiation language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as move_node, set_layout_sizing, or set_layout_mode. There are no conditions, exclusions, or references to siblings, leaving the agent to infer appropriateness entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotate_nodeA
Rotate a node in Figma by a specified angle in degrees (clockwise). Use relative=true to add to the current rotation instead of setting an absolute value. Note: locked nodes can still be rotated — the Plugin API bypasses the UI lock by design.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to rotate | |
| angle | Yes | Rotation angle in degrees (clockwise) | |
| relative | No | If true, add angle to current rotation instead of setting absolute value (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that locked nodes can be rotated (notable bypass of UI lock). However, it does not mention rotation center, anchor point, or impact on children, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a note, no redundant information. Key details are front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rotation tool, the description covers primary behavior and a critical caveat. It lacks mention of rotation center but is otherwise sufficient given no output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by specifying clockwise direction and clarifying the default behavior of relative (false) and the ability to rotate locked nodes, which are not in schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (rotate), resource (node in Figma), and specific details (angle in degrees clockwise). It distinguishes from sibling transformation tools like move_node or resize_node by focusing on rotation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the relative parameter and locked node behavior but does not explicitly state when to use this tool over alternatives like boolean_operation or apply_image_transform. Usage context is implied but not compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_text_nodesC
Scan all text nodes in the selected Figma node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ID of the node to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It implies a read-only scan but does not explain whether the scan recurses through all descendants, what data is returned, or how results are formatted. 'Scan' alone is too vague for an agent to predict behavior reliably.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It conveys the essential action and object efficiently, though it could include more behavioral detail without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description should explain what the tool returns or how the scan behaves. It does not mention return values, traversal depth, or any side effects, leaving significant ambiguity for a tool that an agent needs to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with nodeId described as 'ID of the node to scan.' The description adds only the phrase 'selected Figma node,' which maps loosely to the parameter but provides no extra semantic value. Baseline 3 is appropriate since the schema already documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('scan') and a clear resource ('all text nodes in the selected Figma node'), so an agent can understand the core function. It does not explicitly differentiate from the sibling scan_nodes_by_types, but the focus on text nodes makes the purpose reasonably distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool instead of alternatives like scan_nodes_by_types or get_node_info. The context of when this tool is appropriate is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_annotationA
Add an annotation label to a node in Figma. Uses the proposed Annotations API — requires Figma Desktop with enableProposedApi.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to annotate | |
| label | Yes | The annotation label text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the write nature (adds) and the prerequisite, but does not detail whether the operation is idempotent, what happens if annotation already exists, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the main purpose, and every word adds value. There is no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two required parameters, no output schema), the description is fairly complete. It covers the basic usage and prerequisite. However, it could benefit from a brief note about the return value or behavior when annotation already exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters adequately. The description adds no extra meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds an annotation label to a node in Figma, using a specific verb and resource. It distinguishes from the sibling tool 'get_annotation' which retrieves annotations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the prerequisite (Figma Desktop with enableProposedApi), providing clear context. However, it does not explicitly state when not to use this tool or mention alternatives beyond the implied contrast with 'get_annotation'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_auto_layoutC
Configure auto layout properties for a node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to configure auto layout | |
| layoutMode | Yes | Layout direction | |
| paddingTop | No | Top padding in pixels | |
| paddingBottom | No | Bottom padding in pixels | |
| paddingLeft | No | Left padding in pixels | |
| paddingRight | No | Right padding in pixels | |
| itemSpacing | No | Spacing between items in pixels | |
| primaryAxisAlignItems | No | Alignment along primary axis | |
| counterAxisAlignItems | No | Alignment along counter axis | |
| layoutWrap | No | Whether items wrap to new lines | |
| strokesIncludedInLayout | No | Whether strokes are included in layout calculations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It only states 'Configure', without disclosing effects like whether existing properties are overridden, if the node must already have auto layout enabled, or any permissions needed. The description lacks behavioral detail beyond the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the purpose. No redundant or unnecessary words; every part contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, no output schema, and no annotations, the description is incomplete. It omits return values, error conditions, preconditions (e.g., does the node need to be a frame?), and behavioral context. A more thorough description is needed for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; parameters are already well-described in the schema (e.g., 'paddingTop', 'layoutMode'). No relational or conditional semantics are explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool configures auto layout properties for a Figma node. It specifies the verb 'Configure' and resource 'auto layout properties', distinguishing it from generic node property tools like set_node_properties. However, it could be more precise about the scope (e.g., 'for a given node').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For instance, it does not clarify that this tool is specifically for auto layout settings, while other tools like set_node_properties might be used for general properties. There is no mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_corner_radiusA
Set the corner radius of a node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| radius | Yes | Corner radius value | |
| corners | No | Optional array of 4 booleans to specify which corners to round [topLeft, topRight, bottomRight, bottomLeft] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral expectations. 'Set the corner radius' conveys a basic mutation, but it does not mention that the change is persistent, whether unsupported node types will error, how the optional corners parameter interacts with the radius, or whether existing radius values are overwritten. For a mutation tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every word contributes to identifying the tool's action and target. The under-specification of behavioral details is a completeness issue, not a conciseness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with complete schema coverage, the core invocation details are present. However, with no annotations and no output schema, the description leaves important context unstated: how to obtain a valid nodeId, whether all nodes support corner radius, and what happens when corners is omitted. This is adequate but not robust.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents nodeId, radius, and the optional corners array. The description adds no parameter-specific meaning beyond echoing the general concept of corner radius. This is the expected baseline when the schema already handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Set') and resource ('corner radius of a node in Figma'). This meaningfully distinguishes it from sibling tools like set_fill_color, resize_node, or set_padding. Even without a title, the purpose is immediately unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied by the tool name and description: use it when you need to change a node's corner radius. However, there is no explicit guidance about when not to use it, what node types support corner radius, or how it relates to alternative tools such as resize_node or set_padding. It meets the threshold for implied usage but provides no explicit routing or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_pageB
Switch to a specific page in the Figma document
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the page to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It only states the action without mentioning side effects, permissions, or error conditions. The tool likely changes the current page view, but this is not explicitly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is front-loaded and efficiently conveys the tool's action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is largely sufficient. However, it could briefly mention that the page must exist, though this is implied by the action. The description meets minimum needs but has a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the parameter ('ID of the page to switch to'). The description adds no additional meaning beyond the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'switch to a specific page' with a distinct verb ('switch') and resource ('page'). Among sibling tools like create_page, delete_page, rename_page, etc., this tool's purpose is unique and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to switch pages vs. create or delete pages. The description does not indicate prerequisites or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_effectsC
Set the visual effects of a node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| effects | Yes | Array of effects to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral details. It fails to mention whether effects replace or merge with existing ones, if order matters, or any side effects like permission requirements. The description is too brief to inform safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, which is concise and front-loaded. However, it sacrifices necessary detail for brevity, but still earns a 4 for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex input schema (array of effect objects) and no output schema, the description is too sparse. It doesn't explain return values or side effects, and with no annotations, more context is needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters well. The description does not add meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set the visual effects') and the resource ('a node in Figma'). It distinguishes from sibling tools like set_fill_color or set_stroke_color by specifying 'visual effects', which covers shadows and blurs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as set_effect_style_id. There is no discussion of when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_effect_style_idC
Apply an effect style to a node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| effectStyleId | Yes | The ID of the effect style to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does not disclose behavioral traits such as whether it overrides existing effects, what happens to previous effect styles, or if the operation is reversible. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is clear and to the point. While it could be improved by adding a bit more context, it is efficient and avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 string params, no output schema, no annotations), the description is minimally adequate. It tells what the tool does but lacks details about side effects or error conditions that would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters have descriptions in the schema (nodeId and effectStyleId). The description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Apply' and the resource 'effect style to a node in Figma', which is specific and distinguishes it from siblings like set_effects that modify effect properties directly. However, it could be more explicit about the style being an existing style ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_effects or set_fill_color. No mention of prerequisites (e.g., effect style must exist) or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_colorA
Set the fill color of a node in Figma. Alpha component defaults to 1 (fully opaque) if not specified. Use alpha 0 for fully transparent.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| r | Yes | Red component (0-1) | |
| g | Yes | Green component (0-1) | |
| b | Yes | Blue component (0-1) | |
| a | No | Alpha component (0-1, defaults to 1 if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses default behavior of alpha component and hints at how to achieve transparency. No annotations, so description carries burden; adds value beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no waste. Front-loaded with core purpose, then key detail about alpha.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple mutation tool with well-defined parameters. Lacks mention of error conditions or return value, but not critical given context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes each parameter (100% coverage). Description adds slight value by restating alpha default and suggesting alpha=0 for transparency, but mostly redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes exactly what the tool does: set the fill color of a node in Figma. Clear verb and resource, differentiated from sibling tools like set_stroke_color or set_gradient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on alpha default and usage for transparency. Does not explicitly contrast with alternative fill-setting tools but context makes it clear for solid colors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_font_nameB
Set the font name and style of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| family | Yes | Font family name | |
| style | No | Font style (e.g., 'Regular', 'Bold', 'Italic') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states the action (set font name and style) but does not disclose side effects like font loading requirements, whether the operation is idempotent, or what happens if the font is unavailable. The mutation implication is clear, but richer behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words that immediately conveys the core purpose. Every word earns its place; there is no fluff or redundancy. It is front-loaded with the action and target. For a simple tool, this is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description is minimally adequate. However, it lacks behavioral context (e.g., font loading, error conditions) and does not explain the return value (no output schema). For a mutation tool with no annotations, more detail would improve completeness, especially regarding prerequisites like node type validation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions (e.g., family is 'Font family name'). It does not clarify parameter dependencies, valid values, or how style interacts with family. The description neither improves nor harms parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets font name and style on a text node in Figma. It specifies the action and resource, though it does not explicitly differentiate from siblings like set_font_size or set_font_weight. The verb 'set' combined with 'font name and style' is specific enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as set_text_style_id or individual font property setters. There are no prerequisites, when-not-to-use instructions, or mention of related tools. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_font_sizeB
Set the font size of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| fontSize | Yes | Font size in pixels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It does not mention prerequisites (e.g., font must be loaded), side effects, or error conditions, leaving the agent unaware of important behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, avoiding redundancy. It efficiently conveys the core purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is minimally adequate. However, it does not address return values or what happens upon success/failure, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already well-described. The description adds no additional semantic value beyond the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set), the resource (font size of a text node), and the context (Figma). It effectively distinguishes from siblings like set_font_name or set_font_weight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as set_font_name or set_text_style_id. The description lacks contextual usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_font_weightB
Set the font weight of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| weight | Yes | Font weight (100, 200, 300, 400, 500, 600, 700, 800, 900) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as side effects, permissions, or reversibility. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is direct and contains no unnecessary words. Efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is adequate. It tells what the tool does, but could mention return values or errors. However, given the low complexity, it is relatively complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% since both parameters have descriptions. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb (Set), resource (font weight of a text node), and platform (Figma). It distinguishes the tool from siblings like set_font_size or set_font_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description only states the action, with no context on prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_gradientA
Set a gradient fill on a node in Figma. Supports linear, radial, angular, and diamond gradients. Replaces all existing fills (same behavior as set_fill_color).
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| type | Yes | Gradient type | |
| stops | Yes | Array of gradient color stops (minimum 2) | |
| gradientTransform | No | 2x3 affine transform matrix [[a,b,tx],[c,d,ty]]. Defaults to left-to-right linear: [[1,0,0],[0,1,0]] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool replaces all existing fills, which is a key behavioral trait. However, it omits details like error conditions, permission requirements, or node type constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: first states purpose, second adds constraints. No superfluous content, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, nested objects) and no output schema, the description covers the essential behavior and parameter roles. It could be improved by noting prerequisites (e.g., node must exist and accept fills) but is sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description adds minimal value beyond the schema. It mentions the gradient types and a default for gradientTransform, but these are already specified in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set a gradient fill on a node'), specifies the resource ('node in Figma'), and lists supported gradient types, distinguishing it from sibling tools like set_fill_color and set_image_fill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the tool 'Replaces all existing fills' and notes the same behavior as set_fill_color, providing context for when to use it. However, it does not explicitly state when not to use it or mention alternative tools for other fill types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_gridB
Apply layout grids to a frame node in Figma. Supports columns, rows, and grid patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the frame node to apply grids to | |
| grids | Yes | Array of layout grids to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It implies mutation but does not state whether grids replace existing ones, if node must be a frame, or any side effects. Lacks crucial context for a destructive action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys core purpose. Could be slightly more structured but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested object parameters, no output schema), the description is too minimal. Does not explain behavioral nuances like grid replacement, constraints on count vs sectionSize, or what 'apply' entails. Sibling tools like get_grid exist, but no cross-reference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds 'columns, rows, grid patterns' which maps to the pattern enum, but does not provide additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Apply' and the resource 'layout grids to a frame node'. It distinguishes from siblings like set_fill_color or get_grid by focusing on grid patterns, listing supported types (columns, rows, grid).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_fill_color or other 'set_*' tools. Does not specify prerequisites (e.g., node must be a frame) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_guideA
Set guides on a page in Figma. Replaces all existing guides on the page.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | The ID of the page to add guides to | |
| guides | Yes | Array of guides to set on the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that guides are replaced, which is a key behavioral trait. However, with no annotations, it omits other important details like permissions, side effects on other page elements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that efficiently convey the core purpose and a critical behavioral note, wasting no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers the essential function and replacement behavior. However, it lacks explanation of return values or error states, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema, which already fully documents the axis enum and offset number.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets guides on a page and replaces all existing guides, distinguishing it from sibling tools like get_guide by specifying the action and the replacement behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as set_grid or get_guide. It does not mention prerequisites, context, or exclusion criteria, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_imageA
Set an image fill on a node from base64-encoded image data. Supports PNG, JPEG, GIF, WebP. Max ~5MB after decode.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to apply the image fill to | |
| imageData | Yes | Base64-encoded image data (PNG, JPEG, GIF, or WebP). Max ~5MB after decode. | |
| scaleMode | No | How the image is scaled within the node (default: FILL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description provides some behavioral context (supports formats, max size) but fails to disclose whether it replaces existing fills, creates new layers, or other side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with main action and followed by supporting details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essentials: action, input type, formats, size limit. Lacks return value info but tool is simple and has no output schema. Minor gap for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented inside schema. Description reinforces constraints (max size, base64) but adds no new meaning beyond schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool sets an image fill on a node from base64 data, with specific verb and resource. It lists supported formats and size limit, distinguishing it from siblings like replace_image_fill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage as a general image fill setter, but no explicit guidance on when to use this vs alternatives like replace_image_fill. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_image_fillC
Apply image to node from URL or base64 data
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to apply image to | |
| imageSource | Yes | Image URL or base64 data string | |
| sourceType | Yes | Source type: 'url' for image URL, 'base64' for base64 encoded data | |
| scaleMode | No | Image scaling mode (default: FILL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the action without disclosing side effects (e.g., overrides existing fills, required permissions, error handling). The burden is on the description, which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) but lacks any structural elements like use cases or examples. It is minimally acceptable but could benefit from more detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema. The tool modifies a node, but the description does not mention return values, success conditions, or consequences of failure. Incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description adds no extra meaning beyond 'from URL or base64 data'. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Apply image') and resource ('node') with source types (URL or base64). It is clear but does not distinguish from similar sibling tools like 'set_image' or 'replace_image_fill'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description implies a general setting of image fill but does not specify exclusions (e.g., when to use replace_image_fill instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_image_filtersC
Apply color and light adjustments to image fills
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node with image fill | |
| exposure | No | Brightness adjustment (-1.0 to 1.0) | |
| contrast | No | Contrast adjustment (-1.0 to 1.0) | |
| saturation | No | Color intensity (-1.0 to 1.0, -1 = grayscale) | |
| temperature | No | Warm/cool tint (-1.0 to 1.0) | |
| tint | No | Green/magenta shift (-1.0 to 1.0) | |
| highlights | No | Bright area adjustment (-1.0 to 1.0) | |
| shadows | No | Dark area adjustment (-1.0 to 1.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like whether adjustments are additive or absolute, or if nodeId must reference a valid image fill. The one-line description omits these details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. It could be slightly expanded to include core behavior, but it is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters and no output schema, yet the description provides no context about combining filters, defaults ordering, or error cases. It is insufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters have schema descriptions, so the description adds limited value. It summarizes 'color and light adjustments' but doesn't clarify how parameters interact or what default values are, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies color and light adjustments to image fills, conveying the main action and target. However, it does not differentiate from similar sibling tools like set_image_fill or set_effects, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any conditions or prerequisites. The description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_instance_variantA
Change the variant properties of a component instance without recreating it. This preserves instance overrides and is more efficient than delete + create workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the instance node to modify | |
| properties | Yes | Variant properties to set as key-value pairs (e.g., { "State": "Hover", "Size": "Large" }) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It states that the tool preserves instance overrides and is more efficient, but it does not disclose any side effects, authorization requirements, error conditions, or whether changes are reversible. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that each serve a purpose: the first states the primary action, the second explains the benefit. There is no redundancy or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 required params, no output schema), the description explains the core behavior and a key benefit. However, it lacks details about constraints (e.g., valid variants, whether properties must match a component set) and the result of the operation (e.g., the instance is modified in place). This is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema; it uses the same language ('variant properties', 'instance overrides'). No additional semantic value is provided for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Change') and resource ('variant properties of a component instance'), and distinguishes this tool from alternatives by noting it preserves overrides and is more efficient than a delete+create workflow. This clearly states what the tool does and sets it apart from siblings like create_component_instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by contrasting with a delete+create workflow, suggesting this tool is better for changing variants without side effects. However, it does not explicitly state when to use this tool over alternatives like set_node_properties or generate_component_variants, nor does it list when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_letter_spacingB
Set the letter spacing of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| letterSpacing | Yes | Letter spacing value | |
| unit | No | Unit type (PIXELS or PERCENT) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. Only states the action, missing details like side effects, constraints, or return behavior. Insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence is concise but lacks structure. Could be improved by front-loading key info, though not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 3 parameters, no output schema, and no annotations, the description is too minimal. Lacks context on valid ranges, unit behavior, or return values, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds no extra meaning beyond the schema; it merely restates the purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (set), the resource (letter spacing of a text node), and the context (Figma). Distinguishes from sibling tools like set_font_size or set_line_height.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion criteria. Fails to provide context for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_line_heightB
Set the line height of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| lineHeight | Yes | Line height value | |
| unit | No | Unit type (PIXELS, PERCENT, or AUTO) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects, reversibility, permissions, or constraints (e.g., line height must be positive, unit auto implies no value).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of nine words that is front-loaded with the action and context. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description is minimal. It lacks context about node type requirement, mutation behavior, or validation rules, but schema descriptions fill parameter details. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds no additional meaning beyond what the schema already provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set the line height of a text node in Figma' uses a specific verb ('Set') and resource ('line height of a text node'), clearly distinguishing it from sibling tools like 'set_font_size' or 'set_letter_spacing'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., node must be a text node) or exclusions (e.g., not for other node types).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_multiple_text_contentsB
Set multiple text contents parallelly in a node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node containing the text nodes to replace | |
| text | Yes | Array of text node IDs and their replacement texts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only reveals that the operation sets multiple text contents 'parallelly', but does not state whether existing text is replaced, whether the node must contain text nodes, or whether the operation is atomic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and the action verb is front-loaded. However, 'parallelly' is an awkward modifier and 'text contents' is imprecise, so it is concise but not maximally polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is thin. It omits how this tool relates to set_text_content, what 'parallelly' means in terms of execution, and any side effects or prerequisites, though the schema covers the parameter mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema: 'parallelly' and 'in a node' hint at the relationship between the parent node and the array, but the schema already documents both parameters and their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and resource ('multiple text contents') and scopes the operation to 'a node'. The word 'multiple' differentiates it from the sibling set_text_content, though 'parallelly' is vague and 'text contents' is slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives are stated. The term 'multiple' implies this is the batch counterpart to set_text_content, but the description never clarifies when to choose this over the singular tool or what types of nodes are valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_propertiesA
Set visibility, lock state, and/or opacity of a node in Figma. Only provided properties are changed; omitted properties remain unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| visible | No | Set node visibility (true = visible, false = hidden) | |
| locked | No | Set node lock state (true = locked, false = unlocked) | |
| opacity | No | Set node opacity (0 = fully transparent, 1 = fully opaque) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the selective update behavior but does not mention permissions, error handling, or mutation effects beyond the basic behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose, and every word adds value. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with 4 parameters and no output schema, the description adequately covers purpose and selective update behavior. It could mention required permissions or that nodeId is mandatory, but it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters. The description adds no extra meaning beyond listing the properties; the behavioral hint about omitted properties being unchanged is useful but not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets visibility, lock state, and opacity of a node in Figma, using a specific verb and resource. It distinguishes from sibling tools by focusing on these three properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating only provided properties are changed, giving context on partial updates. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_paragraph_spacingB
Set the paragraph spacing of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| paragraphSpacing | Yes | Paragraph spacing value in pixels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not disclose side effects (e.g., whether spacing applies to empty text), permissions needed, or error conditions. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description is sparse. It omits that the node must be a text node and provides no info on return values or valid ranges. Incomplete given context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described. The description adds no additional meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set', the resource 'paragraph spacing', and the context 'text node in Figma'. It distinguishes this tool from siblings like 'set_text_align' or 'set_font_size'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., other text formatting tools) or on prerequisites like the node being a text node. The description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_selection_colorsA
Recursively change all stroke and fill colors of a node and all its descendants. Works like Figma's 'Selection colors' feature - perfect for recoloring icon instances.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify (typically an icon instance) | |
| r | Yes | Red component (0-1) | |
| g | Yes | Green component (0-1) | |
| b | Yes | Blue component (0-1) | |
| a | No | Alpha component (0-1, defaults to 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It mentions 'recursively change all stroke and fill colors' but does not disclose whether the operation is destructive (overwriting gradients or images), any required permissions, or potential side effects. The behavioral disclosure is minimal beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, highly concise, with no unnecessary words. The key information (recursive, stroke+fill, Figma feature) is front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (recursive color change on all descendants) and absence of an output schema, the description provides the core functionality and a use case but leaves gaps: behavior with non-vector nodes, handling of existing color effects, and result confirmation. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds minimal extra meaning (e.g., nodeId is 'typically an icon instance'), but does not significantly enhance understanding beyond the schema. The parameters are well-defined in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (recursively change all stroke and fill colors) and the resource (a node and all its descendants). It distinguishes itself from sibling tools like set_fill_color or set_stroke_color by specifying recursive behavior and referencing Figma's 'Selection colors' feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions it's 'perfect for recolorizing icon instances', giving a clear use case. However, it does not explicitly state when not to use it or mention alternatives like set_fill_color for single-node changes. The context is clear but lacks exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_sticky_textB
Update the text content of an existing FigJam sticky note.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the sticky note node to update | |
| text | Yes | The new text content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose behavioral traits such as side effects, error handling, or permissions. This mutation tool requires more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain return values, prerequisites, or scope limitations for a simple update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides clear descriptions for both parameters (nodeId and text). With 100% schema coverage, the description adds no additional value, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates text content of a FigJam sticky note, using a specific verb and resource. It distinguishes from sibling tools like create_sticky and set_text_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like set_text_content or create_sticky. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_stroke_colorB
Set the stroke color of a node in Figma (defaults: opacity 1, weight 1)
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to modify | |
| r | Yes | Red component (0-1) | |
| g | Yes | Green component (0-1) | |
| b | Yes | Blue component (0-1) | |
| a | No | Alpha component (0-1) | |
| strokeWeight | No | Stroke weight >= 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds some behavioral information by stating defaults (opacity=1, weight=1) for optional parameters. However, it does not disclose whether the operation is destructive, if any permissions are needed, or what side effects occur (e.g., if the node already has a stroke).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous information. It is front-loaded with the core purpose and adds defaults parenthetically. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with 6 parameters and no output schema, the description covers the essential purpose and defaults. It does not mention error cases, return values, or prerequisites, but given the tool's simplicity and the schema's completeness, it is mostly adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes all parameters. The description adds marginal value by noting default values for 'a' and 'strokeWeight', which is not in the schema. This slightly enhances understanding but does not significantly increase meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the stroke color of a node in Figma, specifying the verb 'Set' and the resource 'stroke color'. It also provides default values for opacity and weight. However, it does not explicitly distinguish itself from similar sibling tools like set_fill_color, but the context of 'stroke' makes it clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as set_fill_color or other node-modifying tools. The description merely states the action and defaults, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_svgA
Import an SVG string as a vector node in Figma. The SVG is sanitized (scripts and external resources are stripped) before import. Max 500KB.
| Name | Required | Description | Default |
|---|---|---|---|
| svgString | Yes | SVG markup string (max 500KB). Must contain a valid <svg> element. | |
| x | No | X position for the imported SVG (default: 0) | |
| y | No | Y position for the imported SVG (default: 0) | |
| name | No | Optional name for the imported node | |
| parentId | No | Optional parent node ID to place the SVG into |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It states that the SVG is sanitized (scripts and external resources stripped) and has a 500KB limit. However, it does not mention whether the operation is undoable, how errors are handled (e.g., invalid SVG), or if it returns a node reference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no redundant information. The first sentence immediately states the core purpose, and the second adds key behavioral details. Every word is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description needs to be more comprehensive. While it covers purpose and key constraints, it omits the return value (likely a node ID) and error conditions. For a tool that modifies document state, this leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds only the sanitization detail beyond the schema. Since the schema provides adequate descriptions for each parameter (e.g., 'X position for the imported SVG'), the additional value is minimal, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Import an SVG string as a vector node in Figma.' The verb 'import' and the resource 'SVG string' are specific, and the result is a 'vector node.' This distinguishes it from sibling tools like 'get_svg' (export) and other creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides constraints (sanitization, 500KB limit) but does not explicitly state when to use this tool versus alternatives like 'create_rectangle' or 'export_node_as_image.' There is no guidance on prerequisites or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_alignB
Set the text alignment of a text node in Figma. Use textAlignHorizontal RIGHT for RTL/Arabic text.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| textAlignHorizontal | No | Horizontal text alignment (LEFT, CENTER, RIGHT, JUSTIFIED). Use RIGHT for Arabic/RTL text. | |
| textAlignVertical | No | Vertical text alignment (TOP, CENTER, BOTTOM) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the action but does not disclose behavioral traits like mutation effects, reversibility, required permissions, or impact on other node properties. The tip about Arabic text adds minor context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, highly concise and front-loaded with the purpose. No extraneous information, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description covers basic function but lacks context on prerequisites, side effects, or when to use. It is minimally adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described. The description repeats the schema's tip about using RIGHT for Arabic text, adding no new semantics. Baseline 3 is appropriate as description does not compensate beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Set the text alignment of a text node in Figma', specifying verb and resource. It also provides a specific hint for RTL/Arabic text. However, it does not differentiate from sibling set_* tools beyond the alignment focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a usage hint for using RIGHT alignment for RTL/Arabic text, but lacks explicit guidance on when to use this tool versus alternatives (e.g., other set_* tools), and no mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_caseB
Set the text case of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| textCase | Yes | Text case type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states the action but omits details like error handling (e.g., if node is not a text node), reversibility, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence, 9 words) and efficient, but could benefit from additional structured information like usage context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 required params and no output schema, the description is too minimal. It lacks context about the node's existence, text-case constraints, or return behavior, making it incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra meaning beyond the parameter names and schema descriptions. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Set'), resource ('text case'), and context ('text node in Figma'). It is specific and distinguishes from siblings like 'set_font_name' or 'set_text_content'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., 'set_text_style_id' or 'set_font_name'). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_contentA
Set the text content of an existing text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| text | Yes | New text content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It states the action ('set text content') but does not disclose that existing text will be overwritten, possible error cases for invalid node IDs, permissions, or any side effects. The description mostly restates what the tool name already conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the action, target, and context efficiently.Purpose and scope are clear without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 simple parameters, full schema coverage, no output schema), the description is mostly sufficient for an agent to invoke the tool correctly. It clearly targets existing text nodes. However, a brief note about overwriting the existing text or batch alternatives would round out the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters and their meanings. The description adds minimal semantic value beyond reinforcing that the node must already exist and be a text node. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set'), a precise resource ('text content of an existing text node'), and the domain ('in Figma'). The word 'existing' distinguishes this from create_text, and the singular 'a text node' contrasts with set_multiple_text_contents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying one existing text node, but it does not explicitly explain when to prefer this over siblings like set_multiple_text_contents or create_text. There is no when/when-not guidance, only a contextual cue via 'existing'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_decorationC
Set the text decoration of a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| textDecoration | Yes | Text decoration type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Set,' implying mutation. It does not disclose any side effects, permissions, or behavior when the node is not a text node.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise and gets to the point, though slightly sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation with 2 required parameters and no output schema, the description is minimal. It lacks explanation of return values or additional context about text decoration types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; it merely restates the parameter names implicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets the text decoration of a text node in Figma, using the verb 'Set' and specifying the resource. However, it does not differentiate from sibling tools like set_text_align or set_text_case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or any prerequisites. With many sibling set_text_* tools, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_style_idC
Apply a text style to a text node in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the text node to modify | |
| textStyleId | Yes | The ID of the text style to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the action without explaining side effects, reversibility, or failure conditions (e.g., what happens if the node is not a text node or the style ID is invalid).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and gets to the point, but it lacks structure and is arguably too brief, missing opportunities to add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with two parameters, the description covers the basic purpose. However, with no output schema, the agent is left uninformed about return values or success/failure indicators. It is minimally complete but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described in the schema (nodeId and textStyleId). The description adds no additional meaning or context beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Apply a text style') and the target resource ('text node in Figma'). The verb and resource are specific. However, it does not explicitly distinguish from sibling tools like apply_design_system, which might also apply styles, but the name set_text_style_id makes the intent clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., set_font_name, apply_design_system). No prerequisites or context about required node type or style existence are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_variableA
Create or update a variable in a Figma variable collection. Creates the collection if collectionName is provided and it doesn't exist.
| Name | Required | Description | Default |
|---|---|---|---|
| collectionId | No | ID of an existing variable collection | |
| collectionName | No | Name for a new collection (used if collectionId not provided) | |
| name | Yes | Variable name | |
| resolvedType | Yes | Variable type | |
| value | No | Variable value. COLOR: {r,g,b,a} (0-1). FLOAT: number. STRING: string. BOOLEAN: boolean. | |
| modeId | No | Mode ID to set the value for (uses default mode if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It explains the collection creation behavior but does not mention whether updates overwrite or merge, required permissions, error conditions, or what happens if collectionId refers to a non-existent collection. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, no filler, front-loaded with the purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description covers core behavior but lacks details on error handling, return values, default mode behavior, and invalid value handling. Adequate for a simple tool but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minor context about the interaction between collectionId and collectionName but does not provide additional semantics beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates or updates a variable in a Figma variable collection, and explicitly mentions that it creates the collection if collectionName is provided and doesn't exist. This distinguishes it from sibling tools like get_variables (read) and apply_variable_to_node (apply).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., switch_variable_mode). The description implies usage for creating or updating variables but does not provide context on when not to use it or what prerequisites are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_variable_modeB
Switch the variable mode on a node for a specific collection. This changes which mode's values are used for bound variables.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | The ID of the node to switch mode on | |
| collectionId | Yes | The ID of the variable collection | |
| modeId | Yes | The ID of the mode to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core action but does not elaborate on side effects, whether the operation is reversible, required permissions, or how bound variables are updated. This is minimal for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 20 words, front-loaded with the action. It is concise and avoids redundancy, though it could be slightly expanded for clarity without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool with three well-documented parameters and no output schema, the description is adequate but leaves gaps about behavioral context, such as what happens to the previous mode or whether the change is persistent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters with 100% coverage. The description does not add extra meaning beyond what is in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Switch' and the resource 'variable mode on a node for a specific collection'. It also explains the effect by noting it changes which mode's values are used for bound variables. This distinguishes it from sibling tools that set variables or apply them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to change the variable mode for a node-collection pair, but it does not explicitly state when to use this tool versus alternatives like apply_variable_to_node or set_variable. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_css_to_figmaB
Read a CSS file and sync all CSS variables to Figma variable collections
| Name | Required | Description | Default |
|---|---|---|---|
| cssFilePath | Yes | CSS 파일의 절대 경로 또는 상대 경로 | |
| collectionName | No | 단일 컬렉션으로 묶을 경우의 컬렉션 이름. 미지정 시 카테고리별 자동 그룹화 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention whether syncing overwrites existing variables, handles conflicts, or requires file permissions, leaving significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, but it is overly brief and lacks important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema or annotations, the description fails to explain return values, behavior on existing variables, error conditions, or naming conventions, making it incomplete for this file-syncing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The tool description adds no extra meaning beyond the schema for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a CSS file and syncs CSS variables to Figma variable collections, using a specific verb and resource. It is distinct from the reverse sibling 'sync_figma_to_css'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_figma_to_cssA
Read Figma variable collections and generate a CSS file with custom properties
| Name | Required | Description | Default |
|---|---|---|---|
| outputFilePath | No | CSS 파일 출력 경로. 미지정 시 텍스트로 반환 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states the tool reads collections and generates a file, but does not mention side effects, idempotency, permissions, or error handling. For a tool that writes a file, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the tool's purpose. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality but lacks behavioral details that would be expected given the absence of annotations and output schema. It does not explain what happens with multiple collections or whether the operation is reversible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for its single parameter, including a description. The tool description does not add any additional meaning or usage guidance for the parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (read and generate), the resource (Figma variable collections and CSS file), and the output (custom properties). It distinguishes itself from siblings like sync_css_to_figma which performs the inverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for exporting Figma variables to CSS but does not explicitly state when to use this tool over alternatives. With siblings like sync_css_to_figma and apply_design_system, explicit guidance on when to use each would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ungroup_nodesC
Ungroup nodes in Figma
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ID of the node (group or frame) to ungroup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Ungroup nodes' without explaining what happens to children after ungrouping, whether it is destructive, or if it only works on certain node types. The parameter schema mentions 'group or frame', but this context is not in the description itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (2 words), which is efficient but lacks structure. It is front-loaded with the verb and resource, yet additional context could be added without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete. It does not explain the result of ungrouping, error conditions, or any side effects, leaving the agent with insufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the nodeId parameter has a description in the schema. The tool description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (ungroup) and resource (nodes in Figma), distinguishing it from sibling tools like group_nodes and flatten_node. However, it does not specify that it works on both groups and frames, which is only in the parameter description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool or when not to. There is no mention of prerequisites (e.g., the node must be a group or frame) or alternatives like flatten_node for more permanent operations.
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.
100 tool updates
v1.0.13- First observed
apply_design_system - First observed
apply_image_transform - First observed
apply_variable_to_node - First observed
audit_design_consistency - First observed
auto_connect - First observed
boolean_operation - First observed
cleanup_empty_pages - First observed
clone_node - First observed
compare_design_tokens - First observed
convert_to_frame - First observed
create_component_from_node - First observed
create_component_instance - First observed
create_component_set - First observed
create_connector - First observed
create_ellipse - First observed
create_frame - First observed
create_page - First observed
create_polygon - First observed
create_rectangle - First observed
create_section - First observed
create_shape_with_text - First observed
create_star - First observed
create_sticky - First observed
create_text - First observed
css_class_to_figma_style - First observed
deduplicate_pages - First observed
delete_node - First observed
delete_page - First observed
duplicate_page - First observed
export_node_as_image - First observed
flatten_node - First observed
generate_component_variants - First observed
get_annotation - First observed
get_document_info - First observed
get_figjam_elements - First observed
get_grid - First observed
get_guide - First observed
get_image_from_node - First observed
get_local_components - First observed
get_node_info - First observed
get_nodes_info - First observed
get_pages - First observed
get_remote_components - First observed
get_selection - First observed
get_styled_text_segments - First observed
get_styles - First observed
get_svg - First observed
get_variables - First observed
group_nodes - First observed
insert_child - First observed
join_channel - First observed
list_active_channels - First observed
list_all_pages_detailed - First observed
load_font_async - First observed
move_node - First observed
organize_pages - First observed
react_to_figma - First observed
rename_node - First observed
rename_page - First observed
reorder_node - First observed
replace_image_fill - First observed
resize_node - First observed
rotate_node - First observed
scan_text_nodes - First observed
set_annotation - First observed
set_auto_layout - First observed
set_corner_radius - First observed
set_current_page - First observed
set_effect_style_id - First observed
set_effects - First observed
set_fill_color - First observed
set_font_name - First observed
set_font_size - First observed
set_font_weight - First observed
set_gradient - First observed
set_grid - First observed
set_guide - First observed
set_image - First observed
set_image_fill - First observed
set_image_filters - First observed
set_instance_variant - First observed
set_letter_spacing - First observed
set_line_height - First observed
set_multiple_text_contents - First observed
set_node_properties - First observed
set_paragraph_spacing - First observed
set_selection_colors - First observed
set_sticky_text - First observed
set_stroke_color - First observed
set_svg - First observed
set_text_align - First observed
set_text_case - First observed
set_text_content - First observed
set_text_decoration - First observed
set_text_style_id - First observed
set_variable - First observed
switch_variable_mode - First observed
sync_css_to_figma - First observed
sync_figma_to_css - First observed
ungroup_nodes
TDQS
Scored across 100 tools
Many tools target the same resource with fine-grained operations (e.g., multiple fill-setting tools, many text property setters, and get_node_info vs get_nodes_info). While descriptions clarify distinctions, the sheer number of tools increases risk of misselection, especially between set_image and set_image_fill, or among text manipulation tools.
Most tools follow a verb_noun pattern (e.g., set_fill_color, create_rectangle, delete_node). A few outliers like boolean_operation and css_class_to_figma_style break the pattern, but these are rare. Overall naming is predictable and clear.
100 tools is very heavy for an MCP server. While the scope (Figma design, FigJam, variables, CSS) is broad, many tools could be combined (e.g., all text property setters could be a single set_text_properties). This count overwhelms the agent and exceeds typical expectations for a coherent tool set.
The tool set covers the full lifecycle of Figma objects: create, read, update, delete for frames, pages, components, instances, styles, variables, and more. Also includes design system audit, CSS sync, and FigJam-specific tools. No obvious gaps for common design tasks.
Maintenance
Related MCP Connectors
Agent personas for Claude. 16 tools, 13 personas, 3 workflows. Zero extra API cost. Free.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Teamfight Tactics data & AI coaching for Claude and ChatGPT — 19 tools, built-in Riot key.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables Claude Desktop and other AI tools to interact directly with Figma, allowing for powerful AI-assisted design capabilities through natural language commands.92309 npm659MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude Desktop to interact directly with Figma, allowing natural language commands to create, modify, and analyze designs including shapes, text, components, and layouts in real-time.MIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude to read and manipulate Figma documents in real-time through 62 operations including creating shapes, modifying styles, managing components, and exporting assets via a WebSocket bridge to a Figma plugin.54 npm72MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact directly with Figma Desktop for creating UI components, managing design tokens, and auditing files through natural language. It establishes a live connection between the AI and the Figma API via a local server and companion plugin.15,625 npmMIT