conductor-figma
Provides tools for creating and manipulating Figma design elements, including frames, text, components, vectors, layouts, styles, and exports. Supports design intelligence features like 8px grid, type scales, semantic colors, accessibility checks, and component defaults. Enables batch operations, design system management, responsive design, prototyping, and code export.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@conductor-figmaAudit accessibility on my current selection"
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.
conductor-figma
Design-intelligent MCP server for Figma. 201 tools across 17 categories. Every tool has built-in design intelligence — 8px grid, type scales, semantic colors, accessibility checks, component defaults. Works with Cursor and Claude Code.
npx conductor-figmaHow to use
1. Clone the repo (for the Figma plugin)
git clone https://github.com/dragoon0x/conductor.git2. Import the Figma plugin
Open Figma Desktop:
Go to Plugins → Development → Import plugin from manifest
Navigate to
conductor/figma-plugin/manifest.jsonClick Open
The plugin is now installed. You only need to do this once.
3. Add to Cursor
Open ~/.cursor/mcp.json and add conductor:
{
"mcpServers": {
"conductor": {
"command": "npx",
"args": ["-y", "conductor-figma"]
}
}
}Restart Cursor.
4. Connect and design
Open a Figma file
Run the plugin: Plugins → Development → Conductor
The plugin should show a green dot (Connected)
In Cursor chat, type
@conductorfollowed by any command
Example prompts
@conductor Create a dark hero section with a big heading and a purple CTA button
@conductor Check contrast between #ffffff and #6366f1
@conductor Create a dashboard layout with sidebar, KPI cards, and chart area
@conductor Audit accessibility on my current selection
@conductor Replace all #6366f1 with #3b82f6 across the file
@conductor Export this frame as React + Tailwind code
@conductor Scan my file and show me all off-grid spacing
@conductor Generate a color palette from #6366f1Alternative: use local path (faster startup)
Instead of npx, point directly to the cloned repo:
{
"mcpServers": {
"conductor": {
"command": "node",
"args": ["/path/to/conductor/bin/conductor.js"]
}
}
}Related MCP server: conductor-figma
How it works
You type in Cursor → MCP server (stdio) → WebSocket :3055 → Figma plugin → CanvasCursor starts the MCP server automatically. The server opens a WebSocket on port 3055. The Figma plugin connects to that WebSocket and executes commands on the canvas.
What makes this different
Other MCP servers for Figma are API wrappers. You give exact pixel values, they obey — even when those values are wrong. Conductor applies design rules before anything touches the canvas.
You say "create a button." A typical MCP makes a rectangle. Conductor makes a 44px-tall frame with 20px horizontal padding, 10px radius, 15px Semi Bold text — because that's what a button actually is.
201 tools in 17 categories
Create & Layout (20)
create_frame, create_text, create_rectangle, create_ellipse, create_line, create_svg_node, create_component, create_component_instance, create_component_set, create_smart_component, set_auto_layout, create_section, create_page, create_table_frame, create_form, create_nav_bar, create_card_grid, create_sidebar_layout, create_footer, create_header
Modify & Style (25)
modify_node, set_fill, set_stroke, set_effects, set_image_fill, style_text_range, set_constraints, delete_node, move_to_parent, duplicate_node, group_nodes, ungroup_nodes, resize_node, align_nodes, set_corner_radius, set_opacity, set_blend_mode, set_clip_content, rename_node, lock_node, set_visibility, reorder_node, set_layout_sizing, flatten_node, set_rotation
Vector & Shape (8)
create_vector, boolean_operation, create_polygon, create_star, offset_path, create_arrow, create_icon (35 built-in), create_divider
Read & Inspect (18)
get_selection, get_page_structure, get_node_info, get_nodes_info, find_nodes, get_local_styles, get_local_variables, list_components, list_pages, get_document_info, set_selection, set_focus, get_annotations, set_annotation, list_available_fonts, read_node_css, get_selection_colors, measure_distance
Variables & Tokens (10)
create_variable_collection, create_variable, bind_variable, get_variables, update_variable, delete_variable, create_design_tokens, import_tokens, export_tokens, swap_mode
Export & Code (12)
export_as_svg, export_as_png, export_to_react, export_design_specs, export_assets, screenshot, copy_css, generate_stylesheet, export_color_palette, export_typography, export_component_inventory, export_spacing_tokens
Accessibility & Lint (12)
audit_accessibility, check_contrast, fix_touch_targets, lint_design, fix_spacing, check_naming, suggest_improvements, validate_component, check_consistency, generate_a11y_report, color_blindness_check, responsive_check
Batch Operations (17)
batch_rename, batch_style, batch_replace_text, batch_replace_color, batch_resize, batch_align, batch_delete, batch_duplicate, batch_set_visibility, batch_lock, select_all_by_type, clean_hidden_layers, batch_set_font, batch_round_values, batch_remove_strokes, batch_remove_effects, batch_set_corner_radius
Design System (10)
scan_design_system, create_style_guide, detect_inconsistencies, normalize_design, extract_components, get_design_craft_guide, suggest_color_palette, suggest_type_scale, import_design_system, compare_to_system
Responsive (5)
create_responsive_variant, set_breakpoint, convert_to_responsive, generate_mobile, stack_for_mobile
Typography (10)
type_scale_apply, type_audit, type_set_hierarchy, type_check_measure, type_normalize, type_list_styles, type_pair_suggest, type_replace_font, set_text_content, type_create_style
Color (10)
color_palette_generate, color_extract, color_harmonize, color_darkmode, color_lightmode, color_check_all, color_create_style, color_apply_style, color_replace_global, color_generate_semantic
Prototype & Interaction (10)
create_prototype_link, create_scroll_behavior, set_overflow, create_overlay, set_fixed_position, create_hover_state, create_flow, list_flows, remove_prototype_link, set_transition
Page Management (8)
create_new_page, switch_page, duplicate_page, delete_page, rename_page, sort_pages, merge_pages, page_overview
Library & Components (8)
search_library, list_team_libraries, swap_component, detach_instance, reset_overrides, component_audit, batch_swap_component, publish_components
Annotation & Handoff (10)
annotate_spacing, annotate_colors, annotate_typography, create_measurement, create_spec_sheet, annotate_grid, annotate_hierarchy, create_component_docs, annotate_responsive, create_changelog
Effects & Styles (8)
create_glassmorphism, create_neumorphism, create_noise_texture, set_gradient_fill, create_shadow_system, apply_backdrop_blur, create_border_gradient, remove_all_effects
Design intelligence engine
Every tool queries the intelligence engine before touching Figma:
8px Grid — All spacing values snapped. snap(13) = 16.
Type Scale — 7 ratio presets: Minor Second through Golden Ratio.
Semantic Colors — Full palette from one brand hex. Dark + light modes.
Component Defaults — 18 component types with size variants.
Accessibility — WCAG AA/AAA contrast, 44px touch targets, font minimums.
Font Weights — Auto-resolves "bold" → "Bold", "600" → "Semi Bold".
Layout Intelligence — 13 layout presets: row, column, center, spread, sidebar, grid, form.
Troubleshooting
Plugin says "Disconnected" The MCP server isn't running. Make sure Cursor is open and conductor is configured in mcp.json. Try sending any @conductor message in Cursor chat — that triggers the server to start.
Port 3055 already in use
Kill the old process: kill $(lsof -t -i :3055) 2>/dev/null then restart Cursor.
Cursor shows "Loading tools" forever
Make sure you have the latest version. Run: npx conductor-figma@latest
Or use the local path method for faster startup.
Disclaimer
This software is provided strictly for educational and experimental purposes only. Do your own research (DYOR) before using in any production environment.
This is experimental, open-source software provided "as-is" with absolutely no warranties, representations, or guarantees of any kind — express, implied, or statutory — including but not limited to warranties of merchantability, fitness for a particular purpose, accuracy, reliability, or non-infringement.
The author(s), contributor(s), and maintainer(s) of this project — including the individual known as 0xDragoon — shall not be held liable for any direct, indirect, incidental, special, consequential, or punitive damages, losses, costs, or expenses arising from or related to the use, misuse, inability to use, or reliance upon this software, including but not limited to loss of data, loss of revenue, business interruption, or damages to Figma files, design assets, or any other digital property.
This software interacts with third-party services (Figma, Cursor, Claude Code) over which the author has no control. The author assumes no responsibility for any changes, outages, API modifications, or policy updates by these third parties that may affect the functionality of this software.
No data collection, telemetry, or analytics are performed by this software. All operations run locally between your machine and the Figma desktop application. However, the author makes no guarantees regarding data security, privacy, or confidentiality.
This software is not affiliated with, endorsed by, or sponsored by Figma, Inc., Anthropic, PBC, Anysphere (Cursor), or any other company or organization.
Users are solely responsible for ensuring their use of this software complies with all applicable laws, regulations, terms of service, and licensing agreements — including Figma's Terms of Service and API usage policies.
Use at your own risk. Always back up your Figma files before running any automated operations. The author is not responsible for any unintended modifications, deletions, or corruption of design files.
MIT License · Copyright 2025 0xDragoon
Available Tools
203 toolsalign_nodesC
Align multiple nodes relative to each other.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Nodes to align | |
| alignment | No | Alignment type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full behavioral disclosure burden. It states the operation but does not mention that alignment mutates node positions, what alignment is computed relative to, whether nodes must share a parent, or any side effects. 'Relative to each other' adds some context but leaves major behavioral questions unanswered.
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 wasted words. It front-loads the operation and the scope ('multiple nodes relative to each other') efficiently.
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 mutating tool with no annotations and no output schema, the description is incomplete. It does not explain expected node count, whether the alignment applies to the group's bounding box or individual nodes, or how this relates to batch_align. An agent would need to infer too much to invoke 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 description coverage is 100%, so the schema already documents nodeIds and alignment adequately. The description does not add meaning beyond the schema, which fits the baseline of 3 for high 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 uses a specific verb and resource: 'Align multiple nodes relative to each other.' This makes the core operation clear, but it does not differentiate from the sibling tool batch_align, which likely performs a similar alignment operation across multiple nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like batch_align, set_constraints, or reorder_node. The description only states what it does, not the conditions that make it the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annotate_colorsB
Add color swatch annotations to a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to annotate |
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 only states that the tool adds annotations but does not disclose whether existing annotations are replaced, whether this mutates the frame, or whether it only works on certain node types. This is a meaningful gap for a mutating 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 compact sentence with no filler. The action and target are front-loaded, making it easy to scan and understand.
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 single-parameter tool with no output schema, this is minimally usable. However, it lacks behavioral context such as whether the annotation is visual only, persistent, or destructive to existing annotations, so it is not fully complete 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?
The input schema already describes nodeId as 'Frame to annotate', and the description reinforces the same framing. With 100% schema description coverage, the description adds little beyond the schema, so the 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 uses a specific verb ('Add') and resource ('color swatch annotations to a frame'), making the core purpose clear. However, it does not explicitly differentiate from sibling annotation tools such as annotate_spacing, annotate_typography, or set_annotation.
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 phrase 'to a frame' implies the main use case: adding color swatch annotations specifically to a frame. But there is no explicit guidance about when to choose this tool over alternatives 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.
annotate_gridC
Visualize the underlying grid and spacing system of a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to annotate | |
| gridSize | No | Grid size to overlay (default: 8) |
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 explaining behavior, but it only says 'Visualize.' It does not disclose whether this is read-only, whether it creates persistent annotations on the frame, what it returns, or whether it modifies the design. The behavioral profile is underspecified for a tool that may add visual annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. Every word contributes to stating the tool's purpose, and it is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description needs to explain what calling this tool does and what the caller should expect. It does neither beyond a vague visualization intent. Missing details include whether the tool returns computed grid information, creates visible annotations, or requires specific frame 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 description coverage is 100%, so the input schema already documents both parameters ('Frame to annotate' and 'Grid size to overlay'). The description adds no information about nodeId or gridSize beyond that, keeping this at the 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?
The description uses a specific verb ('Visualize') and names a concrete resource ('the underlying grid and spacing system of a frame'), so the core purpose is clear. It does not explicitly differentiate from sibling tools like annotate_spacing, but the focus on 'grid' gives enough distinction to be useful.
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 alternatives such as annotate_spacing, create_measurement, or create_spec_sheet. The description implies it is for visualizing grid/spacing, but it provides no exclusions, prerequisites, or context for choosing it over similar annotation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annotate_hierarchyA
Annotate the visual hierarchy: heading levels, reading order, focal points.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to annotate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It says 'Annotate' but does not explain whether this creates persistent annotations, modifies document state, replaces existing annotations, or returns anything. For a mutation-like tool this is a meaningful 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?
A single, front-loaded sentence with no filler. Every word contributes meaning, and the key specifics are listed compactly.
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 a simple one-parameter schema and a clear purpose, but there is no output schema and no annotation metadata. The description does not explain what the annotation result looks like or whether it modifies the document, so it is not fully complete 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 the schema already documents that nodeId is the frame to annotate. The description does not add further parameter semantics, but per the baseline with high schema coverage this is acceptable.
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 ('Annotate') and resource ('visual hierarchy'), then specifies the exact aspects covered: heading levels, reading order, focal points. This clearly distinguishes it from sibling annotate_* tools like annotate_spacing, annotate_colors, annotate_typography.
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 described scope implies when this tool should be used, but there is no explicit guidance about when not to use it or which sibling tool to choose instead. Listing the specific hierarchy aspects gives some context, but leaves routing to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annotate_responsiveC
Annotate breakpoint behavior and responsive rules on a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to annotate | |
| breakpoints | No | Breakpoints to annotate |
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. The verb 'Annotate' hints at a non-destructive note-adding operation, but the description does not state whether this writes to the canvas, whether the frame itself is modified, whether annotations are reversible, how they are stored or displayed, or whether any analysis is performed. The text largely restates the tool name rather than revealing 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 lean sentence with no redundant filler and the key domain is front-loaded. It is efficient for its length, though it is under-specified rather than over-long, and it largely rephrases the tool name instead of adding substantial new 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?
With two parameters, no output schema, and no annotations, the description leaves the agent without expectations for return values, side effects, or how annotations relate to the broader responsive tool family. Given the crowded sibling ecosystem of responsive and annotation tools, the description is too thin to support confident tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The schema documents nodeId as 'Frame to annotate' and breakpoints as 'Breakpoints to annotate', and the description adds no further meaning such as the expected shape of the breakpoints array, whether it maps to existing breakpoints, or how the two parameters interact. The description neither compensates for nor worsens 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 uses a specific verb ('Annotate') with a resource ('a frame') and a precise domain ('breakpoint behavior and responsive rules'). This domain distinguishes it from sibling annotate_* tools (annotate_spacing, annotate_colors, annotate_typography, annotate_grid, annotate_hierarchy) and from responsive-modification tools like set_breakpoint and convert_to_responsive. However, it never explicitly names any sibling or the differentiating condition, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. An agent choosing between annotate_responsive, set_breakpoint, convert_to_responsive, create_responsive_variant, and responsive_check receives no routing help, and there is no mention of prerequisites such as performing a responsive check first. The context in which annotation is preferred over actual responsive modification is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annotate_spacingB
Add visual spacing annotations (redlines) to a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to annotate | |
| showGap | No | Show gap values (default: true) | |
| showMargin | No | Show margin values (default: true) | |
| showPadding | No | Show padding values (default: true) |
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 names the core behavior—adding redline spacing annotations—but does not disclose whether the operation is destructive, whether it replaces existing annotations, whether it requires special permissions, or whether it affects the frame in other ways. These are significant unknowns for a mutation-style 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, front-loaded sentence with no filler. Every word contributes meaning, and the parenthetical '(redlines)' adds useful precision without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers all parameters, making it minimally viable. However, with no annotations and no output schema, the description should disclose more about side effects and expected results. It is adequate but leaves meaningful behavioral 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 description coverage is 100%, and the schema already explains nodeId as the frame and each boolean as a show/hide setting with defaults. The description adds no parameter-level detail, so 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 uses a specific verb ('Add') and identifies both the resource ('a frame') and the type of output ('visual spacing annotations (redlines)'). It clearly distinguishes this tool from sibling annotation tools like annotate_colors, annotate_typography, and annotate_grid by focusing specifically on 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?
The description provides no guidance on when to use this tool versus alternatives. There are many sibling annotation and spacing tools, but no mentions of exclusions, prerequisites, or preferred contexts, so the agent must infer usage entirely from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annotate_typographyC
Add typography annotations (font, size, weight, line-height) to text nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to annotate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It does not explain whether adding annotations mutates the node, creates separate annotation objects, overwrites existing annotations, or is purely non-destructive. The distinction between annotating typography and changing typography is not made 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?
One compact sentence communicates the operation and scope with no filler. The key verb and target are front-loaded, and the parenthetical property list efficiently adds useful 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, no output schema, and no annotations, the description leaves critical context missing: the target node type is ambiguous, the practical effect is unclear, and there is no guidance on how annotation tools relate to style-modification tools. More behavioral and usage context is 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%, which normally warrants a baseline of 3, but there is a meaningful ambiguity: the schema describes nodeId as 'Frame to annotate' while the tool description says annotations are added 'to text nodes'. The description adds no parameter-level detail beyond this and does not resolve whether the caller should pass a text node ID or a frame ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('typography annotations ... to text nodes'), and enumerates the relevant properties (font, size, weight, line-height). This helps distinguish it from sibling annotate tools like annotate_spacing and annotate_colors, though it does not explicitly contrast with styling tools such as style_text_range.
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 alternatives like style_text_range, batch_set_font, type_scale_apply, or annotate_hierarchy. The only usage signal is implied by the word 'annotations', but no when-to-use or when-not-to-use context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_backdrop_blurC
Apply background blur (frosted glass effect) to a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Blur amount (default: 16) | |
| nodeId | Yes | Target frame |
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 states that a blur is applied. It does not disclose whether the tool replaces or appends to existing effects on the frame, what the 'backdrop' semantics mean for layers behind the frame, or any side effects or prerequisites. 'Frosted glass' hints at backdrop behavior but does not make it 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 efficient sentence with no filler — the action verb is front-loaded and the parenthetical adds useful clarifying context about the visual effect. It earns high marks for brevity, though the available space could have carried more 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?
For a mutation tool with no annotations and no output schema, the description is thin. It omits side effects (whether existing effects are overwritten), the meaning of 'backdrop' relative to other layers, and routing guidance against closely related siblings — all material gaps when an agent chooses among nearly 200 sibling tools.
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 (amount with a default of 16, nodeId as target frame). The description adds no parameter-level meaning beyond the schema, so 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 uses a specific verb ('Apply') with a precise resource ('background blur' / 'frosted glass effect') and target ('to a frame'), making the operation immediately identifiable and free of tautology. The parenthetical gives the agent the visual outcome, which distinguishes it from generic effect tools like set_effects, though the overlap is not explicitly addressed.
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 the many sibling effect and style tools (set_effects, create_glassmorphism, remove_all_effects, set_blend_mode, etc.). There are no conditions, prerequisites, or exclusions stated, so the agent must infer the appropriate context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_accessibilityA
Run a full accessibility audit on a node tree. Checks contrast, touch targets, font sizes, focus indicators.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node to audit |
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 behavioral scope by listing the four audit areas, and 'audit' implies a read-only analysis. However, it does not state what the tool returns, whether it modifies anything, or what happens when issues are found.
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 crisp sentences with zero filler. The main action is front-loaded and the check list is compact and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool, the invocation requirements are clear, but the lack of an output schema and any return-format description leaves the agent unsure what an audit result looks like. It also doesn't clarify how this relates to closely related siblings like lint_design, check_contrast, or generate_a11y_report.
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 description reinforces the 'node tree' concept, but it adds no parameter-specific detail beyond what the schema already says. Baseline of 3 is appropriate since the schema carries the load.
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 ('Run') and resource ('node tree'), and enumerates exactly what the audit checks: contrast, touch targets, font sizes, focus indicators. This distinguishes it from sibling tools like check_contrast (single check) and generate_a11y_report (report generation).
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 this is the comprehensive accessibility audit tool, but it never explicitly says when to prefer it over check_contrast, fix_touch_targets, lint_design, or generate_a11y_report. There is clear context but no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_alignC
Align multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Nodes to align | |
| vertical | No | V alignment | |
| horizontal | No | H alignment |
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 says 'Align multiple nodes' and does not explain side effects, whether alignment mutates node positions, how vertical and horizontal parameters interact, or what happens when none are provided. This is 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?
The description is a single, front-loaded sentence with no wasted words. It is concise and readable, though it could have used additional sentences to clarify usage or siblings 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 3-parameter schema, no annotations, no output schema, and a very large sibling list, this short description is insufficient. The agent cannot infer when to use batch_align, what the parameters mean in practice, or how this differs from align_nodes.
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 even though the description adds no parameter-level detail. The parameters and their enum values are already documented in the schema, so the lack of parameter explanation in the description is acceptable.
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 'Align' and the target 'multiple nodes', so an agent understands the basic operation. However, the sibling tool 'align_nodes' exists and likely performs a similar operation, and the description does not distinguish batch_align from it.
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 instead of align_nodes or other batch alignment tools. No alternatives, exclusions, or conditions are mentioned, leaving the choice of tool to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_deleteB
Delete multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Nodes to delete |
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 merely states the destructive action without mentioning irreversibility, cascading deletion of children, partial failure behavior, or permission 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?
'Delete multiple nodes.' is three words with no filler. The action and target are immediately front-loaded, and no sentence is wasted.
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 tool with full schema coverage, the description is minimally adequate. However, because no annotations exist and the operation is destructive, important context like irreversibility or whether child nodes are affected is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with nodeIds documented as 'Nodes to delete'. The description adds no extra meaning about ID format, ordering, or failure handling, so it stays at the baseline for fully-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and a pluralized resource ('multiple nodes'), making the tool's batch intent explicit. This distinguishes it from sibling delete_node, which presumably targets a single 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 given on when to use batch_delete versus delete_node or other batch mutations. The word 'multiple' implies the main use case, but there is no explicit when-to-use, when-not-to-use, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_duplicateB
Duplicate multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Nodes to duplicate | |
| offsetX | No | X offset per copy | |
| offsetY | No | Y offset per copy |
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 states that nodes are duplicated, without explaining whether originals are preserved, how offsets affect copies, what happens to selection, or whether any side effects occur.
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 appropriately front-loaded and easy to parse, though it is extremely brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple and all parameters are documented, but the lack of annotations and output schema leaves some behavioral context unstated, such as what the operation returns and how offset values apply. The description is minimally viable but not rich enough for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema. The description itself adds no additional meaning beyond what the schema provides, 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 'Duplicate multiple nodes' uses a specific verb and resource, clearly indicating a batch duplication operation. The word 'multiple' helps distinguish it from the sibling 'duplicate_node' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies batch usage through 'multiple', but it does not explicitly say when to prefer this over 'duplicate_node' or when not to use it. There are no explicit alternatives or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_lockB
Lock/unlock multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| locked | Yes | Lock state | |
| nodeIds | Yes | Target nodes |
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 reveals that the tool mutates lock state on multiple nodes, but it does not explain failure behavior, whether the operation is all-or-nothing, what happens with invalid node IDs, or what the response contains. This is a meaningful 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 front-loaded sentence with zero filler. Every word contributes to conveying the tool's operation and scope. Brevity is appropriate given the small, fully documented parameter set.
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, this description is too thin. It does not mention return values, failure semantics, or how the locked boolean affects previously locked nodes. An agent would need to infer a lot of behavioral detail that is not present in either the description or structured metadata.
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 nodeIds as 'Target nodes' and locked as 'Lock state.' The description adds a small semantic link by mapping 'lock/unlock' to the boolean locked parameter, but this is already heavily implied by the schema. There is no substantial parameter information 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 states the specific verb 'Lock/unlock' and the resource 'multiple nodes,' making the operation and scope unambiguous. The plural scope distinguishes it from the singular sibling tool lock_node even without naming it. This is a clear, non-tautological statement of purpose.
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 phrase 'multiple nodes' implies this tool is for batch locking/unlocking, which differentiates it from lock_node for single nodes. However, the description does not explicitly state when to prefer this tool over alternatives, nor does it mention exclusions or edge cases. Usage guidance is only implied, not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_remove_effectsB
Remove all effects from nodes in a scope.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does state that effects are removed and that the operation applies to multiple nodes, which is meaningful, but it leaves 'scope' undefined and does not mention irreversibility, permissions, or effect on other node properties.
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 filler; the action and target are front-loaded and every word contributes. This is appropriately concise for a simple one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool, the definition is minimally viable, but the ambiguity around 'scope' and the lack of distinction from remove_all_effects leave gaps. No output schema is provided, so return-value detail is not required, but the scope semantics should be clarified.
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 already fully describes nodeId as 'Root node' with 100% coverage, so the baseline is 3. The description's word 'scope' weakly connects to nodeId, but adds no additional parameter semantics, constraints, or formatting guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Remove'), a specific resource ('all effects'), and a scope ('nodes in a scope'). However, it does not explicitly distinguish this batch tool from the closely named sibling remove_all_effects, so an agent must infer the batching distinction from the 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 on when to use this tool versus alternatives like remove_all_effects, set_effects, or batch_remove_strokes. The name implies a batch use case, but the description does not state the intended conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_remove_strokesC
Remove all strokes from nodes in a scope.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node |
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 behavior. It states that strokes are removed, which signals a destructive mutation, but it does not clarify whether the operation applies recursively to descendants, whether the root node itself is included, whether it is undoable, or what other side effects may occur. The term 'scope' is underdefined.
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 words. It front-loads the core action and resource. There is no redundancy, and every word contributes to the essential meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch operation with no annotations and no output schema, the description is incomplete. It does not define the extent of 'scope,' explain whether the root node and all descendants are affected, or mention return behavior or side effects. An agent could call this tool with an incorrect mental model of what nodes will be modified.
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% because nodeId is described as 'Root node.' The description adds the concept of a 'scope' linking nodeId to the set of nodes affected, but it does not elaborate on how the scope is determined. This adds marginal meaning beyond the schema but leaves important semantics ambiguous.
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 action and resource: 'Remove all strokes from nodes in a scope.' This is clearly distinct from sibling tools like set_stroke or batch_remove_effects, though it does not explicitly name them. The term 'scope' is somewhat vague, but the overall purpose is understandable.
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 alternatives. The description does not mention set_stroke, batch_remove_effects, or remove_all_effects, nor does it specify whether this tool is preferred over per-node stroke removal. The agent is left to infer appropriate usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_renameC
Rename multiple nodes using a pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Nodes to rename | |
| pattern | Yes | Name pattern. Use {n} for number, {name} for current name. E.g. "Card {n}" | |
| startNumber | No | Starting number (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It only says 'rename multiple nodes' and does not disclose that this is a mutating operation, whether existing names are overwritten, how numbering works, or any side effects. 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 a single concise sentence with no filler or redundancy. It is front-loaded with the core purpose and stays appropriately minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there are no annotations and no output schema, the description should explain more about what happens after execution, order of renaming, or behavior when names collide. The current description is too sparse to fully support reliable agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents nodeIds, pattern, and startNumber. The description adds no parameter-level meaning beyond what the schema provides, so the 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 ('Rename'), the resource ('multiple nodes'), and the method ('using a pattern'). It is reasonably distinct from the sibling rename_node because it explicitly targets multiple nodes, but it does not explicitly contrast itself with any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer this tool over rename_node or other batch operations, nor any mention of exclusions or prerequisites. The description implies batch renaming but does not help an agent decide between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_replace_colorC
Replace a color across all nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | Color to find (hex) | |
| nodeId | No | Scope node | |
| replace | Yes | Replacement color (hex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must reveal behavioral traits. It discloses that the operation replaces a color, but does not mention whether this modifies fills, strokes, effects, other color properties, whether it is destructive/reversible, whether it affects selected nodes or the whole document, or what happens with the optional scope 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?
A single short sentence with no redundant words. The core action and scope are front-loaded, and there is no filler or repetition of schema 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?
This is a mutating batch operation with no annotations and no output schema. The description is too minimal to fully support correct invocation: it does not clarify scope semantics, matching behavior, whether nodeId limits 'all nodes', what properties are affected, or whether there are side effects. Given the large sibling list and the batch/global ambiguity, more context is 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?
The input schema already documents all three parameters with descriptions (find, replace, nodeId), so schema coverage is 100%. The description adds little beyond 'across all nodes' and does not clarify hex format, color matching behavior, or how nodeId scopes the replacement, but it also does not need to repeat 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?
States a clear action ('Replace') and object ('a color across all nodes'), and the optional nodeId implies scoping. However, it does not explicitly distinguish itself from the sibling color_replace_global or from set_fill, and 'across all nodes' is slightly ambiguous about whether it replaces fills, strokes, or other color 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?
No guidance is given about when to use this tool versus alternatives such as set_fill, color_replace_global, or batch_replace_text. The phrase 'across all nodes' implies a batch use case, but there is no explicit when-to-use, exclusions, or mention of how optional nodeId affects the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_replace_textA
Find and replace text across multiple text nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | Text to find | |
| nodeId | No | Scope to search within (uses whole page if omitted) | |
| replace | Yes | Replacement text | |
| matchCase | No | Case sensitive (default: false) |
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 correctly indicates a mutation (replacement), but it does not mention reversibility, how character styling is affected, whether all matching nodes in scope are modified, or any side effects. For a destructive batch operation, 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?
A single concise sentence that front-loads the core behavior with no unnecessary words or repetition of parameter 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?
The description and schema provide enough to understand what the tool does and how to invoke it, but there is no output schema and no annotation. It lacks guidance on appropriate use cases relative to alternatives and does not disclose potential side effects, which is relevant for a batch 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%, with each parameter (find, replace, nodeId, matchCase) having a basic description. The tool description does not add meaning beyond the schema, so 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 uses a specific verb ('find and replace') and resource ('text across multiple text nodes'), making the operation unambiguous. It clearly distinguishes the tool from siblings like type_replace_font (replacing fonts) or batch_replace_color (replacing colors).
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 phrase 'across multiple text nodes' implies a batch context, but the description does not explicitly contrast with closely related siblings such as set_text_content or type_replace_font. There is no when/when-not guidance or mention of alternatives, so usage context is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_resizeC
Resize multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Scale factor | |
| width | No | New width | |
| height | No | New height | |
| nodeIds | Yes | Target nodes |
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 states the action. It does not mention whether the operation is destructive, how scale interacts with width/height, whether aspect ratio is preserved, or what happens when conflicting parameters are supplied.
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 or redundant detail. It is appropriately front-loaded, though it may be too terse to fully earn its place given the lack of 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?
For a mutation tool with no annotations, no output schema, and optional sizing parameters, the description is incomplete. It leaves unstated how the sizing parameters should be used together, what units are expected, and whether any node must be selected first, making it insufficient for confident invocation in complex cases.
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 explains the parameters (scale factor, new width, new height, target nodes). The description adds no semantic meaning beyond what the schema provides, making the baseline score of 3 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 'Resize multiple nodes' states a specific verb and resource, making the tool's core function clear. It does not explicitly distinguish itself from sibling batch tools like batch_style or batch_align, but the resize operation is unambiguous 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?
There is no guidance on when to use this tool versus alternatives such as batch_align, modify_node, or individual resize operations. The phrase 'multiple nodes' implies batch usage, but no when-to-use or when-not-to-use context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_round_valuesA
Round all dimensions, positions, and spacing to whole pixels.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node |
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 itself. It states the core mutation—rounding dimensions, positions, and spacing—but does not mention whether this affects only the root node or its subtree, whether changes are reversible, or whether it overwrites existing values irreversibly. For a mutating batch operation, this is a notable 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. Every word carries meaning, specifying the action, scope, and exact target properties.
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—one parameter, no nested objects, no output schema—this description plus the schema is largely sufficient for an agent to invoke the tool correctly. It would be more complete with a brief note on whether the rounding applies recursively, but the current definition still communicates the essential intent.
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 single parameter `nodeId` is documented in the schema as 'Root node', giving the agent a clear enough indication of scope. The description adds no additional parameter-specific meaning but none is strongly needed due to the 100% 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 states a specific verb ('Round') and a precise resource and scope ('all dimensions, positions, and spacing to whole pixels'). It is clearly distinguishable from sibling batch tools, none of which target rounding to whole pixels.
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 when to use the tool—when the user wants whole-pixel values for layout properties—but it does not state when not to use it or name any alternative such as `fix_spacing` or `normalize_design`. Usage context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_set_corner_radiusA
Set corner radius on all frames/rectangles in scope.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node | |
| radius | Yes | Corner radius |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full disclosure burden. It does convey the core behavioral traits: batch application, restriction to frame/rectangle nodes (others presumably untouched), and scoping under a root node. It does not disclose side effects (e.g., overriding existing radii), reversibility, or behavior on mixed selections, which are meaningful gaps for a mutating batch 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?
A single 10-word sentence is front-loaded with the action, target, and scope. There is zero wasted text — every word carries meaning. The brevity is appropriate given the two simple, self-describing 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?
For a 2-param batch mutation with no output schema and no annotations, the description plus schema cover what, where, and scope. It omits what happens to non-frame/rectangle nodes, whether existing radii are replaced, and whether any result is returned. These are not fatal gaps, but the tool performs enough work that a sentence on behavior/return would round it out.
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='Root node', radius='Corner radius'), so the baseline is 3. The description adds minimal meaning beyond the schema; it clarifies that nodeId defines the batch scope but does not specify radius units, range, or application behavior. The schema already carries most of the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Set corner radius') plus a precise scope qualifier ('all frames/rectanglеs in scope'), which distinguishes it from the sibling set_corner_radius (single node) and the other batch_* tools. 'In scope' is slightly ambiguous on its own, but the nodeId 'Root node' parameter resolves the intended meaning.
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?
Usage context is implied: the 'batch' prefix and 'all frames/rectangles in scope' signal choosing this tool when many nodes need the same radius, versus set_corner_r_adius for a single node. However, it never names the alternative or states explicit when/when-not conditions; an agent must infer the distinction from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_set_fontB
Change font family on all text nodes in a scope.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Scope | |
| fontFamily | Yes | New font family |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add one useful behavioral trait: it applies to 'all text nodes' in a scope, indicating bulk application. However, it does not disclose whether existing font overrides are overwritten, whether changes are reversible, or how 'scope' is interpreted (e.g., recursive).
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 front-loads the action and resource with no filler. Every word contributes meaning, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is underspecified for a mutation tool with no output schema or annotations. The main gap is nodeId: it is optional in the schema, but the description never states what happens when no scope is given, leaving a critical ambiguity 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 coverage is 100% with descriptions for both nodeId ('Scope') and fontFamily ('New font family'), so the baseline is 3. The description mostly restates the schema rather than adding new meaning; notably, it does not clarify that nodeId is optional or what the default scope is when omitted.
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 action ('Change font family') on a specific resource ('all text nodes in a scope'), which clearly distinguishes it from siblings like set_fill or type_replace_font. The scope qualifier adds precision beyond a generic 'set font' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives such as style_text_range or type_replace_font. There is no mention of intended use cases, exclusions, or context, leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_set_visibilityA
Show/hide multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Target nodes | |
| visible | Yes | Visibility state |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It does state the core effect—changing visibility of nodes—but it does not disclose secondary behavior such as all-or-nothing failure, handling of invalid node IDs, or idempotency. For a simple, low-risk mutation, the core behavior is at least transparent enough to earn a baseline score.
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 five words, front-loads the action and target, and contains no filler. Every word contributes meaning, making it an appropriately concise definition.
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 two-parameter tool with no output schema and no nested objects, this description plus the schema is nearly sufficient: an agent knows what to pass and what effect to expect. It would be fully complete if it explicitly clarified that visible=true shows and visible=false hides, or if it named set_visibility as the single-node alternative.
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 nodeIds and visible are already documented in the schema. The description adds only the 'multiple' qualifier and no additional format, syntax, or range details, which matches the baseline 3 for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action (show/hide) on a concrete resource (multiple nodes), and the word 'multiple' clearly differentiates it from the singular set_visibility sibling. It is not a tautology of the tool name and tells an agent exactly what the tool accomplishes.
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 versus set_visibility or other batch tools. The only usage cue is the implied 'multiple nodes' scope, but no alternatives, exclusions, or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_styleC
Apply style changes to multiple nodes at once.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | Style changes: { fill, opacity, cornerRadius, fontSize, fontWeight, ... } | |
| nodeIds | Yes | Target nodes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. 'Apply style changes' implies mutation but does not disclose whether existing style properties are overwritten, whether changes are reversible, or whether only specified properties are affected. For a batch mutation tool 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, front-loaded sentence with no filler. It efficiently communicates the core operation, though it misses opportunities to add brief guidance without bloating the 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 mutation tool with no annotations and no output schema, the description is too minimal. It does not clarify the effect on existing styles, the accepted value format for changes, or how it differs from the many sibling batch and style tools. An agent would need to inspect external examples to invoke it confidently.
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 the phrase 'at once' but no new parameter-level meaning; the changes examples in the schema ('fill, opacity, cornerRadius, fontSize, fontWeight, ...') are the primary semantic content.
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 and resource: 'Apply style changes to multiple nodes at once.' The 'multiple nodes' scope distinguishes it from the singular style tools like set_fill and set_stroke, though it doesn't explicitly name a sibling 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?
No usage context is provided. The description does not explain when to choose batch_style over the many related tools such as batch_set_corner_radius, batch_remove_effects, or batch_resize, nor does it state 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.
batch_swap_componentA
Swap all instances of one component for another across the file.
| Name | Required | Description | Default |
|---|---|---|---|
| newComponentId | Yes | Replacement component | |
| oldComponentId | Yes | Component to replace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full disclosure burden. It only states the swap scope and never explains what happens to overrides, hidden/locked instances, or whether the operation is reversible. For a mutating batch 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?
One sentence, no filler, and the core scope is front-loaded. 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 two parameters, the essential scope and parameter identities are covered. However, with no annotations and no output schema, the description leaves important operational details (override handling, error behavior, reversibility) unaddressed, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the schema already describes oldComponentId as 'Component to replace' and newComponentId as 'Replacement component.' The tool description echoes this directionality but adds no new semantic 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 names a precise action ('Swap'), a precise object ('all instances of one component for another'), and a scope ('across the file'). This clearly separates it from the sibling swap_component, which reads as a more targeted swap.
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 phrase 'all instances... across the file' implies a global batch use case, but the description does not explicitly state when to prefer it over swap_component nor any when-not-to-use conditions. Usage guidance is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_variableB
Bind a variable to a node property.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| property | Yes | Property to bind: fills, strokes, cornerRadius, paddingTop, etc. | |
| variableId | Yes | Variable ID to bind |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral responsibility. It states only the operation and omits side effects such as whether existing property values are overridden, whether the variable must already exist, or whether the binding is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for the simple operation it describes.
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 parameter count and fully documented schema, the definition is adequate for constructing a valid call. However, the lack of behavioral context, prerequisites, and any annotation or output schema leaves room for misinterpretation of what binding actually entails.
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 nodeId, property, and variableId are already documented. The description reinforces the purpose but adds no parameter-level detail beyond what the schema provides, meriting the baseline score.
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 ('bind') and identifies the resource ('variable' and 'node property'), clearly conveying the core action. It does not explicitly contrast it with sibling tools like set_fill or update_ariable, which slightly weakens differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool over alternatives such as set_fill for literal values or update_ariable for editing variables. No conditions, exclusions, or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_operationC
Perform boolean operations on shapes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Node IDs (first is base shape) | |
| operation | No | Boolean operation type |
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 explaining behavioral impact, but it only says 'perform boolean operations' without stating whether the original nodes are modified, replaced, or combined into a new shape. It also fails to disclose what happens to the base shape versus the subsequent shapes, which is essential for a destructive geometry operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, so it is concise. However, it is under-specified for an operation that mutates shapes and has non-obvious semantics around the base node and operation enum, making it smaller than 'appropriately sized' even though it is 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?
This is a mutation-style tool with no annotations and no output schema, so the description needs to carry more context. It omits key operational details: how many nodes are required, which node is the base, what the result is, and how the operation values differ in effect. The schema compensates partially, but the overall tool definition is not complete enough for an agent to invoke it confidently.
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 nodeIds and operation, including the enum values and the note that the first node is the base shape. The description adds no parameter-level meaning beyond the schema, so the 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 names a specific operation type (boolean operations) and a clear resource (shapes), which distinguishes it from the large sibling list where no other tool mentions boolean operations. It could be stronger by clarifying that it applies set-style combinations like union/subtract to multiple nodes, but the core purpose is 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?
There is no guidance about when to use this tool versus alternatives like group_nodes, flatten_node, or create_vector. The description only restates the obvious purpose, and it does not mention prerequisites such as requiring at least two selected nodes or the significance of node ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_consistencyC
Check for inconsistent colors, fonts, spacing, and radii across a design.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node to check |
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. The verb 'Check' implies a read-only analysis, but the description never states what the tool returns, whether it mutates anything, what it compares against (local styles, variables, heuristics), or how results are delivered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the verb and scope with no filler; every word earns its place. It is appropriately compact for a one-parameter tool, though some brevity could have been traded for routing or behavioral context without bloating the definition.
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?
Since there is no output schema and no annotations, the description must explain what the check produces, and it does not. The existence of the near-duplicate sibling detect_inconsistencies and the lack of any differentiation make this definition materially incomplete for an agent choosing which tool to invoke.
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 nodeId documented as 'Root node to check,' so the schema already handles parameter semantics. The phrase 'across a design' adds modest context by implying the check traverses the subtree beneath the root node, but no substantive parameter detail is added beyond that.
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 names a specific action ('Check') and a concrete scope ('inconsistent colors, fonts, spacing, and radii across a design'), which clearly states what the tool does. However, it does not differentiate from sibling detect_inconsistencies, which appears to cover nearly the same purpose, so it falls short of full sibling separation.
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 detect_inconsistencies, lint_design, compare_to_system, color_check_all, or type_audit. The description contains no conditions, exclusions, or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_contrastA
Check color contrast ratio between two colors.
| Name | Required | Description | Default |
|---|---|---|---|
| background | Yes | Background color hex | |
| foreground | Yes | Foreground color hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the transparency burden itself. It does disclose the core behavior—computing a contrast ratio between two colors—but it does not state the return format, whether it evaluates WCAG compliance, or how it handles invalid or non-hex colors. This is adequate for a simple pure calculation but leaves the output contract implicit.
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 adds semantic value, and it is appropriately sized for a two-parameter utility tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description plus schema is sufficient for invoking it correctly with two hex colors. However, the absence of an output schema and any mention of the return value or WCAG interpretation leaves a meaningful gap for an agent trying to use the result 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 foreground and background each documented as color hex values. The tool description adds no additional parameter semantics beyond what the schema already provides, so the 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 a specific operation ('check color contrast ratio') and scopes it to exactly two colors, which distinguishes it from broader sibling tools like color_check_all or audit_accessibility. This is not a tautology: it adds the 'ratio between two colors' detail beyond the tool name. The purpose is immediately clear to an agent.
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 about when to use this tool versus alternatives such as color_check_all, get_selection_colors, audit_accessibility, or generate_a11y_report. There is no mention of prerequisites, expected input context, or cases where a broader audit tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_namingB
Check layer naming conventions. Flags generic names like "Frame 123", "Group 5".
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It communicates that the tool flags generic names and gives concrete examples, which suggests a read-only check, but it does not explicitly state side effects, return format, or whether it validates only the root node or its entire subtree.
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 deliver the purpose and a concrete example with no wasted words. The main behavior is front-loaded and immediately scannable.
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 check tool, the description is minimally adequate: it states what is checked and gives examples of flagged names. However, with no output schema and no annotations, it leaves the return value and exact scope of the check unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter with a clear description ('Root node to check'), so schema description coverage is 100%. The tool description adds no further parameter-level detail, keeping this at 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 identifies the tool's purpose: checking layer naming conventions and flagging generic names. It is specific enough to distinguish from rename-focused siblings like rename_node or batch_rename, 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 guidance on when to use this tool versus alternatives such as batch_rename, rename_node, lint_design, or check_consistency. The description implies its use for naming validation but provides no exclusions or decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_apply_styleC
Apply a color style to a node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| property | No | Property to apply to (default: fill) | |
| styleName | Yes | Style name to apply |
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. 'Apply' is the only behavioral cue and implies mutation, but the description does not say whether it overwrites existing fills/strokes, whether it depends on a pre-created style, or what happens on failure. For a mutation tool with zero annotation coverage, this is a meaningful 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 words, comparable to the efficient update_drive calibration example. It earns its place but buys no additional context for the agent, so it is efficient rather than 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 no annotations, no output schema, and a large sibling set (set_fill, set_troke, color_create_style), the description is too sparse. It omits key runtime facts an agent needs: the target style must already exist, the application replaces the current property value, and the tool is for named styles rather than direct color assignment. The agent would have to guess these behaviors.
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 all three parameters (nodeId, property, styleName) individually documented and the fill default for property stated in the schema. The description adds essentially nothing beyond what the schema already provides, so the baseline 3 for high coverage 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 (Apply), a specific resource (color style), and a target (node), which is grammatically complete and meaningful. It implicitly distinguishes from set_fill/set_stroke (which set raw color values) and color_create_style (which creates styles), but never explicitly names these contrasts, so the distinction is inferred rather than stated.
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 like set_fill/set_stroke, nor does it state prerequisites such as the style needing to already exist or how a missing style name is handled. No exclusions, contexts, or alternative routes are mentioned anywhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_blindness_checkC
Simulate color blindness on a design to check for issues.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Color blindness type | |
| nodeId | Yes | Node to check |
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, but it only states intent, not effect. It does not say whether this is a read-only preview, whether it modifies the design, what the output looks like, or what side effects may occur.
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, waste-free sentence. It states the action, the object, and the goal without filler 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?
For a tool with no annotations and no output schema, the description leaves critical context missing: what the agent will receive after invocation, whether the operation is safe/destructive, and how 'issues' are reported. An agent can glean the tool's intent but not the full 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 coverage is 100%, so the schema already documents both parameters and the type enum. The description adds no additional meaning about how nodeId is resolved or how the type affects simulation, which keeps this at 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 uses a specific verb ('simulate') and names the resource ('a design') and outcome ('check for issues'), clearly distinguishing it from contrast-checking or accessibility-audit tools. It is slightly vague about what 'issues' means, but the core purpose is 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 it is used to preview color vision deficiencies, but gives no explicit guidance on when to choose this over sibling tools like check_contrast, audit_accessibility, or color_check_all. No alternatives 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.
color_check_allA
Check WCAG contrast for every text/background pair in a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root frame | |
| standard | No | WCAG standard (default: AA) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. The verb 'Check' suggests a read-only analysis and the scope ('every text/background pair') adds behavioral context, but the description does not state whether the tool modifies anything or describe its return value. This is a partially transparent definition.
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 immediately conveys the core function with no filler. The key qualifiers ('every', 'in a frame') are front-loaded. This is an ideal length 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?
The definition is adequate for an agent to invoke the tool with the correct nodeId and standard, and the sibling list clarifies the broader toolset. However, because there is no output schema, the description should ideally indicate what is returned (e.g., a list of violations) to fully support post-call interpretation. The missing return contract is a minor but real 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?
The input schema already documents both parameters fully (nodeId as 'Root frame', standard enumerated as AA/AAA with a default). The description adds no new parameter-level information, so it stays at the baseline for high 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 uses a specific verb ('Check') and a precise resource ('WCAG contrast for every text/background pair in a frame'). The 'every ... in a frame' qualifier clearly distinguishes it from a single-pair check like check_contrast. It unequivocally states what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the intended use case: a full-frame audit of text/background contrast. However, it does not explicitly contrast with sibling tools like check_contrast or audit_accessibility, nor say when not to use it. Guidance on alternatives 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.
color_create_styleC
Create a local color style.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Style name (e.g. "Primary/500") | |
| color | Yes | Color hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavior disclosure. It only says 'Create a local color style,' which implies mutation but does not explain side effects, whether an existing style is overwritten, how 'local' is scoped, or what the tool returns. This is a significant transparency gap for a creation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no fluff and front-loads the main action. However, it is so minimal that it borders on under-specification rather than earned conciseness; it does not add context that would justify its brevity for a tool with many siblings.
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 no output schema, no annotations, and a long list of sibling tools including color_apply_style and color_replace_global, this description is incomplete. It lacks guidance on where the style is created, how it relates to variables or tokens, and what happens after creation, leaving agents without enough context to invoke 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 description coverage is 100%, so the parameters are already documented with name examples and 'Color hex'. The description adds no additional parameter meaning or usage nuance, which lands it at 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 clear verb and resource: creating a local color style. It is specific enough to distinguish from applying or replacing color styles, but it does not explicitly name a sibling alternative or clarify what 'local' means relative to library/global styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many color-related siblings such as color_apply_style, color_replace_global, or create_design_tokens. The description simply states what it does, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_darkmodeA
Generate a dark mode variant of a frame, mapping all colors intelligently.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to convert | |
| brandColor | No | Brand color to preserve |
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 does not state whether the tool creates a new node or mutates the existing frame, whether the original is preserved, or what 'intelligently' means in terms of color transformations.
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. The word 'intelligently' is vague and adds little, but overall the structure 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?
With no output schema and no annotations, the description should clarify whether the tool returns a new node, modifies in place, or how brandColor is preserved. None of this is addressed, making it incomplete for an agent deciding how to invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents nodeId and brandColor. The description adds no parameter-specific meaning beyond the generic notion of a frame and colors.
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 ('Generate') with a clear resource ('a dark mode variant of a frame') and states the action ('mapping all colors intelligently'). It also distinguishes itself from the sibling color_lightmode tool without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when a dark mode variant of a frame is needed. However, it does not explicitly mention when not to use it or name the alternative color_lightmode, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_extractA
Extract all unique colors from a frame and organize by usage frequency.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It states the main behavior—extract unique colors and organize by frequency—but neither confirms read-only status nor describes output format or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler. The core operation is front-loaded, and the frequency-organization behavior follows immediately, making it easy for an agent 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 one-parameter, low-complexity tool, the description covers what is extracted, the scope (a frame), and the arrangement (by usage frequency). However, with no output schema, it leaves the exact return structure and color representation unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the schema only says 'Root node.' The description's phrase 'from a frame' adds meaningful semantic value by clarifying that nodeId should identify a frame node, going beyond the bare parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'extract' and names the resource ('a frame'), and adds the output dimension 'usage frequency.' It clearly states what the tool does, though it does not explicitly contrast it with color-related siblings such as get_selection_colors or export_color_palette.
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 when-to-use or when-not-to-use guidance, and no alternative tool is named. Given a large sibling set of color and export tools, the agent must infer the appropriate context from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_generate_semanticA
Generate a full semantic color system (bg, surface, border, text, brand, status) from one brand color.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Color mode (default: both) | |
| brandColor | Yes | Brand color hex |
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 lists the output roles but never discloses whether the tool is a pure computation returning token values or a mutating operation that writes styles/fills into the document (a real ambiguity given siblings like color_create_style and color_apply_style). It also does not describe the output format or how the 'both' mode shapes the result.
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 tight sentence, front-loaded with the verb and resource, with the role list packed efficiently at the end. No wasted words and no repetition of schema content.
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 core purpose and inputs are covered, but the tool has no output schema and no annotations, so the description should explain what is returned and confirm whether any document mutation occurs; neither is present. In a crowded color-tool sibling space, routing guidance would also strengthen the definition.
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%: brandColor is documented as 'Brand color hex' and mode has a clear enum with a stated default. The description adds no meaning beyond listing brandColor as the seed, so 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 states a specific verb ('Generate'), a specific resource ('full semantic color system'), and enumerates the exact roles (bg, surface, border, text, brand, status). This clearly distinguishes it from close siblings like color_palette_generate (a plain palette), color_extract, or color_harmonize, and from color_create_style which applies styles to a document.
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 phrase 'from one brand color' implies the trigger condition: use this when you have a single brand seed and need a complete semantic token set. However, there is no explicit when/when-not guidance and no reference to alternatives such as color_palette_generate for a non-semantic palette or color_darkmode/color_lightmode for mode-only conversion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_harmonizeB
Generate harmonious colors: complementary, triadic, analogous, split-complementary.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | No | Color scheme | |
| baseColor | Yes | Base color hex |
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 indicates a generation operation but does not disclose what the tool returns, whether it mutates state, how invalid hex values are handled, or what default scheme applies when none is selected. This is a meaningful transparency gap for an 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?
The description is a single concise sentence that front-loads the action and gives concrete examples of the output type. Every word contributes to meaning, with no filler or redundant restatement of the tool name.
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 generation tool with a full enum, the input contract is largely covered. However, with no output schema and no mention of the return value, default behavior, or color format expectations, the agent cannot fully predict how to consume the result. The description is adequate but leaves clear 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 description coverage is 100%, with baseColor documented as 'Base color hex' and scheme constrained by an enum. The description adds no per-parameter semantics beyond the schema and even omits two valid enum values, tetradic and monochromatic, so it stays at the baseline rather than exceeding it.
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 and resource: 'Generate harmonious colors' followed by concrete scheme examples. It clearly identifies the tool's function, though it does not explicitly differentiate it from closely related siblings like color_palette_generate or suggest_color_palette.
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 color_palette_generate, suggest_color_palette, or color_generate_semantic. The description implies usage through the tool name and scheme examples, but it never states conditions, exclusions, or preferred contexts, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_lightmodeB
Generate a light mode variant of a dark frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to convert | |
| brandColor | No | Brand color to preserve |
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 indicates the conversion direction but not whether the operation mutates the original frame, creates a new node, or how brandColor is preserved. The term 'variant' is ambiguous about the side effects and lifecycle of the 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 sentence with no filler or redundant phrasing. The action and target resource are front-loaded, and every word contributes to the basic meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a transformation tool with no annotations and no output schema, this description is under-specified. It does not clarify whether the tool returns a new node, modifies the existing frame, or what 'variant' means in terms of child nodes, fills, and text. The required schema fields are documented, but the behavioral context an agent needs to use the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even without parameter details in the description. The description adds no extra semantics about how nodeId or brandColor affect the output, but the schema already documents both fields adequately at a basic level.
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 action ('Generate') and a clear object ('a light mode variant of a dark frame'), so an agent can tell this tool produces a light-mode result from a dark frame. It distinguishes itself from the sibling color_darkmode through the light/dark contrast, but it does not explicitly name that alternative or call out the 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?
The description implies the tool is for dark frames that need a light mode variant, which gives some usage context. However, it provides no explicit when-to-use guidance, no exclusions, and does not mention color_darkmode as the inverse tool for light-to-dark conversion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_palette_generateC
Generate a full color palette (50-950 shades) from a base color.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Number of shade steps (default: 10) | |
| baseColor | Yes | Base color hex |
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 behavior, and it only supplies a one-line purpose. It does not state the return format, whether anything is mutated or persisted, or how the 'steps' parameter (default 10) maps to the claimed '50-950 shades' — a genuine ambiguity. No side-effect or output-shape disclosure exists.
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 is front-loaded and contains no filler; the verb and resource are stated immediately. The brevity is a slight liability because the space saved could have held usage or output details, but as written it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must cover return values and behavioral context, and it does not. It also fails to differentiate among a sibling list dense with color-related tools (suggest_color_palette, export_color_palette, color_extract, color_harmonize, color_generate_semantic), and the steps-vs-shades ambiguity is left unresolved.
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%: baseColor is documented as 'Base color hex' and steps as 'Number of shade steps (default: 10)', so the baseline of 3 applies. The description adds little parameter meaning, and its '50-950 shades' phrasing actually creates tension with the steps default of 10, leaving the relationship between steps and the shade count unexplained.
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?
States a specific verb ('Generate'), a clear resource (a full color palette from a base color), and a concrete output range (50-950 shades). This is specific enough to roughly distinguish it from siblings like export_color_palette or color_extract, though it does not explicitly name or contrast alternatives.
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 the many close siblings in the list, including suggest_color_palette, export_color_palette, color_harmonize, and color_generate_semantic. There are no exclusions, prerequisites, or conditions stated; usage context is only weakly implied by the verb 'Generate'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_replace_globalA
Replace a color across the entire document (all pages).
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | Color to find (hex) | |
| replace | Yes | Replacement color (hex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the key behavior—replacing a color globally across all pages—but does not mention side effects, irreversibility, or whether it affects all color usages beyond fill/stroke. This is adequate but not rich.
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, resource, and scope compactly 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 simple two-parameter global replacement tool, the description conveys the essential operation and scope. It does not describe return values or edge cases, but no output schema exists and the action is straightforward enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters, describing them as hex color strings. The description adds no parameter-level detail, 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 states a specific verb ('Replace'), a clear resource ('a color'), and an explicit scope ('across the entire document (all pages)'). This clearly distinguishes it from more localized color tools like set_fill or set_stroke.
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 phrase 'across the entire document (all pages)' conveys when this tool is appropriate: for document-wide color replacement rather than per-node or per-page changes. It does not name alternatives or exclusions, but the global scope provides clear enough context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_to_systemC
Compare a design to the established design system and flag deviations.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to compare |
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 implies a read-only comparison and says deviations are 'flagged', but it does not disclose whether the tool mutates anything, what scope it checks, how deviations are returned, or what constitutes the 'established design system'. This is minimal behavioral context 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 concise sentence with an active verb, a clear object, and a result, so it is front-loaded and free of filler. It loses a point because it is so terse that it omits useful context that could have been added without bloating the description.
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?
There is no output schema, no annotations, and only vague context about what 'design' and 'established design system' mean. The description does not explain the output format, the system being compared against, whether the operation is safe/non-destructive, or how this tool relates to the many similar sibling tools. For a tool with no annotations and no output schema, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter, nodeId, is already described as 'Node to compare'. The description adds no extra parameter semantics, such as whether nodeId can be a frame, a component, a selection, or whether it defaults to the current selection. Baseline 3 is appropriate because 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 states a clear action (compare), a target (a design), and a result (flag deviations against the established design system). It is specific enough to convey the tool's core function, but it does not distinguish itself from closely related sibling tools like detect_inconsistencies, check_consistency, or lint_design, and 'design' is ambiguous about whether it means the selected node or the whole document.
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 similar alternatives. It does not mention whether to run it on a single node, a selection, or an entire page, nor does it name any alternative tools or exclusion conditions. The agent must infer usage purely from the tool name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
component_auditA
Audit components: find detached instances, missing components, unused variants.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Scope |
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 communicates that the tool finds component issues, which implies a non-mutating audit, but it does not state side effects, output format, or whether it modifies anything. 'Missing components' is also left vague.
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 tight, front-loaded sentence with a colon and a scannable list of audit targets. There is no filler or redundant wording.
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 is too lean for a tool with no annotations and no output schema. It does not explain what 'missing components' means, what the return value looks like, or what the optional nodeId scope actually scopes. Given the large sibling set of audit/validation tools, this creates ambiguity 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?
The schema description coverage is 100%, and the description adds no extra meaning to nodeId beyond what the schema already says ('Scope'). Baseline 3 is appropriate because the schema carries the 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 uses a specific verb ('Audit') with a clear resource ('components') and enumerates concrete outputs: detached instances, missing components, unused variants. This distinguishes it from sibling tools like list_components or validate_component, which have different purposes.
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 auditing components, but it gives no explicit guidance on when to prefer this tool over alternatives such as validate_component, detect_inconsistencies, or scan_design_system. There are no exclusions or conditions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_responsiveB
Convert fixed-width designs to responsive auto-layout.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root frame to convert |
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 reveals a mutating behavior (conversion) but does not state whether the operation is destructive or reversible, how it affects children of the frame, what constraints/sizing modes are applied, or whether it fails on non-frame nodes. For a conversion tool that modifies layout structure, 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?
One clear, concise sentence that is perfectly sized for the tool's simplicity. Every word earns its place, and it is front-loaded with the 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?
Given the tool is a structural mutation with no annotations and no output schema, the description is under-specified. It lacks information about success/failure conditions, effects on child nodes, whether layout sizing and constraints are automatically applied, and what state the node will be in after conversion. A conversion tool with this little context is hard for an agent to invoke with confidence.
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 the single nodeId parameter with description 'Root frame to convert'. The description adds the concept of converting fixed-width to responsive auto-layout, which clarifies the intended parameter semantics. However, it doesn't add details beyond the schema about what kind of frame qualifies or how the nodeId is interpreted.
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 ('Convert fixed-width designs to responsive auto-layout') with a specific resource (fixed-width designs) and outcome (responsive auto-layout). It distinguishes itself from related siblings like create_responsive_variant, set_breakpoint, and responsive_check, though it doesn't explicitly name alternative 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 implies the tool is for converting fixed-width designs to responsive auto-layout, which gives context for when to use it. However, it provides no explicit guidance on when not to use it, no alternatives, and no prerequisite conditions (e.g., whether the node must be a frame, whether auto-layout must already exist, or whether a fixed-width selection is required).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_cssA
Copy CSS properties of a node to clipboard.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to get CSS for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key side effect—copying to the clipboard—which is more than the name alone provides. However, there are no annotations, and the description does not clarify whether copied content is plain CSS text, whether it overwrites existing clipboard contents, or what the tool returns, 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?
A single concise sentence with no filler. It front-loads the core action and destination, making the tool's purpose immediately scannable.
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 clipboard operation, the description communicates the essential behavior and required input. It is slightly incomplete regarding the format or return value, but the simplicity of the tool and the absence of an output schema mean the core invocation context is adequately 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 description coverage is 100%, with nodeId documented as 'Node to get CSS for'. The description adds no additional parameter semantics, but the schema already provides sufficient meaning for the only parameter, so 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?
States a specific verb ('Copy'), resource ('CSS properties of a node'), and destination ('clipboard'). This distinguishes it from related siblings like read_node_css, which reads CSS but does not copy it, and generate_stylesheet, which produces stylesheets rather than copying node 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 clipboard destination implies the intended use case: when the agent needs to copy CSS properties for pasting elsewhere. However, it does not explicitly contrast with alternatives such as read_node_css or mention when not to use this tool, so guidance is present but only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_arrowC
Create an arrow shape.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Color | |
| length | Yes | Arrow length | |
| parentId | No | Parent node ID | |
| direction | No | Direction (default: RIGHT) | |
| strokeWeight | No | Weight (default: 2) |
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. Saying 'Create an arrow shape' implies mutation but does not explain where the arrow is inserted, whether it modifies the current selection, whether it requires any permissions, or what the return value is.
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 filler or repetition. It is terse and front-loaded, though it is minimal enough that it under-specifies contextual 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?
For a creation tool with five parameters, no output schema, and no annotations, the one-line description leaves gaps around return values and creation context. However, the schema fully documents parameters and defaults, so the minimum information needed for basic invocation is present.
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 all five parameters already have descriptions, including defaults for direction and strokeWeight. The description adds no extra parameter-level meaning, but the schema does the necessary work, so the 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 uses a specific verb and resource: 'Create an arrow shape.' It clearly identifies what the tool does and is distinguishable from shape-creation siblings by naming the arrow shape type. However, it does not explicitly differentiate itself from create_line, create_vector, or other similar 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?
There is no guidance about when to use create_arrow versus alternatives like create_line, create_vector, or other shape tools. The description does not mention preconditions, selection requirements, or when a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_border_gradientB
Create a gradient border effect using a slightly larger frame behind.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Border width (default: 1) | |
| nodeId | Yes | Target node | |
| endColor | Yes | End color hex | |
| startColor | Yes | Start color hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the non-obvious technique of using a slightly larger frame behind, which hints at structural side effects. However, it does not explain whether a new frame is created, whether the node is reparented, how depth/stacking is handled, or whether this is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that communicates the core action and implementation approach without filler. It is appropriately sized for the tool's simplicity and front-loads the primary 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?
The tool mutates the design tree by introducing a frame behind the target, but the description does not mention return values, side effects on layout, grouping, or what happens to existing borders. For a tool with no annotations and no output schema, this is under-specified for an agent to call confidently.
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 parameter documentation already covers nodeId, startColor, endColor, and width. The description adds no additional meaning about color format, width defaults, or units beyond what the schema states, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and names the resource ('gradient border effect'), and it clarifies the implementation approach ('using a slightly larger frame behind'). This distinguishes it from related tools like set_stroke or set_gradient_fill, though it could more precisely state that it creates a new frame behind the target 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 given for when to use this tool versus alternatives such as set_gradient_fill, set_stroke, or create_frame. There are no conditions, exclusions, or mentions of when the frame-based approach is preferable, leaving the selection decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_card_gridC
Create a grid of cards with proper spacing and alignment.
| Name | Required | Description | Default |
|---|---|---|---|
| cards | No | Card data: [{ title, description, icon }] | |
| columns | No | Number of columns (default: 3) | |
| parentId | No | Parent node | |
| brandColor | No | Accent color |
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, but it only promises an outcome quality ('proper spacing and alignment'). It does not disclose where the grid is created (current page? selected frame?), whether it produces a grouped frame or freestanding cards, what happens when no cards are passed, or whether existing nodes are affected. For a node-creating tool 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?
A single ten-word sentence that is front-loaded and contains zero filler. Every word contributes. It loses a point because the sentence is efficient but thin — it does not earn its place with the kind of scoping or routing information a richer description would carry.
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 4 optional parameters, no annotations, and no output schema, the description is inadequate. An agent cannot tell where the grid lands, what node structure is produced, whether it is idempotent, or what happens on empty input. The creation context (parentId behavior, selection fallback) is entirely undresolved, and no sibling is referenced to disambiguate the design intent.
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; each parameter (cards, columns, parentId, brandColor) is already documented in the schema. The description adds only loose contextual meaning ('grid,' 'spacing' imply columns and card layout) but no format, default, or relationship detail beyond the schema. It neither compensates for gaps nor harms 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 uses a specific verb ('Create') and resource ('a grid of cards'), making the core function clear. It is distinguishable from the many sibling shape-creation tools (create_rectangle, create_text) since 'grid of cards' is a composite layout artifact. It falls short of a 5 because it does not specify what a 'card' structurally is or how this differs from composite creation siblings like create_frame or create_section.
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 instead of alternatives, and no sibling is referenced. Among roughly 200 siblings including create_frame, create_section, and create_icon, an agent gets no criteria for choosing create_card_grid over a manual frame-plus-card assembly. The implied usage (pass cards and columns) must be inferred entirely from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_changelogB
Compare two frames and generate a visual changelog showing what changed.
| Name | Required | Description | Default |
|---|---|---|---|
| afterNodeId | Yes | After frame | |
| beforeNodeId | Yes | Before frame |
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 explaining behavior. It mentions generating a visual changelog but does not disclose whether the tool mutates the file, creates a new node, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loaded with the verb and resource. Every word contributes to clarifying 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?
With no annotations and no output schema, the agent lacks critical operational context: what the changelog looks like, where it is placed, and what side effects the 'create' action has. The required parameters are clear, but the overall behavior is under-specified.
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 already documents both parameters with clear descriptions ('Before frame', 'After frame') at 100% coverage. The tool description reinforces the before/after comparison semantics but does not add new parameter-level detail 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 states a specific action ('Compare two frames') and a specific output ('visual changelog showing what changed'). This clearly distinguishes it from sibling tools like compare_to_system, which compares against a design system rather than comparing two frames.
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 when to use the tool: when an agent needs to compare a before and after frame and produce a changelog. However, it does not explicitly name alternatives or provide exclusion criteria, leaving some selection inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_componentB
Create a reusable component from the current selection or a new frame.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Component name | |
| width | No | Width | |
| height | No | Height | |
| parentId | No | Parent node ID | |
| fromNodeId | No | Node ID to convert to component | |
| description | No | Component description |
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 the high-level creation action and does not mention side effects: whether the selected node is converted or copied, whether a parentId is required, what happens to the existing selection, or what the resulting component contains. This is a significant gap for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loading the core action and source condition. 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?
With 6 parameters, no annotations, and no output schema, the description is too terse to be complete. It omits essential behavioral distinctions: when fromNodeId is used versus creating a brand-new frame, whether width/height or parentId are required in each mode, and what the tool returns or changes. The close sibling tools amplify the need for richer 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 prose adds conceptual context ('current selection or a new frame') that loosely maps to fromNodeId, width, and height, but it does not explicitly connect these descriptions to the parameters or clarify which parameters apply to which mode.
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?
States a clear action ('Create') and resource ('reusable component') plus a source condition ('current selection or a new frame'). It is unambiguous about what the tool does, but it does not explicitly differentiate from sibling tools like create_component_set or 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 provides useful context by naming two invocation modes: converting the current selection or creating a new frame. However, it gives no exclusions or pointers to alternatives, and the sibling list contains several very similar create_component_* tools, so an agent could not confidently route to this tool versus create_component_instance or create_component_set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_component_docsB
Generate documentation frames for a component showing all variants, props, and usage.
| Name | Required | Description | Default |
|---|---|---|---|
| componentId | Yes | Component to document |
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, yet it only states that documentation frames are 'generated.' It doesn't disclose whether this mutates the document by inserting new frame nodes, whether frames are placed on the current page or require a selection, whether existing frames get overwritten, or whether the operation is reversible. For a creation tool this leaves significant behavioral uncertainty.
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 with no filler, and the verb and resource are front-loaded. The qualifier 'showing all variants, props, and usage' is informative and earns its place by telling the agent what output content to expect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity (one required param, no output schema, no annotations), so the description covers the basic invocation correctly. But it leaves open where the frames are created, how this differs from sibling documentation/export tools, and what the agent should expect after invocation. These gaps are material given the absence of annotations and 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 description coverage is 100%, with componentId documented as 'Component to document,' so the baseline is 3. The description reinforces this by mentioning 'a component' but adds no format, source, or prerequisite detail beyond the schema. The description doesn't need to compensate for a coverage gap, but it also doesn't add 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 a specific verb ('Generate') and resource ('documentation frames for a component') and enumerates the scope ('all variants, props, and usage'). This clearly states what the tool produces. However, it doesn't explicitly distinguish itself from closely related siblings like export_component_inventory, create_spec_sheet, or export_design_specs, relying on the word 'frames' to imply in-canvas artifacts.
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 no guidance on when to use this tool versus alternatives such as export_component_inventory, export_design_specs, or create_spec_sheet. There are no prerequisites (e.g., component must exist), no usage conditions, and no exclusions. An agent must infer applicability from the name and generic description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_component_instanceC
Instantiate an existing component.
| Name | Required | Description | Default |
|---|---|---|---|
| parentId | No | Parent to place instance in | |
| overrides | No | Property overrides: { "Text Label": "New text", "fill": "#ff0000" } | |
| componentId | Yes | Component node ID to instantiate |
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, but it only says 'Instantiate' and does not explain that this creates a linked instance, where the instance is placed, or what errors can occur. The description is accurate but minimally 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?
Four words, no filler, and the key constraint 'existing' is front-loaded. It is concise, though arguably too terse to carry the behavioral context needed.
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?
A moderate three-parameter tool with no annotations and no output schema needs more than a one-line purpose statement. The description omits return value, default parent behavior, and linking semantics, leaving important context for the agent to guess.
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 documents componentId, parentId, and overrides with examples. The description adds no parameter-level meaning, which is acceptable because the schema is doing the work.
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 the specific verb 'Instantiate' and names the resource 'an existing component', so the action is clear and distinct from creating a new component. It does not explicitly call out sibling tools or edge cases, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over create_component, duplicate_node, or swap_component, and no mention of prerequisites beyond the implied requirement that the component already exists. An agent must infer usage context from the schema and the long sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_component_setA
Combine component variants into a variant set.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Component set name | |
| componentIds | Yes | Array of component IDs to combine |
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 says 'Combine component variants into a variant set' and does not state whether a new object is created, whether the original variants are modified, whether the IDs must belong to the same base component, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is seven words, front-loaded with the verb, and contains no filler. 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 two-parameter creation tool, the definition is minimally viable: both required parameters are fully documented and the core task is stated. However, without an output schema or annotations, an agent still lacks return behavior and practical requirements such as whether the variants must share a base component.
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 does not need to compensate for missing parameter documentation. It does add mild semantic reinforcement by implying componentIds refer to component variants and name is the resulting set name, but it adds no constraints or format details 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 states a specific action ('Combine') and resource ('component variants' into a 'variant set'). The term 'variant set' clearly distinguishes this tool from sibling tools like create_component, create_component_instance, and create_smart_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 the intended scenario—use this when component variants exist and need to be combined into a set—but it provides no explicit preconditions, exclusions, or alternatives. There is no guidance on when not to use this versus related component-creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_design_tokensB
Generate a complete design token system from a brand color. Creates color, spacing, radius, and typography collections.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Token set name (default: Design System) | |
| withModes | No | Create Light + Dark modes (default: true) | |
| brandColor | Yes | Primary brand color hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that multiple collections will be created, but it does not state whether existing tokens are overwritten, whether this creates variables/styles, whether repeated calls duplicate token sets, or what side effects occur despite the generative nature of the 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?
Two sentences with no filler; the main action is front-loaded, and the second sentence expands the scope with the exact collection types produced. This is 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?
The description gives a clear high-level outcome and the schema covers all inputs, so an agent can make a reasonable first call with brandColor. But without an output schema or annotation, it should also hint at the return value or side effects (e.g., created variable collection names) to be 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 description coverage is 100%, and the schema already documents name, withModes, and brandColor. The description adds nothing semantically new about the parameters beyond tying brandColor to the system generation, so the 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 names a specific action ('Generate a complete design token system from a brand color') and spells out the resulting resource types: color, spacing, radius, and typography collections. It does not explicitly contrast with sibling tools like import_tokens or create_variable_collection, but the core purpose is 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 phrase 'from a brand color' gives clear context for when the tool is appropriate, and the optional withModes parameter implies light/dark token creation. However, there is no explicit when-not-to-use guidance or mention of alternatives for existing token sets or manual variable creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dividerC
Create a horizontal or vertical divider line.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Color | |
| length | No | Length (auto-fills parent if omitted) | |
| parentId | No | Parent node ID | |
| direction | No | Direction (default: HORIZONTAL) | |
| thickness | No | Thickness (default: 1) |
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 reveals that the tool creates a divider line but says nothing about side effects, default placement, selection behavior, or return values. For a mutation tool, 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, focused sentence with no wasted words or redundant information. It is appropriately sized for the tool's simplicity and fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and minimal context, the description is too sparse. It does not explain where the divider is created, how it behaves relative to siblings or parent nodes, or what the agent should expect after calling it. More context is needed for reliable tool selection and 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 itself adds no parameter-level meaning beyond what the schema already provides, but the schema includes useful descriptions like 'auto-fills parent if omitted' and default values, which is sufficient.
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: 'Create a horizontal or vertical divider line.' It clearly identifies the tool's function and the two supported orientations, making it easy to understand what it does. However, it does not explicitly differentiate from similar create tools like create_line or create_vector, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 create_line, create_rectangle, or other creation tools. The description simply states what the tool does, leaving the agent to infer appropriate usage without any context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ellipseC
Create a circle or oval.
| Name | Required | Description | Default |
|---|---|---|---|
| fill | No | Fill color hex | |
| name | No | Name (default: Ellipse) | |
| width | Yes | Width | |
| height | Yes | Height | |
| opacity | No | Opacity 0-1 | |
| parentId | No | Parent node ID |
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 only states the action; it doesn't reveal whether the new node lands in the current selection/board, whether it becomes selected, what happens without a parentId, or any document-state effects beyond the name default already in the 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?
A single five-word sentence with zero filler, front-loaded with the verb and object. It is efficient, though the brevity borders on under-specification; the lacking content is already penalized in other dimensions.
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 creation tool with 6 parameters, no annotations, and no output schema, this description is too thin. It doesn't explain placement context, required vs optional parameters, defaults, or return behavior, forcing an agent to open the schema and still guess at document-level semantics.
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 all six parameters documented, so the baseline of 3 applies. The description adds nothing about parameters, relying entirely on terse schema descriptions like 'Width' and 'Parent node ID', which is adequate but minimal.
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 (Create) and resource (circle or oval) that maps directly to the tool name and distinguishes it from obvious siblings like create_rectangle or create_star. However, it doesn't address overlap with generic creators like create_vector or create_svg_node, which could also produce ellipses.
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 prefer this tool over alternatives. With dozens of create_* siblings, an agent receives no hint about when create_ellipse is appropriate versus create_vector, create_icon, or create_svg_node, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_flowB
Create a prototype flow starting point.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Flow name | |
| nodeId | Yes | Starting frame |
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 states the action without mentioning whether this mutates the document, whether it overwrites existing flows, whether a selection is required, or what response is expected. For a creation tool, 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, front-loaded sentence with no filler words. It efficiently communicates the core action and resource, making it easy for an agent 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 two-parameter tool with full schema coverage, the description is minimally sufficient to attempt a call. However, the lack of annotations, output schema, and usage guidance leaves gaps around the actual document effect and how this flow relates to other prototype tools.
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%; both parameters ('Flow name' and 'Starting frame') are adequately described in the schema. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create a prototype flow starting point.' It clearly identifies the tool's action and differentiates it from sibling tools like create_prototype_link or list_flows by focusing on creating a flow start. However, 'starting point' is somewhat vague and doesn't explain what a flow is in Figma terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as create_prototype_link or set_transition. There are no exclusions, prerequisites, or context cues to help an agent decide between creating a flow and other prototype-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_formB
Create a form layout with labeled inputs, validation states, and submit button.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Fields: [{ label, type: "text|email|password|select|textarea", required }] | |
| parentId | No | Parent node | |
| brandColor | No | Accent color | |
| submitLabel | No | Submit button text (default: Submit) |
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 states what is produced (a form layout) but not how the tool behaves: where the form is inserted in the document, whether parentId is required or optional in practice, whether repeated calls accumulate or replace, or what the tool returns. For a mutating create operation 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?
A single 13-word sentence with zero filler; the resource and its contents are stated up front in the first clause. Every word earns its place and the structure is immediately scannable.
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 description must stand alone, and it does not. An agent cannot tell where the form is created, what 'validation states' actually renders, whether a page or selection must exist first, or what a successful call returns. For a 4-parameter mutation tool operating on a design canvas, this is incomplete and leaves key invocation decisions to guesswork.
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 loosely maps to parameters (labeled inputs → fields, submit button → submitLabel) and adds mild context by describing validation states, which correspond to the type/required properties in the fields array. However, it adds no extra meaning for parentId or brandColor beyond the schema's one-liners, so it neither compensates for gaps nor substantially enriches semantics.
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 ('Create') and resource ('form layout') and enumerates the contained elements: labeled inputs, validation states, and submit button. It is immediately distinguishable from the large pool of create_* siblings (create_nav_bar, create_card_grid, create_sidebar_layout) because no other tool targets forms. This is a specific verb+resource statement that an agent can act on.
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 prefer this tool over alternatives, no prerequisites, and no exclusions. With roughly 150 siblings including many create_* layout tools, the agent must infer usage purely from the tool name. This matches the 'no guidance' level rather than implied usage, since no contextual signal about the design workflow is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_frameA
Create a frame (screen, section, card, container). Automatically applies auto-layout with design-intelligent defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X position on canvas | |
| y | No | Y position on canvas | |
| gap | No | Space between children (8px grid) | |
| fill | No | Background color hex | |
| name | Yes | Frame name (semantic: "Hero Section", "Card", "Sidebar") | |
| width | No | Width in pixels. Omit for hug-contents. | |
| height | No | Height in pixels. Omit for hug-contents. | |
| padding | No | Equal padding all sides (8px grid snapped) | |
| parentId | No | Parent node ID to nest inside | |
| direction | No | Layout direction (default: VERTICAL) | |
| paddingTop | No | Top padding | |
| paddingLeft | No | Left padding | |
| cornerRadius | No | Corner radius | |
| paddingRight | No | Right padding | |
| paddingBottom | No | Bottom padding | |
| counterAxisAlignItems | No | Cross axis alignment | |
| counterAxisSizingMode | No | Cross axis sizing | |
| primaryAxisAlignItems | No | Main axis alignment | |
| primaryAxisSizingMode | No | Main axis sizing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose one genuinely non-obvious behavior: auto-layout is applied automatically even if not explicitly requested. However, it stops short of describing what the 'design-intelligent defaults' actually are, where the frame lands by default, or what the call returns — all significant for a 19-parameter creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words; the core purpose is front-loaded and the differentiating behavior (auto-layout defaults) follows immediately. 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 19-parameter tool with no annotations and no output schema, the description is thin: it omits return value / node-ID chaining information, the meaning of 'design-intelligent defaults', and guidance on choosing between create_frame and specialized siblings. It is minimally viable because the inline schema covers most parameter semantics, but an agent still cannot predict side effects or chain the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies; the schema already documents all 19 parameters including enums, 8px grid snapping, and hug-contents behavior. The description adds only the vague 'design-intelligent defaults' phrase, which gestures at but does not specify parameter behavior 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 names a specific verb and resource ('Create a frame') and clarifies scope with parenthetical synonyms (screen, section, card, container), helping an agent recognize valid use cases. The auto-layout note hints at differentiation from non-container siblings like create_rectangle, but it does not explicitly distinguish this from specialized siblings such as create_section or create_card_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?
The phrase 'Automatically applies auto-layout with design-intelligent defaults' implies this is the choice when an agent wants a smart container, but no explicit when-to-use or when-not-to-use guidance is provided. It never names an alternative (e.g., create_section, create_rectangle, set_auto_layout) or states exclusions, leaving routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_glassmorphismB
Apply glassmorphism effect: background blur, semi-transparent fill, subtle border.
| Name | Required | Description | Default |
|---|---|---|---|
| blur | No | Blur amount (default: 16) | |
| nodeId | Yes | Target frame | |
| opacity | No | Background opacity (default: 0.1) |
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 disclose the main behavioral traits by enumerating the effect components: background blur, semi-transparent fill, and subtle border. However, it does not explain whether this effect replaces existing effects, whether it mutates the node permanently, or what side effects occur beyond the visible style changes.
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 core action and then lists the effect properties. Every word earns its place, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter style tool, the description is mostly adequate, but it lacks important context about interaction with existing effects, whether the border is configurable, and whether the effect replaces or merges with current fill/effect settings. The absence of annotations and output schema increases the need for more 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?
Schema description coverage is 100%, so the schema already documents the parameters. The description adds minimal semantics beyond matching blur and opacity to the effect traits, and it does not mention the nodeId parameter at all.
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 ('Apply glassmorphism effect') and the specific visual components it sets: background blur, semi-transparent fill, and subtle border. It is clear and informative, but it does not explicitly differentiate itself from closely related siblings like apply_backdrop_blur or set_effects.
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 apply_backdrop_blur, set_effects, or create_neumorphism. The usage is only implied by the name and effect description; no exclusions, prerequisites, or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_headerC
Create a page header/hero with heading, subheading, and CTA.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Width (default: 1440) | |
| ctaText | No | CTA button text | |
| heading | No | Main heading | |
| parentId | No | Parent node | |
| brandColor | No | Accent color | |
| subheading | No | Subheading text |
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 says 'Create' and gives no information about side effects, defaults, relationship to the current selection, or what happens when optional parameters are omitted. 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, front-loaded sentence with no filler. It quickly conveys the primary purpose. It could add more value without becoming bloated, but as written it 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?
For a tool with 6 optional parameters, no output schema, and no annotations, the description is under-specified. It does not explain what the tool returns, how parentId determines placement, what the default behavior is with no parameters, or whether the created header/hero is a grouped structure.
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 description mentions three of the six parameters (heading, subheading, CTA) but adds no meaning beyond the schema. It provides no context for width, parentId, or brandColor, so it neither compensates for gaps nor enriches the existing 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 uses a specific verb ('Create') and names the resource ('page header/hero') with the key content pieces (heading, subheading, CTA). It is clear what the tool produces, though it does not explicitly distinguish itself from sibling creation tools like create_frame or create_nav_bar.
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 choose this tool versus alternatives such as create_section, create_nav_bar, or create_frame. The description does not mention selection prerequisites, parent requirements, or when a header/hero is the appropriate construct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hover_stateC
Create a hover variant interaction on a component.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Component or instance | |
| hoverVariant | Yes | Variant name for hover state |
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 intent but does not disclose side effects, whether existing hover states are overwritten, whether the component must already have hover variants defined, or what happens if the variant is invalid. The description adds little beyond what the tool name already implies.
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 that front-loads the action and target. There is no wasted wording or redundant 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 mutation tool with no annotations and no output schema, the description is quite thin. It does not explain key concepts like what a 'hover variant interaction' entails, how the hoverVariant parameter maps to an existing variant, or what constraints exist on the node. An agent could call this correctly, but would have to guess at important details.
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 'Component or instance' and hoverVariant as 'Variant name for hover state'. The tool description adds minimal semantic value beyond the schema, but the schema already covers both parameters adequately, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Create') and a specific resource ('a hover variant interaction') on a component. It is easy to understand what the tool does, but it does not differentiate this from sibling tools like create_responsive_variant or set_transition, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor any mention of prerequisites, such as whether the target component must be a component with variants or whether a prototype flow is required. The agent is left to infer usage entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_iconC
Create a common UI icon from built-in set.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | Yes | Icon name: arrow-right, arrow-left, arrow-up, arrow-down, check, x, plus, minus, search, menu, settings, user, heart, star, home, mail, phone, calendar, clock, bell, lock, unlock, eye, eye-off, edit, trash, download, upload, link, external-link, copy, share, filter, sort, grid, list, chevron-right, chevron-left, chevron-down, chevron-up | |
| size | No | Icon size (default: 24) | |
| color | No | Color | |
| parentId | No | Parent node ID |
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 disclosing behavior. It only states that an icon is created, without mentioning side effects, where the node is placed, whether it replaces the current selection, or whether parentId is required for placement.
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, focused sentence with no filler or repetition. It is concise and front-loaded, though it is brief to the point of omitting useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with four parameters, no output schema, and no annotations, the description is insufficiently complete. It does not explain where the icon is created, how parentId is used, what the default behavior is, or what result the agent should 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?
Schema description coverage is 100%, so the schema already documents the icon, size, color, and parentId parameters. The description adds little beyond the word 'built-in set,' which aligns with the icon parameter's allowed names, but this is not a meaningful semantic addition.
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 ('common UI icon from built-in set'), which clearly distinguishes this from sibling tools like create_vector or create_svg_node that build custom shapes. It could be more explicit about what qualifies as 'built-in,' but the core purpose is 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 is provided about when to use this tool versus alternatives such as create_vector, create_svg_node, or create_arrow. The phrase 'from built-in set' weakly implies a constraint, but there is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lineC
Create a line or divider.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name (default: Line) | |
| length | Yes | Line length | |
| parentId | No | Parent node ID | |
| direction | No | Direction (default: HORIZONTAL) | |
| strokeColor | No | Stroke color | |
| strokeWeight | No | Stroke weight (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It adds little beyond the mutation implied by the verb 'Create' and does not explain context requirements, node-tree effects, selection behavior, or possible side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is efficient, although the brevity sacrifices clarity and disambiguation; conciseness itself is not the problem.
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 six parameters, no annotations, and no output schema, the description is too thin. It does not explain parent/selection context, direction/stroke styling implications, or how this tool relates to the many sibling create_* tools.
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 six parameters. The tool description adds no additional meaning about parameter relationships, units, or behavior beyond what is already 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 states a concrete action and object: 'Create a line or divider.' However, the disjunctive phrasing is ambiguous, especially since a sibling tool named create_divider exists and is never differentiated. An agent cannot confidently tell whether to choose this tool or create_divider.
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 create_line versus create_divider or other shape-creation tools. The phrase 'or divider' hints at a possible use case, but no selection criteria, alternatives, 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_measurementB
Create a measurement line between two nodes showing distance.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId1 | Yes | First node | |
| nodeId2 | Yes | Second node | |
| direction | No | Measurement direction (default: AUTO) |
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 states the basic action of creating a measurement line and that it shows distance. It does not disclose side effects, whether it mutates the document, how it behaves with invalid node IDs, or what the resulting line looks like.
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, clear, front-loaded sentence with no unnecessary filler. Every word contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple tool with complete schema coverage, the description is mostly adequate. However, with no output schema and no annotations, it lacks detail about what happens after creation, such as whether the measurement line is selected, whether it is visible immediately, or how distance is displayed. Sibling alternatives are also not addressed.
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 all three parameters adequately. The description adds minimal value by linking the two nodes to the measurement line, but it does not explain node ordering or how 'direction' affects the result beyond the schema's enum and default.
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: 'Create a measurement line between two nodes showing distance.' This clearly describes the tool's function. However, it does not explicitly distinguish itself from the sibling tool 'measure_distance' or 'create_line', though the term 'measurement line' provides reasonable implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when a visible measurement line between two nodes is needed, but it provides no explicit guidance about when to use it versus alternatives like 'measure_distance' or 'create_line'. No when-not-to-use or alternative-selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_neumorphismA
Apply neumorphism effect: dual shadows (light + dark) with matching background.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| intensity | No | Effect intensity 0-1 (default: 0.5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose a concrete behavior—dual light/dark shadows and matching background—telling the agent this is a visual mutation. It stops short of stating whether existing effects are replaced, whether a visible background is required, 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?
One sentence with no filler; the core action and distinguishing shadow technique are front-loaded. 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 two-parameter effect tool, the description covers purpose and mechanism and the schema handles parameters. But with no annotations and no output schema, the agent still lacks guidance on prerequisites, effect-replacement semantics, and when to prefer this over other effect tools—so completeness is adequate but not strong.
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% for both nodeId and intensity, so the description does not need to restate parameter meanings. The phrase 'matching background' obliquely supports the background-reading behavior but adds no parameter-level detail 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 opens with a specific verb and resource ('Apply neumorphism effect') and defines the technique ('dual shadows (light + dark) with matching background'). This differentiates it from sibling effect tools like create_glassmorphism or generic set_effects without needing to compare schemas.
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 sentence states when to use this tool over alternatives or when not to use it. The effect name and sibling list imply a styling-effect intent, but the description itself provides no explicit selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_new_pageB
Create a new page in the document.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Page name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of explaining behavior. It only states that a page is created; it does not disclose where the page appears, whether it becomes the active page, naming constraints, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the key action and object are front-loaded. It is appropriately concise for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter creation tool, the description covers the essential action and resource, and the schema covers the parameter. However, the lack of annotations and output schema leaves behavioral details such as return value and page placement unexplained, and it does not resolve ambiguity with the sibling create_page 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% and the single required parameter 'name' is already documented as 'Page name.' The description adds no additional semantic detail beyond what the schema provides, so the 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') and the resource ('a new page in the document'), so the core purpose is understandable. However, it does not distinguish this tool from the similarly named sibling create_page, leaving ambiguity about which one an agent should choose.
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 create_page, duplicate_page, or switch_page. An agent is left to infer the appropriate context 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.
create_noise_textureA
Add a subtle noise/grain texture overlay to a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Noise scale (default: 1) | |
| nodeId | Yes | Target frame | |
| opacity | No | Noise opacity (default: 0.05) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It conveys an additive overlay operation rather than a destructive replacement, but it does not explain whether repeated calls stack, how the effect integrates with existing effects/fills, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that leads with the action and result. There is no filler, repetition, 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 simple three-parameter mutation tool without an output schema, the description plus schema is minimally sufficient. However, it omits behavioral context and usage differentiation, so an agent is not fully equipped to invoke it with confidence among many related design tools.
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 all parameters (nodeId as target frame, scale, and opacity with defaults), so schema coverage is 100%. The description adds only the qualitative idea of 'subtle', which does not meaningfully extend the 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 identifies the action ('Add') and the resource ('noise/grain texture overlay') plus the target ('a frame'). It is immediately distinguishable from the large set of sibling create_ and set_effect 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 about when to choose this tool over alternatives like set_effects or set_image_fill, and there are no exclusions or conditional use cases. The agent must infer the intended use from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_overlayB
Set up a frame as a modal/overlay in prototype mode.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Overlay frame | |
| position | No | Overlay position (default: CENTER) | |
| backgroundDim | No | Background dim opacity 0-1 (default: 0.5) | |
| closeOnClickOutside | No | Close when clicking outside (default: true) |
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 disclosure. It says 'set up' but does not explain side effects, whether the frame is modified in place, whether it becomes a separate overlay state, or what happens to existing prototype connections. For a mutation-like tool, 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, front-loaded sentence with no filler. Every word contributes to the core purpose, and it is appropriately short for a straightforward tool with four well-described 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?
The tool is simple, has full schema coverage, and no output schema, so the description does not need to explain return values. However, it does not clarify key contextual factors such as whether the frame must already exist, whether prototype mode must be active, or how this overlay setup relates to prototype flows. This leaves some ambiguity for an agent deciding how to invoke 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 description coverage is 100%, so the schema already documents all four parameters with meaning. The description itself does not add extra parameter-level semantics, but per the baseline rule, a 3 is appropriate when the schema carries the load. It does provide helpful top-level context that nodeId refers to a frame used as an overlay.
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: 'Set up a frame as a modal/overlay in prototype mode.' This clearly conveys the core function of converting a frame into an overlay and is distinct from sibling tools like create_prototype_link or create_flow. It does not explicitly differentiate itself from those siblings by name, but the meaning is sufficiently 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?
There is no guidance about when to use this tool versus alternatives such as create_prototype_link or create_hover_state. The phrase 'in prototype mode' implies a context, but it does not state prerequisites, exclusions, or which sibling tools should be used instead under different conditions.
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 complete page design with multiple sections. Design-intelligent layout, spacing, and typography throughout.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Color mode (default: dark) | |
| type | Yes | Page type: landing, pricing, dashboard, settings, login, signup, profile, blog, docs, 404 | |
| width | No | Frame width (default: 1440) | |
| content | No | Page content: { brand, title, features[], stats[], tiers[], ... } | |
| brandColor | No | Brand color hex |
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. It does disclose that the tool applies 'design-intelligent layout, spacing, and typography throughout', indicating autonomous design decisions. However, it omits side effects (e.g., whether it creates a new page or modifies the current selection, whether it overwrites existing content) and any safety-related behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The core assertion is front-loaded, and the design-intelligence qualifier is placed naturally. The description earns its length.
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 complex tool with 5 parameters including a nested 'content' object and no output schema, the description gives a useful high-level purpose but leaves gaps. An agent still needs to infer what 'multiple sections' means concretely, how the tool uses the provided content, and what the resulting output will be—though the schema partially compensates for parameter understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter has a clear description in the schema. The tool description adds no parameter-level detail, but since the schema already documents the fields, the 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 a specific verb ('Create') and resource ('complete page design with multiple sections'), which is clear and goes beyond the tool name 'create_page'. It implies a higher-level composite operation than siblings like create_frame or create_section, though it doesn't explicitly name a distinguishable 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?
No guidance is provided about when to use this tool versus alternatives such as create_section, create_new_page, or manual frame composition. There is no stated context, prerequisite, or exclusion, so the agent is left to infer when this high-level page generator is 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 regular polygon.
| Name | Required | Description | Default |
|---|---|---|---|
| fill | No | Fill color | |
| name | No | Name | |
| size | Yes | Diameter | |
| sides | Yes | Number of sides (3=triangle, 5=pentagon, 6=hexagon, etc.) | |
| parentId | No | Parent node ID |
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 says 'Create a regular polygon' and offers no disclosure about side effects, whether the polygon is selected after creation, where it is placed, whether it returns a node ID, or what happens with parentId. This is under-disclosing for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with zero fluff and the main verb+resource is front-loaded. However, it is under-specified rather than appropriately sized: several crucial usage and behavior details are absent, so brevity comes at the expense of usefulness.
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 description should provide more operational context, but it does not explain return behavior, node placement, or when this tool is prefered. The schema covers parameters, but the overall call context is incomplete for an agent deciding among many shape-creation siblings.
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 schema already documents sides with examples and size as diameter, plus fill, name, and parentId. The description adds no paramtric nuance, but the baseline of 3 applies because the schema carries the parameter documentation burden.
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: 'Create a regular polygon.' This distinguishes it from sibling tools like create_star, create_rect angle, and create_ellipse by naming a distinct object type. It is not a tautology because 'regular polygon' adds a meaningful qualifier beyond the tool 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?
The description gives no guidance on when to choose this tool over alternatives such as create_vector, create_star, or create_rect angle. There are no context clues, prerequisites, or exclusions. The agent must infer usage solely from the tool name and minimal description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_prototype_linkA
Create a prototype navigation link between two frames.
| Name | Required | Description | Default |
|---|---|---|---|
| trigger | No | Interaction trigger (default: ON_CLICK) | |
| duration | No | Transition duration ms (default: 300) | |
| toNodeId | Yes | Destination frame | |
| fromNodeId | Yes | Source node (trigger) | |
| transition | No | Transition type (default: DISSOLVE) |
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 states that a link is created; it does not disclose whether existing links are overwritten, whether both nodes must be frames on the same page, or whether any prototype setup is required. 'Create' implies mutation, but the side effects are not addressed.
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. The action, object, and scope are front-loaded, making it easy for an agent 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?
With five parameters, no annotations, and no output schema, a one-sentence description is minimally adequate but leaves gaps around prerequisites, side effects, and when to use alternatives. The core action is clear, but an agent is left to infer important operational 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 input schema already documents all five parameters. The description adds marginal context by clarifying the link is 'between two frames,' which helps map fromNodeId and toNodeId, but it does not meaningfully elaborate 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 uses a specific verb ('Create') and a clear resource ('prototype navigation link') with a precise scope ('between two frames'). This distinguishes it from sibling tools like remove_prototype_link or create_flow, making the tool's purpose immediately identifiable.
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 through its naming and phrasing but gives no explicit guidance on when to use this tool versus alternatives like remove_prototype_link or set_transition. There are no stated exclusions, prerequisites, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_rectangleC
Create a rectangle shape.
| Name | Required | Description | Default |
|---|---|---|---|
| fill | No | Fill color hex | |
| name | No | Name (default: Rectangle) | |
| width | Yes | Width | |
| height | Yes | Height | |
| opacity | No | Opacity 0-1 | |
| parentId | No | Parent node ID | |
| cornerRadius | No | Corner radius |
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 restates the creation action and says nothing about insertion location, coordinate origin, units, default fill/opacity, return value, or side effects. This is essentially no behavioral transparency beyond the schema's existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded, with no filler words. 'Create a rectangle shape' is efficient but slightly redundant ('rectangle' and 'shape'). It is concise without being bloated, though it may be too terse to fully support an agent.
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, no output schema, and seven parameters, the description is not complete enough for reliable invocation. It does not explain what the tool returns, where the rectangle is created, how parentId affects placement, or what defaults apply. The description leaves too much for the agent to infer.
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 structured schema already documents all seven parameters including required width and height. The description adds no additional parameter context, but the schema already carries the semantic weight. 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 gives a specific verb and resource: 'Create a rectangle shape.' It clearly identifies the tool's purpose and is distinguishable from siblings like create_ellipse, create_polygon, and create_star by the shape type. However, it does not add any details about the rectangle's behavior or context, so it stops short of full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as create_frame, create_vector, or create_svg_node. The only usage signal is the tool's name and purpose, which is implied rather than explained. No exclusions, prerequisites, or preference conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_responsive_variantC
Create mobile/tablet/desktop variants of a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Source frame | |
| breakpoints | No | Target widths (default: 375,768,1440) |
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 says 'create...variants' without explaining whether the source frame is modified, whether new frames are created, how breakpoints map to variants, or what side effects occur. The behavior is underspecified for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. The core action and resource are front-loaded, making it easy to scan. It is appropriately sized for a simple two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with many closely related siblings and no output schema, this description is too sparse. It does not explain what 'variants' means operationally, what nodes are created, or how the tool relates to convert_to_responsive and generate_mobile. An agent would need additional information to invoke it confidently.
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 the device-type context ('mobile/tablet/desktop') that loosely maps to the breakpoints default, but it does not add meaningful semantics 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 states a specific action ('Create') and resource ('variants of a frame'), naming the three device types. It is clear what the tool does at a basic level. However, it does not distinguish itself from closely related siblings such as convert_to_responsive, generate_mobile, or set_breakpoint, so some ambiguity remains.
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 convert_to_responsive, generate_mobile, or stack_for_mobile. The description gives no context about selection criteria, prerequisites, or situations where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scroll_behaviorB
Set scroll behavior on a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame node | |
| overflow | No | Overflow behavior (default: SCROLL) | |
| direction | No | Scroll direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'Set scroll behavior,' which implies mutation but does not explain side effects, whether existing overflow/direction settings are overwritten, or any constraints on the frame.
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 appropriately sized for a simple setter operation.
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 schema provides strong parameter definitions, and this is a simple mutation, so the minimal description is arguably viable. However, with no annotations and no alternative-usage guidance, an agent may not know whether direction requires a specific overflow value or how this differs from set_overflow.
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 nodeId, overflow, and direction with enums and defaults. The description adds no parameter-level meaning beyond what the schema provides; the 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 ('Set') and resource ('scroll behavior on a frame'), clearly indicating the action and target. However, it does not distinguish this tool from the closely named sibling set_overflow, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as set_overflow or create_prototype_link. The description simply states the action without any context, 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_sectionC
Create a design-intelligent page section (hero, features, pricing, CTA, testimonials, FAQ, footer, stats, logos, comparison, team).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Color mode (default: dark) | |
| type | Yes | Section type: hero, features, pricing, cta, testimonials, faq, footer, stats, logos, comparison, team, newsletter | |
| width | No | Frame width (default: 1440) | |
| content | No | Content data: { title, subtitle, items[], ... } | |
| parentId | No | Parent node ID | |
| brandColor | No | Brand color hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It only says 'design-intelligent' without explaining what that means, how the content object is used, what gets created (frame, group, component), or what side-effects/defaults/return value to expect.
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 the verb and resource front-loaded. The type enumeration is useful, though 'design-intelligent' is vague and not strictly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with a nested content object and no output schema, the description is too sparse. It doesn't explain how parentId/content interact, what the tool returns, or what 'design-intelligent' behavior will be applied to the section.
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 for parameters is 100%, so the baseline applies. The description largely repeats the type list from the schema and omits 'newsletter'; it adds no new parameter meaning beyond the phrase 'design-intelligent'.
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 action ('Create') and a resource ('design-intelligent page section'), and enumerates the section types it supports. It is clear enough to differentiate from generic shape-creation tools like create_rectangle, though it doesn't explicitly distinguish itself from create_footer or create_header.
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 prefer this tool over siblings. Since create_footer, create_header, and create_nav_bar exist, an agent has no basis for choosing create_section for a 'footer' request without additional inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shadow_systemB
Generate a consistent shadow elevation system (sm, md, lg, xl) as effect styles.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Shadow intensity (default: medium) | |
| baseColor | No | Shadow base color (default: #000000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden of behavior. It explains that the tool creates effect styles, which is useful, but doesn't state whether existing styles are overwritten, where the styles are stored, whether a selection is needed, or whether any other side effects occur.
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 front-loads the action and the output format, includes the scale names, and wastes no words. It is immediately scannable and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with fully documented optional parameters, the description is mostly adequate. However, it omits important behavior around conflict handling with existing style names and does not clarify whether calling it mutates existing styles or creates new ones, which would matter when invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already documented including defaults. The tool description adds no additional semantic detail beyond the schema, so the 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 ('Generate'), a specific deliverable ('consistant shadow elevation system'), the included scale names ('sm, md, lg, xl'), and the output type ('effect styles'). This makes it clearly distinct from siblings like set_effects, which apply effects rather than create persistent styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as create_design_tokens, get_local_styles, or set_effects. There are no explicit conditions, exclusions, or alternative references; usage context is left entirely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sidebar_layoutC
Create a sidebar + main content layout with proper proportions.
| Name | Required | Description | Default |
|---|---|---|---|
| parentId | No | Parent node | |
| brandColor | No | Accent color | |
| totalWidth | No | Total width (default: 1440) | |
| sidebarWidth | No | Sidebar width (default: 260) |
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 restates the mutation act 'create' without explaining where the layout is inserted, whether a parent is required, whether existing content is affected, or what nodes are actually generated. 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?
A single ten-word sentence that front-loads the core action with no padding. The phrase 'with proper proportions' is somewhat vague, but brevity is otherwise well-handled.
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, no output schema, and four optional parameters, an agent cannot tell what the tool returns, where the layout is created, or how the parameters shape the result. For a creation tool with zero structured safety signals, the description is too thin to support 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 of 3 applies. The description adds no parameter-specific meaning; 'proper proportions' loosely relates to totalWidth and sidebarWidth but does not clarify their relationship or acceptable values.
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 identifies a specific action ('Create') and resource ('sidebar + main content layout'), which distinguishes it from sibling layout creators such as create_nav_bar, create_header, and create_footer. It misses a 5 because 'proper proportions' is subjective and the expected output structure is never specified.
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 choose this tool over the many sibling layout/component creators, and no exclusions, prerequisites, or selection requirements are mentioned. An agent is left to infer the appropriate context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_smart_componentC
Create a design-intelligent component with proper auto-layout, padding, and sizing. Uses component intelligence defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Color mode (default: dark) | |
| type | Yes | Component type: button, input, card, avatar, badge, chip, switch, checkbox, radio, toast, tooltip, modal, dropdown, tabs, table, progress, skeleton, divider | |
| label | No | Text label for the component | |
| variant | No | Variant: default, sm, lg, icon, compact, spacious, pill, thin | |
| parentId | No | Parent node ID | |
| brandColor | No | Brand/accent color hex |
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 says the tool creates a component with auto-layout, padding, and sizing, but it does not disclose side effects, selection requirements, created node behavior, or return value. 'Uses component intelligence defaults' is too vague to be concrete.
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 brief and front-loaded with the main action. The phrase 'Uses component intelligence defaults' is somewhat vague but does not bloat the description; overall it is skimmable 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?
This is a creation tool with six parameters, no annotations, and no output schema, yet the description omits what the tool returns, what 'smart' defaults actually do, and how it relates to sibling creation tools. An agent can guess the intent but lacks enough context to invoke it confidently.
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 even though the description adds no parameter-specific meaning. The mention of auto-layout, padding, and sizing describes outcomes, not parameter semantics, and no parameter is clarified 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 states a specific action and resource: create a component, plus design-relevant outcomes like auto-layout, padding, and sizing. However, terms like 'design-intelligent' and 'component intelligence defaults' are vague, and it does not explicitly differentiate this from the sibling create_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?
No guidance is given about when to use this tool versus alternatives such as create_component, create_component_set, or create_frame. The only implied signal is the 'smart' adjective, which is not a reliable selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spec_sheetB
Generate a design specification sheet next to a frame with all measurements, colors, and typography.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to spec | |
| position | No | Where to place spec (default: RIGHT) |
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 implies a creation action ('Generate') but does not state whether it creates a new node, modifies the frame, overwrites existing sheets, or has side effects on 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?
A single sentence that is front-loaded with the action and resource, then specifies content and placement. Every word earns its place, and there is no redundant or filler phrasing.
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 two-parameter tool with full schema coverage, the description is minimally adequate: it names the target, output content, and placement context. However, with no annotations and no output schema, it leaves side effects and invocation prerequisites unstated, so it is 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 description coverage is 100%, with nodeId described as 'Frame to spec' and position described as 'Where to place spec (default: RIGHT)'. The tool description adds context about the output contents but does not need to explain parameters further because the schema already covers them.
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 ('Generate') and a specific resource ('design specification sheet next to a frame'), and lists the contents ('measurements, colors, and typography'). It is clear about what the tool produces, though it does not explicitly contrast itself with siblings like export_design_specs or create_style_guide.
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 alternatives such as export_design_specs, annotate_dimensions, or create_style_guide. The description implies 'use this when you want a spec sheet on the canvas,' but provides no exclusions or selection criteria.
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 star shape.
| Name | Required | Description | Default |
|---|---|---|---|
| fill | No | Fill color | |
| name | No | Name | |
| points | No | Number of points (default: 5) | |
| parentId | No | Parent node ID | |
| innerRadius | No | Inner radius (ratio to outer) | |
| outerRadius | Yes | Outer radius |
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 simply says 'Create a star shape' without explaining that it adds a new node to the document, whether it requires a current selection or parent container, what units radii use, or what the result returns. For a creation tool, the verb implies mutation, but key 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 short sentence with no filler or redundant content. It is appropriately concise, though slightly under-specified: it could add a phrase about configurable points or radii without becoming wordy.
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 six parameters, no output schema, and no annotations, the description leaves significant context unstated: how the shape is created, where it appears, how inner radius and points interact, and what the tool returns. The schema covers parameter meanings, but the surrounding creation context is absent.
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 all six parameters including defaults and ratio semantics. The description adds no parameter-level insight beyond what the schema provides, which is acceptable baseline behavior when the schema is complete.
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: 'Create a star shape.' This distinguishes it from most siblings (e.g., create_rectangle, create_ellipse, create_arrow) because the shape type is explicit. However, it doesn't elaborate on star-specific traits such as point count or inner radius, so it's clear but somewhat minimal.
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 vs alternatives like create_polygon or create_vector. It doesn't state when a star is the appropriate choice or mention that create_polygon might be better for arbitrary polygons. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_style_guideC
Generate a visual style guide page from the current design system.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode (default: dark) | |
| brandColor | No | Brand color to use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It conveys that a page is generated but does not state whether it creates or overwrites a page, whether it depends on the current selection, or what side effects occur.
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 direct and front-loaded, with no filler or repetition. It clearly names the action and the source in minimal 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?
Even though the tool has only two optional parameters, the lack of annotations and output schema means the description should explain what the tool produces and any side effects. It does not distinguish 'page' creation from export/spec alternatives or state the intended workflow, leaving an agent to guess about outcomes and prerequisites.
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's reference to the current design system adds slight context that mode and brandColor may customize the generated page, but it does not elaborate on parameter behavior.
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?
States a specific verb ('Generate') and resource ('visual style guide page') sourced from the current design system. It is clear about the action and object, though it does not explicitly distinguish itself from similar sibling tools like generate_stylesheet or export_design_specs.
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. With many sibling tools for styles, exports, and specs, the description provides no conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_svg_nodeB
Create a vector graphic from SVG markup. Use for icons, logos, illustrations.
| Name | Required | Description | Default |
|---|---|---|---|
| svg | Yes | SVG markup string | |
| name | No | Node name | |
| width | No | Target width | |
| height | No | Target height | |
| parentId | No | Parent node ID |
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 reveals that the tool creates a new vector graphic, but it does not mention whether the node is inserted into the current selection, how parentId affects placement, what happens if the SVG is invalid, or whether anything is returned. For a create tool with no annotation safety signals, more behavioral context 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 two short sentences with no redundancy. The core mechanism ('from SVG markup') is front-loaded, and the use-case sentence is compact and informative. Every sentence contributes 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?
The schema is rich with 100% parameter coverage and the purpose is clear, so the basics are covered. Still, with no annotations and no output schema, the description does not explain insertion behavior, return value, or how this tool relates to sibling creation tools. Some important operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents every parameter. The description adds only 'SVG markup' context for the svg parameter and does not explain width, height, name, or parentId beyond what the schema already provides. Baseline 3 is appropriate since the schema handles parameter semantics.
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: 'Create a vector graphic from SVG markup.' This is specific enough to understand what the tool does. However, it does not explicitly distinguish this from sibling tools like create_icon or create_vector, especially since it lists icons/logos/illustrations as use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides some usage context by saying 'Use for icons, logos, illustrations,' which tells the agent common scenarios. However, it gives no guidance on when to prefer create_icon or create_vector instead, and no exclusions or alternatives are mentioned. The usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_table_frameB
Create a data table with headers, rows, and proper spacing.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | Row data: arrays of cell values | |
| columns | Yes | Column headers | |
| parentId | No | Parent node | |
| brandColor | No | Accent color |
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 only that a table is created with headers and rows, but does not disclose side effects such as modifying the current selection, requiring a parent frame, applying default layout, or the relationship with parentId and brandColor.
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 repeated schema content. Every phrase ('headers, rows, proper spacing') adds relevant detail about what the tool creates.
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 create tool with 4 parameters and no annotations, this definition is too sparse. It does not explain where the table is created, how rows map to columns, whether a parent is needed, or what controls the table's appearance, so an agent still needs to infer key invocation details.
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 and the schema already documents columns, rows, parentId, and brandColor. The description adds no deeper parameter semantics, such as row-column alignment, defaults, or how brandColor is applied.
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 names a specific verb ('Create'), a clear resource ('data table'), and concrete contents ('headers, rows, and proper spacing'). This distinguishes it from generic siblings like create_frame or create_section and makes the tool's purpose obvious.
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 create_frame, create_form, or manually constructing a table. The description implies intended use for tabular data but gives no exclusions, prerequisites, or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_textB
Create text with design-intelligent typography. Font weight is auto-resolved (e.g. "bold" → "Bold", "600" → "Semi Bold").
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text content (use \n for line breaks) | |
| color | No | Text color hex (default: #ffffff) | |
| fontSize | No | Font size in px (default: 16) | |
| maxWidth | No | Maximum text width for wrapping | |
| parentId | No | Parent node ID | |
| textCase | No | Text case transform | |
| fontFamily | No | Font family (default: Inter) | |
| fontWeight | No | Weight: thin/light/regular/medium/semibold/bold/extrabold or 100-900 (default: Regular) | |
| lineHeight | No | Line height in px or ratio (1.5 = 150%) | |
| letterSpacing | No | Letter spacing in px | |
| textDecoration | No | Text decoration | |
| textAlignVertical | No | Vertical alignment | |
| textAlignHorizontal | No | Horizontal alignment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add one concrete behavior: font-weight auto-resolution with examples. However, it leaves 'design-intelligent typography' vague and does not disclose where the node is placed, what the tool returns, or any side effects beyond the obvious creation.
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 short sentences with no filler. The operation is front-loaded, and the second sentence supplies the most non-obvious detail an agent needs.
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 complete schema coverage, there is no annotations and no output schema. The description does not explain where the text node is created (current selection vs parentId), what it returns, or how omitted typography parameters behave beyond fontWeight.
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 real semantic value for fontWeight by clarifying normalization ('bold' → 'Bold', '600' → 'Semi Bold'), going beyond the schema's list of accepted values.
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?
States a specific verb and resource ('Create text') and adds a differentiating behavioral claim ('design-intelligent typography'). It does not explicitly contrast with siblings like set_text_content or style_text_range, but 'create' clearly signals a new node rather than modifying existing text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool instead of set_text_content, style_text_range, or type_set_hierarchy. The only usage signal is the verb 'Create', with no prerequisites, placement context, or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_variableC
Create a design variable/token.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name (e.g. "primary-500", "spacing-md") | |
| type | No | Variable type | |
| value | Yes | Value (hex for COLOR, number for FLOAT, etc.) | |
| modeValues | No | Values per mode: { "Light": "#000", "Dark": "#fff" } | |
| collectionId | Yes | Collection ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure, but it only says 'Create a design variable/token.' It doesn't mention required prerequisites, whether existing variables with the same name are overwritten, mode handling, or the fact that this is a mutating operation with no output 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?
The description is a single concise sentence with no filler or redundant detail. It is appropriately front-loaded, though it is arguably too terse given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, a nested object, no output schema, and no annotations, the description is incomplete. It does not mention dependency on a collection, variable type semantics, mode values, or what the tool returns, making it hard for an agent to fully understand the operation without inspecting the 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 description coverage is 100%, so the schema fully documents the parameters. The description adds no additional meaning beyond 'design variable/token', which only weakly reinforces the purpose of the parameters. Baseline 3 is appropriate because the 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 states a clear action ('Create') and a specific resource ('design variable/token'), which distinguishes it from sibling update/delete/get variable tools. However, it could more explicitly differentiate from create_variable_collection, since collections and variables are related concepts and the description uses the broad term 'token'.
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 state when to use this tool versus create_variable_collection, bind_variable, or create_design_tokens, nor does it mention prerequisites such as an existing collection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_variable_collectionB
Create a design token collection with modes (e.g. Light/Dark).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Collection name (e.g. "Colors", "Spacing") | |
| modes | No | Mode names, e.g. ["Light", "Dark"] |
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 restates the basic creation operation and the notion of modes, without mentioning side effects, duplicate handling, document scope, prerequisites, or whether existing token collections are affected.
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 focused sentence with no filler. The core action, resource, and a clarifying example are all front-loaded, making it easy for an agent 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 two-parameter create operation, the description covers the essential action and resource. However, with no annotations and no output schema, it leaves usage context, return behavior, and edge cases unspecified, making it 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 the baseline is 3. The description's mode example ('Light/Dark') largely echoes the schema's example and does not add substantive semantics beyond what the schema already documents.
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?
States a concrete action ('Create') on a specific resource ('design token collection') and clarifies it supports modes with an example like 'Light/Dark'. It distinguishes the resource from siblings like create_variable because it names a collection, but it does not explicitly differentiate itself from create_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?
Provides no guidance on when to use this tool versus alternatives such as create_variable, create_design_tokens, import_tokens, or swap_mode. The 'modes' example implies a use case, but there is no explicit when-to-use or exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_vectorB
Draw custom vector paths using SVG-like path data.
| Name | Required | Description | Default |
|---|---|---|---|
| fill | No | Fill color | |
| name | No | Vector name | |
| stroke | No | Stroke color | |
| parentId | No | Parent node ID | |
| pathData | Yes | SVG path data (M, L, C, Q, Z commands) | |
| strokeWeight | No | Stroke weight |
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 says 'Draw custom vector paths'; it does not clarify that this creates a new vector node, how it interacts with selection or parentId, whether it replaces anything, or what the operation returns. For a creation tool, this leaves important behavior unexplained.
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 clear sentence with no filler, and the core action and resource are front-loaded. 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?
With six parameters, no annotations, and no output schema, a one-sentence description is not enough. It does not explain where the vector is created, how pathData maps to canvas coordinates, default fill/stroke behavior, or what the agent should expect as a result. The schema covers parameter names but not the operational 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 schema already documents all six parameters, including pathData command details. The description's 'SVG-like path data' mostly restates the schema's pathData description rather than adding new semantic value, which matches 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 uses a specific verb ('Draw') and resource ('custom vector paths') and adds a method ('using SVG-like path data'), which is clear enough to distinguish from sibling shape tools like create_rectangle or create_polygon. It stops short of explicitly naming alternatives or differentiating from create_svg_node, so it is not a perfect 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 phrase 'custom vector paths' implies this is for arbitrary path drawing rather than standard shapes, but there is no explicit when-to-use or when-not-to-use guidance. No alternatives are named, so an agent must infer the appropriate context from the wording alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_nodeB
Remove a node from the canvas.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID to delete |
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 states that a node is removed but does not mention that the operation is destructive/irreversible, what happens to child nodes, or any safety concerns. For a deletion tool, this is a meaningful 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, focused sentence that immediately states the action and target. It is concise without unnecessary elaboration, and 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 one-parameter deletion tool, the description is minimally adequate. However, with no annotations and no output schema, it would benefit from noting irreversibility or side effects on connected nodes. The lack of such context leaves gaps but does not make the tool unusable.
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 already documented as 'Node ID to delete'. The description adds no additional parameter meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and a clear resource ('a node from the canvas'). It clearly conveys the tool's operation, though it does not explicitly differentiate itself from related siblings such as batch_delete 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?
There is no guidance on when to use delete_node versus alternatives like batch_delete or delete_page. No context, prerequisites, or exclusion criteria are provided, leaving the agent to infer the appropriate usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_pageC
Delete a page.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only says 'Delete a page' and does not mention irreversibility, effects on children, permissions required, or what happens if the page is currently active.
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 filler and the action is front-loaded. It is concise, though it sacrifices helpful behavioral context by being extremely terse.
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 operation with no output schema, this definition is incomplete. It does not explain what happens to the page's contents, whether the deletion is reversible, or how this tool differs from delete_node, leaving important side effects uncertain.
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 `pageId` already includes the description 'Page to delete'. The tool description adds no additional parameter-level meaning 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 states a specific action ('Delete') and resource ('a page'), making the core purpose clear. It does not explicitly differentiate from sibling tools like delete_node or batch_delete, and it largely restates the tool 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 usage context is provided. The description does not say when to choose this tool over alternatives such as delete_node, batch_delete, or duplicate_page, 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.
delete_variableC
Delete a variable.
| Name | Required | Description | Default |
|---|---|---|---|
| variableId | Yes | Variable to delete |
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 behavior. 'Delete' implies a destructive operation, but the description does not state irreversibility, impact on bound variables or consumers, permission requirements, or any side effects. This is a meaningful gap for a deletion 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 minimal and front-loaded, containing no filler words. However, it is arguably too terse to carry the behavioral warnings needed for a destructive operation, so it does not earn a 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?
For a one-parameter tool with a fully documented schema and no output schema, the basic call shape is clear. Still, the absence of any warning about destructive side effects, combined with zero annotations, leaves the description only minimally 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%: the sole parameter variableId is already documented as 'Variable to delete.' The description adds no meaning beyond the schema, so the 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 states the action and object precisely: 'Delete a variable.' This clearly separates it from sibling variable-management tools like create_variable, update_variable, and get_variables by verb, though it does not add further context about what a variable is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. There is no mention of when to use this tool versus alternatives, no prerequisites, and no warning about deleting variables that may be in use. The correct usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_from_promptA
Takes any natural language description and generates a complete Figma design. Analyzes mood (minimal, bold, playful, luxury, corporate, techy, organic, brutalist, editorial), detects industry (fintech, health, saas, ecommerce, etc.), picks appropriate colors, spacing density, shadow depth, corner radii, and typography. Then composes a multi-section design with 30-300+ elements.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Frame width (default: 1440) | |
| prompt | Yes | Natural language description. Examples: "A dark fintech dashboard with metrics and charts", "A playful education landing page with pricing", "A minimal luxury brand site for a candle company called Ember" |
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 does add useful behavioral context: it analyzes mood and industry, picks design tokens, and composes 30-300+ elements. However, it does not disclose side effects such as where the design is created (new page, current page, selected frame), whether any existing content is replaced, or what the tool returns after generation.
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 tightly structured and front-loaded: the core purpose is stated first, followed by the analysis criteria and output scale. The enumerated moods and industries are useful rather than wasted words. It is thorough without being 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?
The description gives a strong overview and output scale, but no output schema exists and the description does not explain the return value or document mutation behavior. An agent invoking this tool would benefit from knowing whether it creates a new frame/page, replaces existing content, or returns a list of created node IDs.
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 prompt and width. The description reinforces that prompt is a free-form design description, but adds little beyond the schema's examples and default width. 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?
States a specific verb, resource, and outcome: 'Takes any natural language description and generates a complete Figma design.' The description further distinguishes the tool from low-level editing siblings by enumerating the design dimensions it handles (mood, industry, colors, spacing, typography). This makes it clear this is a high-level generative tool, not a node-level editor.
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 clearly implies when to use it: when the user has a natural language design request and wants a complete multi-section design. It does not explicitly name alternative tools or exclusion cases, but the context is strong enough for an agent to distinguish it from the many single-purpose siblings like create_frame or set_fill.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_instanceA
Detach a component instance to a regular frame.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Instance to detach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clearly discloses the primary effect—converting an instance to a regular frame—but does not mention side effects such as losing the link to the master component, whether overrides are preserved, or whether the operation is reversible. This is a meaningful 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?
One clean, front-loaded sentence states the action and the outcome with no filler. 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 single-parameter operation with no output schema, the description covers the essential input and outcome. It is adequate for invoking the tool correctly, though mentioning the loss of the component link 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?
The schema already has 100% coverage: nodeId is required and described as 'Instance to detach'. The description adds no additional semantic detail beyond what the schema provides, so the 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 states a specific action ('detach'), a specific resource ('a component instance'), and the resulting state ('a regular frame'). This clearly differentiates it from sibling tools like swap_component or reset_overrides without needing to open the schema.
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 use case is implied: use this when you want to break an instance's connection to its component and turn it into a plain frame. However, there is no explicit guidance about when not to use it or which alternative tool might be preferable for related operations like swapping components or resetting overrides.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_inconsistenciesB
Find design inconsistencies: off-grid spacing, non-standard colors, mismatched fonts.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Scope node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does add value by specifying the kinds of inconsistencies detected, which helps set expectations. However, it does not explicitly state that the tool is read-only, what the output format is, or how the optional nodeId parameter affects the scan.
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 a front-loaded verb and a compact colon-separated list of examples. There is no redundant or filler content; 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 low-complexity tool with one optional parameter and no output schema, the description conveys the high-level purpose but leaves gaps. It does not explain the return format, the scope behavior when nodeId is absent, or how this tool relates to overlapping audit/lint siblings. It is adequate 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?
The input schema already documents nodeId with 'Scope node', giving 100% schema description coverage, so the baseline is 3. The tool description adds no additional meaning about this parameter or how it behaves when omitted. No bonus is warranted.
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 finds design inconsistencies and enumerates three concrete categories: off-grid spacing, non-standard colors, and mismatched fonts. This gives a specific verb, resource, and scope. However, it does not explicitly distinguish itself from overlapping siblings like check_consistency or lint_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?
No guidance is provided about when to use this tool versus alternatives such as check_consistency, lint_design, color_check_all, or type_audit. There are no exclusions, prerequisites, or conditions for selecting this tool. The intended usage must be inferred entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_nodeC
Duplicate a node.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of duplicates (default: 1) | |
| nodeId | Yes | Node to duplicate | |
| offsetX | No | X offset per copy | |
| offsetY | No | Y offset per copy |
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 restates the operation and gives no detail about side effects, whether the original node is preserved, how duplicates are positioned, whether the new node becomes selected, or what the tool returns. This is effectively no behavioral transparency beyond the operation 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 redundant wording. It is efficient, though it lacks structure and detail; the conciseness is good even if the content is thin.
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 definition is under-equipped. It does not explain what happens when the duplicate is created, how count and offsets interact, what the resulting selection is, or how this tool relates to batch_duplicate. The schema covers parameters, but the behavioral and contextual gaps remain significant.
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 all four parameters with 100% coverage, so the baseline is 3. The description adds no additional parameter meaning, but it does not need to compensate because nodeId, count, offsetX, and offsetY are already described 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 states the operation and target clearly: 'Duplicate a node.' It identifies a specific verb and resource, but it does not distinguish this tool from siblings like batch_duplicate or duplicate_page, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention that this is for a single node, when batch_duplicate would be preferred, or how it differs from duplicate_page. The agent is left to infer usage 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.
duplicate_pageC
Duplicate an entire page.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New page name | |
| pageId | Yes | Page to duplicate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavior. It states the basic mutation ('Duplicate an entire page') but does not mention side effects, such as whether child content is copied, where the duplicate is placed, or whether an existing page is modified. It also does not clarify permissions or reversibility.
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 sentence with no filler and is appropriately front-loaded for a simple operation. It earns its place, though it sacrifices useful detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is under-specified. It does not explain the result of the operation, how the new page is named when 'name' is omitted, or whether 'entire page' includes all nested layers. Sibling tools like create_new_page and duplicate_node highlight context the description leaves unresolved.
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 both parameters (pageId and name) already carry descriptions. The tool description adds only the 'entire page' scope and no new parameter meaning. Baseline 3 applies because the 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 names the verb ('Duplicate') and the resource ('an entire page'), making the operation unambiguous. The word 'entire' signals page-level scope, loosely distinguishing it from the sibling duplicate_node. It does not explicitly contrast with alternatives, but the core purpose is 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 is provided about when to choose duplicate_page over duplicate_node, create_new_page, or create_page. The description only states what the tool does, leaving the agent to infer the appropriate context. This is a clear gap for a tool with many page- and node-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_as_pngC
Export a node as PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Scale factor (default: 2) | |
| nodeId | Yes | Node to export |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral details, but it only states the basic operation. It does not say what the output is (file, URL, base64), whether any side effects occur, what the 'scale' factor does beyond the schema's default, or any prerequisites (e.g., node must be visible). This leaves the agent to guess about the return type and runtime behavior, which is a significant gap for a tool that produces an artifact.
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, compact sentence that conveys the essential action. It is front-loaded and wastes no words, which is appropriate for a simple operation. However, the brevity edges toward under-specification, so it does not earn a perfect score.
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 exports a file, the description is incomplete. It does not mention what happens with the exported PNG (returned as data, saved to disk, etc.), the output format details, or how the 'scale' parameter affects the output dimensions. Given the lack of an output schema and the tool's purpose of producing a visible result, an agent needs more context to use it correctly. The presence of many sibling export tools further indicates that differentiation is required, which is absent.
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 already provides complete descriptions for both parameters (nodeId and scale), and context signals indicate 100% schema description coverage. The tool description adds no additional parameter context, so it meets the baseline of 3 without enhancing or compensating 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 states a clear action ('Export') on a specific resource ('a node') and specifies the output format ('PNG'). It distinguishes the tool from adjacent export tools like export_as_svg and export_to_react by naming the format, though it doesn't explicitly contrast them. Despite being minimal, the purpose is 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 the many sibling export and generation tools (e.g., export_as_svg, export_design_specs, screenshot). The description simply states what it does without any context about selection criteria, special cases, or alternatives. An agent would have to infer usage based on the format alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_assetsB
Batch export all exportable assets (icons, images) from a node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Scale factor (default: 1) | |
| format | No | Export format (default: svg) | |
| nodeId | Yes | Root node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden for behavioral disclosure. It does not say whether the export traverses nested nodes, whether it modifies anything, what the function returns, or how results are delivered. The core batching and assets/cope are present, but important operational behavior 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?
A single front-loaded sentence that names the action, scope, and asset types with no filler. 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 tool with only three well-documented parameters, the description is mostly adequate for invocation: agent knows nodeId, optional scale, and optional enum-restricted format. However, with no output schema and no annotations, it leaves outcome/return behavior and the meaning of 'all exportable assets' somewhat ambiguous, so completeness is only moderate.
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 schema already documents nodeId, scale, and format with defaults and an enum. The description adds no parameter-level insight beyond the 'node tree' phrasing, but it does not need to compensate because the schema is complete.
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?
States a specific operation — batch export — and a clear scope: all exportable assets (icons, images) from a node tree. It is not a tautology and is clearly distinguishable from single-asset export tools like export_as_svg or export_as_png, though it does not explicitly name 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 phrase 'Batch export all exportable assets' implies this tool is for exporting multiple assets at once, but it gives no explicit when-to-use vs alternative guidance, such as pointing to export_as_svg/export_as_png for single-asset cases. Usage context is implided rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_as_svgA
Export a node as SVG markup.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to export |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden and only tells us the output format. It doesn't disclose whether export is read-only, how the markup is returned, or what happens with unsupported features. For an export tool this is a noticeable 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?
One short sentence with no filler. The verb, object, and output format are all present, making it an appropriately sized description for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, single-purpose tool this is close to sufficient. However, without annotations it doesn't mention return value shape, whether the SVG includes children/styles, or when to choose it over similar exports, leaving the agent to infer those details.
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 already documents nodeId as 'Node to export' with 100% coverage. The description adds no parameter-specific detail beyond the schema, so it sits at 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 names a concrete action ('Export'), a specific resource ('a node'), and an unambiguous output format ('SVG markup'). This makes it easy to distinguish from sibling export tools like export_as_png or export_to_react.
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 is implied: when SVG markup of a node is needed. However, the description never explicitly says when to prefer this over export_as_png, export_to_react, or other exports, nor does it state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_color_paletteC
Export all colors used as a palette.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format (default: json) |
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, yet it reveals nothing about what 'export' produces (a download? a returned data structure?), the scope of colors collected, whether colors are deduplicated, or whether the operation is read-only. The one-line description adds no behavioral context beyond restating 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?
The single sentence 'Export all colors used as a palette.' is tight, front-loaded with the action verb, and contains zero filler. It is appropriately short for a simple one-parameter tool, though the brevity borders on under-specification.
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 is the only source of behavioral information, but it does not state what the tool returns, what scope 'all colors' refers to, or how it relates to sibling export/color tools. Even for a low-complexity tool, an agent cannot predict the call's outcome or side effects from this text alone.
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 format parameter fully described by its enum values and default ('Format (default: json)'), so the schema carries the parameter documentation burden. The description adds no extra meaning about the format parameter, making the baseline 3 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 names a specific verb ('Export'), a resource ('all colors used'), and an outcome ('as a palette'), so the core action is identifiable. However, it does not differentiate from several closely related siblings like export_tokens, get_selection_colors, color_extract, or suggest_color_palette, and 'all colors used' leaves the scope (document vs. page vs. selection) 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?
There is no guidance about when to choose this tool over the many overlapping alternatives in the sibling list. No exclusions, no conditions, and no mention of how this differs from export_tokens or get_selection_colors, so an agent must infer the intended use case entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_component_inventoryC
Export a complete inventory of all components with usage counts.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format (default: json) |
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 states that the tool exports an inventory, but does not clarify whether this is a read-only operation, what the output structure will be, whether it covers all pages/scopes, or whether any side effects (e.g., file creation) occur. The phrase 'complete inventory' is vague and does not disclose the behavior beyond the obvious export action. This is insufficient for an agent to anticipate results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is direct and without fluff. It is appropriately concise for a simple export tool. However, it may be slightly under-specified – it leaves a lot to inference – but as a matter of conciseness and structure, it is efficient and front-loaded with the key 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 absence of an output schema and annotations, the description should provide more context about what the agent can expect: the return format (beyond the parameter), the scope (all pages? whole document?), and any limitations. The description says 'complete inventory of all components' but does not specify scope or how 'usage counts' are derived. It also does not differentiate from siblings. For a simple tool, this is a minimal but inadequate level of context; an agent would likely need to infer too much.
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 single parameter 'format' has a clear schema with an enum and a description ('Format (default: json)') that provides full coverage (100%). Since the schema already documents it, the description is not required to elaborate. The baseline of 3 is appropriate because the schema carries the semantic burden; the description adds no extra information about 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 clearly states the action ('Export') and the resource ('a complete inventory of all components') with an additional qualifier ('with usage counts') that adds specificity. It is easy to understand what the tool does, but it does not explicitly differentiate it from similar siblings like list_components or component_audit, which might also return component inventories. It is clear but lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives. It does not mention any exclusions, prerequisites, or competing tools. Context signals show many sibling tools that could overlap (e.g., list_components, component_audit, export_assets), but the description gives no hint of the tool's unique purpose or when it is the better choice. An agent is left to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_design_specsB
Generate design specifications document for developer handoff.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Spec format (default: markdown) | |
| nodeId | Yes | Node to document |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says it generates a document, but omits what the output looks like (whether it returns a string, file path, or downloads), whether it operates on a single node or recursively includes children, and any side effects. The agent has too little information to predict the tool's behavior confidently.
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 action and purpose. Every word is meaningful, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too sparse for a tool with two parameters and no output schema. It does not explain what a 'design specifications document' entails, whether it is a Markdown/JSON/HTML file (though the `format` param indicates it), or how it differs from similar export tools. Missing usage context leaves the agent ill-equipped to select this tool appropriately.
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 descriptions for both parameters (nodeId, format). The description adds no additional insight beyond the schema, so it meets the baseline of 3 but does not exceed it.
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 action ('Generate design specifications document') with a clear purpose ('for developer handoff'). This distinguishes it from asset exports like export_as_svg or code generation like export_to_react, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are many related tools (e.g., export_tokens, generate_stylesheet, create_spec_sheet) but the description does not clarify when this specific export is preferred, leaving the agent to infer based on the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_spacing_tokensA
Export all spacing values used as a spacing token system.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format (default: json) |
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 only says 'export all spacing values' and does not disclose the output structure, the meaning of 'all', or how the optional format parameter affects the result. 'Export' implies a non-destructive read operation, but little else is revealed.
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 contributes to conveying the action and 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 tool with one optional parameter, the schema adequately documents the format. However, the description leaves ambiguity about the scope of 'all spacing values' (local styles, variables, raw values?) and provides no information about the output shape, which matters given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single format parameter with an enum and default value, achieving 100% schema description coverage. The description adds no parameter-specific detail, but the schema fully covers this simple 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 names a specific action ('export') and a specific resource ('all spacing values...spacing token system'). It also distinguishes itself from adjacent sibling tools like export_tokens, export_color_palette, and export_typography by focusing on spacing 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?
Usage is implied by the tool name and description: use this when you need spacing tokens. However, the description never explicitly states when to prefer this over alternatives like export_tokens or generate_stylesheet, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_tokensA
Export all design tokens as JSON, CSS custom properties, SCSS, or Tailwind config.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format (default: json) |
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 the export action and formats, but it does not disclose whether the operation is read-only, what the returned payload looks like, whether it exports from local variables, styles, or the current selection, or if there are 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, tightly written sentence with no filler. The core action, scope, and supported formats are all front-loaded and immediately actionable.
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-like export tool the description is minimally adequate, but with no output schema and no annotations it leaves ambiguities around scope ('all' tokens from where?) and response shape. It does not explain how the export is returned or whether the agent needs to specify a format for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the format parameter has an enum and a default-value description. The description essentially repeats the enum values without adding extra context, so the schema already does the heavy lifting. 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 uses a specific verb ('Export') with a clear resource ('all design tokens') and names four concrete output formats. This clearly distinguishes it from sibling export tools like export_color_palette and export_typography.
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 when to use it—when all design tokens are needed in a standard format—but it does not explicitly contrast it with alternatives such as import_tokens, create_design_tokens, or the more specialized export tools. There is no when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_to_reactC
Generate React + Tailwind code from a Figma node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node to convert | |
| framework | No | Output framework (default: react-tailwind) | |
| componentName | No | Root component name |
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 only states the high-level output and does not reveal whether this operation is read-only, whether it mutates the document, how the node tree is traversed, what limitations exist, or what the generated code output looks like.
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 names the action, output, and source. Every word contributes to the core purpose, making it appropriately concise for a simple generation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and many closely related export/code-generation siblings, the description is too sparse. It lacks return-format expectations, side-effect information, and any differentiation from alternatives, so the agent may not know what to expect after invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter descriptions already document nodeId, framework, and componentName. The tool description adds only the general context that input comes from a Figma node tree, which is helpful but not substantial additional semantics 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 a specific action ('Generate'), a specific output ('React + Tailwind code'), and an input source ('Figma node tree'). It is distinct from asset-export siblings like export_as_svg and export_as_png, though it does not explicitly name or distinguish itself from other code-generation or export 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?
There is no guidance on when to use this tool versus related alternatives such as generate_stylesheet, export_design_specs, export_tokens, or export_as_svg. No conditions, prerequisites, or exclusions are provided, so the agent must infer appropriate usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_typographyC
Export all text styles as a typography system.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format (default: json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It states the scope ('all text styles') but says nothing about whether the operation is read-only, whether it reads local vs. library styles, or what the returned artifact looks like beyond the schema's format enum.
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 repetition. It could be more informative, but the compactness itself is a strength and matches the apparent simplicity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter export utility, the core semantics are present: export all text styles in a chosen format. However, there is no output schema and no annotations, and the description does not state what the returned typography system contains or how it scopes to local versus team styles.
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 single optional parameter 'format' is fully described in the schema with an enum and a default, so schema description coverage is complete. The description adds no extra parameter detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a concrete action ('Export'), a specific resource ('all text styles'), and the output shape ('a typography system'). It is unambiguous on its own, but it does not differentiate from nearby siblings such as generate_stylesheet, export_design_specs, or export_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 guidance is provided about when to use this tool versus alternatives. It does not state whether it is for local text styles only, or when generate_stylesheet or export_tokens would be more appropriate, so an 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.
extract_componentsA
Find repeated patterns and suggest component extraction.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. 'Suggest component extraction' implies a non-destructive analysis rather than an actual mutation, but the description does not explicitly confirm that no changes will be made or describe 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, focused sentence communicates the core behavior without wasted words. It is appropriately concise for a tool with one parameter.
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 one clear input and a simple purpose, so it is callable as described. However, without an output schema or any mention of what the suggestions return, the agent is left to infer the result format and how to act on it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description 'Root node to analyze' is clear. The tool description adds no further detail about nodeId, so it stays at the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Find repeated patterns') and outcome ('suggest component extraction'), making the tool's purpose understandable. It is distinct from siblings like list_components or create_component, though it does not explicitly name those alternatives.
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 is implied: call this when you want to identify repeated patterns as candidates for component extraction. However, there is no explicit guidance on when not to use it or which sibling tool would be a better alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nodesB
Search for nodes by name, type, or properties.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by type | |
| query | No | Search by name (partial match) | |
| withinId | No | Search within this node |
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 explains the matching criteria but does not state the search scope (whole document vs current page), whether results are returned as IDs or node objects, or any read-only guarantees. It also mentions 'properties' as a criterion even though no property parameter exists in the 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?
The description is one short sentence that front-loads the action and resource, which is efficient for an agent scanning multiple tools. Minor ambiguity in 'properties' prevents a perfect score, but there is no wasted wording.
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 core invocation details are sufficiently clear for a basic search: the agent can choose a query, type, and withinId. However, with no output schema and no annotations, the description does not disclose the return format, the search scope, or how results should be consumed, making it only minimally viable.
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 already provides 100% coverage of all three parameters and clarifies that query is a partial name match, so the description adds little new parameter meaning. The mention of searching by 'properties' is vague and not backed by a corresponding schema parameter, keeping this at 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 states a clear action ('Search for nodes') and the matching criteria (name, type, properties), so an agent can tell this is a node-finding tool. It does not explicitly differentiate itself from sibling lookup tools such as get_nodes_info or search_library, though the search semantics are 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?
The description only implies usage through the verb 'search' and the parameter schema; there is no explicit guidance on when to prefer find_nodes over get_node_info, get_nodes_info, select_all_by_type, or search_library. No exclusions or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fix_spacingC
Auto-fix all spacing values to nearest 8px grid value.
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | Grid size (default: 8) | |
| nodeId | Yes | Root node to fix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose the mutation behavior, but it only states that spacing values are adjusted. It does not say which properties count as spacing, whether the change affects the node subtree, whether it is reversible, or that it is a destructive batch edit.
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 tight sentence with no redundancy and the core behavior is front-loaded. It is concise, though the brevity leaves substantive gaps.
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 mutates design data, has no output schema, and no annotations; an agent cannot tell the scope of 'all spacing values' (node only vs subtree), which properties are touched, or what the grid parameter changes. This level of ambiguity is dangerous for a batch modification 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 nodeId and grid are already described. The description adds nothing substantive about how grid influences snapping or how nodeId scopes the operation beyond the schema text.
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 ('auto-fix') and resource ('all spacing values') with an explicit target ('nearest 8px grid value'), so an agent knows what it accomplishes. It doesn't explicitly contrast with sibling tools like batch_round_values or export_spacing_tokens, so sibling differentiation is weak.
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 choose fix_spacing over siblings such as batch_round_values or annotate_spacing. There are no context cues, prerequisites, or exclusions; the description only gives an implied reason to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fix_touch_targetsB
Auto-fix all touch targets below 44px in a node tree.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root node to fix |
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 reveals that the tool mutates the node tree, but it does not disclose side effects, irreversibility, how touch targets are adjusted, or whether the operation changes layout/sizing.
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 entire description is a single, front-loaded sentence with no filler. The action, target, threshold, and scope are all packed into a compact statement that 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?
The tool is simple with one documented parameter, so the description is adequate for basic invocation. However, with no annotations and no output schema, it lacks details about return values, side effects, and operational caveats, leaving some uncertainty for an agent deciding whether this is safe to invoke.
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 nodeId as 'Root node to fix'. The description adds the 'node tree' context but does not meaningfully expand on the parameter beyond what the schema provides. 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 uses a specific verb ('Auto-fix') and identifies a precise resource ('all touch targets below 44px in a node tree'). This clearly distinguishes it from audit/check tools among the siblings, which only identify issues rather than fix 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 states what the tool does but gives no guidance on when to use it versus alternatives like audit_accessibility, check_contrast, or lint_design. There is no mention of prerequisites, exclusions, or preferred workflow positioning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flatten_nodeC
Flatten a node into a single vector.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to flatten |
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 says 'flatten a node into a single vector' and does not state whether the original node is replaced, whether the operation is destructive or undoable, or what is returned. For a likely mutation operation, 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 sentence with no filler or redundant phrasing. The core action and target are front-loaded, making it easy to parse. It is concise, though somewhat under-specified.
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 description should clarify side effects and return behavior, but it does not. The low parameter complexity and fully documented parameter prevent a score of 1, but the missing consequences of a mutating operation make this incomplete for reliable agent 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%, and the parameter description 'Node to flatten' is clear. The tool description adds no additional meaning beyond the schema, but the baseline of 3 is appropriate because the schema already documents the only parameter effectively.
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 operation ('Flatten') on a specific resource ('a node') and defines the intended result ('a single vector'). It is terse but not tautological, and it is distinguishable from sibling vector tools like create_vector or offset_path. It does not clarify which node types are valid, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use flatten_node instead of related tools such as offset_path, boolean_operation, or create_vector. There is no mention of prerequisites, selection constraints, or when the operation is appropriate. The usage context 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.
generate_a11y_reportC
Generate a detailed accessibility compliance report.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format (default: markdown) | |
| nodeId | Yes | Root node | |
| standard | No | Compliance standard (default: WCAG-AA) |
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 disclosing behavior. It only says a report is generated; it does not mention whether the tool is read-only, what side effects may occur, or what the report contains. This is a significant transparency gap for a tool with no annotation coverage.
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 redundant words. It is appropriately compact and front-loaded with the core purpose, though 'detailed' is vague and the sentence carries no additional structural benefit.
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 annotation, the description is too minimal for an agent to fully understand what invoking the tool entails. It does not explain the scope of the report, what data is returned, or how this relates to the sibling 'audit_accessibility'. The agent would need to guess or inspect other tools to resolve these 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 description coverage is 100%, so all three parameters are already documented with names, defaults, and enum values. The description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Generate a detailed accessibility compliance report.' It explains the tool's purpose without ambiguity, but it does not differentiate itself from the overlapping sibling tool 'audit_accessibility', so it falls short of a full 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?
There is no guidance on when to use this tool versus alternatives like 'audit_accessibility' or 'check_contrast'. The description does not mention use cases, exclusions, or conditions that would help an agent choose this tool over similar siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_mobileC
Generate a mobile-optimized version of a desktop design.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Mobile width (default: 375) | |
| nodeId | Yes | Desktop frame |
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 does not say whether the tool creates a new node, modifies the existing desktop frame, what 'mobile-optimized' changes entail, or what the return value is. This is a significant gap for a transformation 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?
A single sentence with no filler, front-loading the core purpose immediately. 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?
With no output schema and no annotations, this short description is insufficient for an agent to invoke the tool confidently. It lacks details about side effects, output format, and how width interacts with the design transformation, especially given a crowded field of similar responsive-design tools.
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 both parameters already documented (nodeId as 'Desktop frame' and width with a default). The description adds no additional parameter meaning, so the 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 ('Generate') and the resource ('a mobile-optimized version of a desktop design'), so an agent can tell what the tool does. However, it does not distinguish this from sibling tools like convert_to_responsive, create_responsive_variant, or stack_for_mobile, which appear to serve overlapping purposes.
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 the many responsive-design siblings. The description only states the general purpose, not selection criteria or exclusions, leaving the agent to guess which tool fits a given task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_stylesheetC
Generate a complete stylesheet from a design file.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format (default: css) | |
| pageId | No | Page ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior on its own. It only says it generates a stylesheet; it does not say whether the operation is read-only, whether it acts on the current page or entire document, what 'complete' includes, or what the returned output contains. This is a significant transparency gap for a tool with no annotation support.
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, focused sentence that communicates the core purpose efficiently. It does not add unnecessary words, though it could be structured to also include key usage caveats without much 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?
With no output schema and no annotations, the description should explain what a generated stylesheet looks like, how format and pageId affect the result, and whether this reads the whole document or a selected page. None of that is present, so an agent cannot fully predict the tool's behavior or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100%, with both format and pageId documented in the input schema. The description adds no parameter-level meaning beyond that, but because the schema already handles semantics, the 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?
States a specific verb and resource: 'Generate a complete stylesheet from a design file.' It is clear about the action and object. However, it does not differentiate itself from siblings like export_design_specs, export_color_palette, or read_node_css, so an agent must infer where the boundaries lie.
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. The description implies it is for generating a whole stylesheet, but it never states explicit when-to-use, when-not-to-use, or alternative tools. This leaves the agent to guess among many export/generation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annotationsA
Get all annotations/comments on the document or a specific node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Node to get annotations for |
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 behavior. The verb 'Get' clearly implies a read-only operation, and 'all annotations/comments' conveys scope, but it does not mention return format, ordering, or what happens when nodeId is omitted. This is adequate but not rich.
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, front-loaded sentence that states the tool's action, target, and optional scope. There is no filler, repetition, or unnecessary background 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 read tool with one optional parameter and no output schema, the description covers the key decision: document-wide vs. specific-node retrieval. It does not spell out the output shape, but the resource being returned is clearly named and the tool's simplicity keeps this from being a major 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 description coverage is 100%, and the nodeId description in the schema already says 'Node to get annotations for.' The description adds the document vs. specific-node framing, but does not add new semantic detail beyond the schema, so 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 names a specific verb ('Get'), a specific resource ('annotations/comments'), and a clear scope ('document or a specific node'). This clearly distinguishes it from write-oriented siblings like set_annotation and from other read 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?
The description gives clear context for when to use it: to retrieve annotations/comments, either document-wide or for a particular node. It does not explicitly name alternatives or exclusions, but the intended use is immediately evident and requires no inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_design_craft_guideA
Get the professional design rules: typography, color, spacing, anti-AI-slop patterns. Use this before creating any design.
| 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. 'Get' and 'design rules' clearly signal a read-only advisory tool, and the 'before creating any design' phrasing reinforces that no document mutation occurs. It does not describe the return format or length, but those are minor for a static guide.
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 short, information-dense sentences. The first front-loads the content scope, and the second adds a clear usage directive. Every word earns its place with no filler 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?
For a simple, parameterless guide-retrieval tool, the description tells the agent what to expect (professional design rules by category) and when to call it. It could mention the expected response format, but this is not a significant gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter documentation is needed. The description correctly focuses on what the tool returns rather than input semantics, matching the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action ('Get') on a specific resource ('professional design rules') and enumerates the content areas (typography, color, spacing, anti-AI-slop patterns). This clearly identifies the tool's purpose and differentiates it from mutation tools like set_fill or create_style_guide, though it doesn't explicitly name sibling alternatives.
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?
'Use this before creating any design' is an explicit timing directive that tells the agent when to invoke this tool. It doesn't mention when not to use it or name alternative tools, but for a parameterless advisory guide, this guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_infoA
Get document name, pages, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry behavioral disclosure. It signals a read-only operation via 'Get' and lists the returned information, but it does not describe exact return structure, metadata scope, error behavior, or any side effects. This is adequate for a simple getter but has clear 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 a single, efficient sentence with a clear verb and object. It contains no filler and 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?
For a zero-parameter read-only retrieval tool, the description provides the essential purpose and output contents. The absence of an output schema makes 'metadata' somewhat vague, but the simplicity of the tool means few additional details are needed 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?
The tool accepts zero parameters, so the description has no parameter meanings to explain. The schema is empty and the description still adds value by indicating what information the agent will receive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('document'), and enumerates what is returned: name, pages, and metadata. It is clear but does not explicitly distinguish this tool from the many sibling getter-style tools, so it stops short of a perfect score.
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 sibling tools such as page_overview, get_nodes_info, or similar read operations. With a large sibling list and no alternative selection hints, an agent is left to infer the right context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_local_stylesA
Get all local paint, text, and effect styles in the file.
| 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 behavioral burden. 'Get all' clearly signals a read-only operation, and enumerating paint, text, and effect styles tells the agent exactly what will be retrieved. It does not describe response shape, but for a simple getter this is a minor 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 efficient sentence that front-loads the action and resource without any filler. Every word adds meaning: all, local, paint/text/effect, styles, and file scope.
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 getter, the description is nearly complete: it states the scope, resource type, and categories. The only missing piece is an explicit description of the return structure, which might matter since there is no output schema, but the low complexity keeps this gap minor.
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 zero parameters, so the baseline for parameter semantics is 4. The description adds no parameter details because none are needed; it appropriately focuses on the returned style categories.
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 names a specific verb ('Get'), a clear resource ('local paint, text, and effect styles'), and a scope ('in the file'). This is sufficiently distinct from siblings like get_local_variables (variables vs styles) and type_list_styles (text-only vs all local styles).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by scoping to local styles in the current file, which tells an agent when this tool is appropriate. It does not explicitly mention alternatives or exclusions, but the scope is clear enough for a zero-parameter retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_local_variablesB
Get all local variable collections and variables.
| 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 burden of behavioral disclosure. It clearly indicates a read operation and local scope, but it does not describe what the returned data looks like, mention whether library/remote variables are excluded, or note any output structure. For a simple getter this is acceptable but not fully 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 a single, front-loaded sentence with no filler words. It communicates the exact scope and resource in under ten words, 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 zero-parameter read tool, the description covers the basic call intent, but it lacks any indication of output shape or relationship to the many variable-related siblings. Given there is no output schema, a bit more context about what 'all local variable collections and variables' means in practice 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 zero parameters, and schema description coverage is 100%, so there is no parameter ambiguity. The description correctly suggests no arguments are needed, matching the empty input 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 states a clear verb ('Get') and precise resource ('all local variable collections and variables'), making the tool's purpose immediately understandable. It also implicitly distinguishes this from the sibling get_variables by emphasizing 'local', though it does not explicitly name the 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?
The description provides no guidance on when to use this tool versus alternatives like get_variables or get_local_styles. There are no conditions, exclusions, or references to sibling tools, so an agent must infer the appropriate context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoA
Get detailed properties of a specific node including fills, effects, auto-layout, and text styles.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. 'Get detailed properties' clearly implies a read-only inspection, and the listed property categories offer some transparency about what kind of data is returned. However, it does not describe the response shape, whether properties are normalized, or what happens for invalid node IDs, leaving meaningful 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 a single front-loaded sentence with no filler. Every phrase adds value: the action, the resource, the specificity, and the relevant property categories.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description gives enough to select and invoke the tool. However, with no output schema and no return-value explanation, the agent must infer the exact shape of the 'detailed properties.' It covers the main content areas but omits response structure and error behavior, making it minimally adequate rather than 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 schema already fully documents the only parameter, nodeId, as 'Node ID to inspect', so baseline 3 applies. The description reinforces that the tool targets a specific node and lists the kinds of properties returned, but it adds no additional syntax, format, or edge-case 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 uses a specific verb ('Get') and resource ('detailed properties of a specific node') and enumerates relevant property categories: fills, effects, auto-layout, and text styles. It does not explicitly name or contrast sibling tools like get_nodes_info, but the singular 'specific node' makes the intended target reasonably 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?
The description implies this is the tool to use when inspecting a single node's properties, but it gives no explicit guidance on when to prefer it over related tools such as get_nodes_info, get_selection, or read_node_css. There is no mention of alternatives or exclusion conditions, so the usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodes_infoB
Get detailed properties of multiple nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Array of node IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only states that properties are retrieved; it does not mention whether there are limits on nodeIds, how missing or invalid IDs are handled, whether the operation is strictly read-only, or what the response shape is.
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 scope efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool, the description is minimally adequate, but with no output schema and no annotations, it lacks useful operational context such as expected return content, batch-size constraints, or behavior for invalid node IDs. The presence of similar sibling tools makes this gap more noticeable.
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 already fully documents the nodeIds parameter with 100% coverage, including its type and a description. The tool description adds only the notion of 'multiple nodes,' which is consistent but not additive beyond the parameter name and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('nodes'), and the scope 'multiple', which distinguishes it from the sibling get_node_info. However, it does not explicitly name the alternative or clarify the difference beyond the plural form.
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 get_node_info, find_nodes, or get_selection. The 'multiple nodes' phrasing implies batch use, but there is no explicit context or exclusion to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_structureA
Get the full page layer tree with types, names, and hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Max depth to traverse (default: 3) | |
| pageId | No | Page ID (uses current page if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It communicates a read-only intent and describes the returned data, but it does not mention that depth defaults to 3 or that the 'full' tree may be truncated by the depth parameter, which could mislead 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 focused sentence with no filler. The core purpose and output contents are front-loaded, making it easy for an agent 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 read-only tool with two optional parameters and a schema that documents both, the description is largely sufficient. It states what the tool returns, while the schema covers depth and pageId behavior. The only notable gap is the lack of clarity around what 'full' means given the default depth limit.
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 100% coverage for both parameters, including the default for depth and the fallback behavior for pageId. The description adds no parameter-specific meaning, 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 uses a specific verb ('Get'), a clear resource ('full page layer tree'), and explicit output content ('types, names, and hierarchy'). This makes the tool's purpose immediately distinguishable from sibling 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?
The description implies the tool is for retrieving the overall page structure, but it does not explicitly state when to prefer this over alternatives like get_node_info, find_nodes, or page_overview. No exclusions or when-not-to-use 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_selectionA
Get the currently selected nodes with full properties.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description must carry the behavioral burden. 'Get the currently selected nodes with full properties' signals a read-only retrieval and indicates result richness, but it does not disclose return shape, empty-selection behavior, or whether one node or many are 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?
A single, front-loaded sentence with no filler. 'Currently selected' and 'full properties' both carry meaningful scope.
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, read-only getter, the description is largely complete. It names the input context (current selection) and the expected output (nodes with full properties), though the lack of an output schema leaves return format slightly underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is trivially 100%, so no parameter documentation is needed. Baseline 4 applies because there is nothing to compensate for.
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 states a specific verb (Get) and a clear resource (currently selected nodes) with 'full properties' as scope. It is distinct from nearby getters like get_node_info/get_nodes_info through the 'currently selected' qualifier, though it does not explicitly name those alternatives.
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 get_node_info, get_nodes_info, get_selection_colors, or related selection tools. The context of needing the current selection is implied only by the name and qualifier, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_selection_colorsB
Extract all colors used in the current selection.
| 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 indicates an extraction/read operation but does not disclose what counts as a 'color' (fills, strokes, effects, text?), whether it traverses child nodes, or what the output structure looks like.
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 front-loaded with the verb and object. Every word earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and parameterless, so the description provides reasonable context. However, with no output schema and no annotations, it leaves uncertainty about the exact color sources and the return format, which an agent would need to invoke and interpret results 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?
There are zero parameters, and the schema is empty. Per baseline for parameterless tools, this score is appropriate; there are no parameter semantics for the description to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific operation ('Extract all colors') and a resource ('current selection'). It is concise and understandable, though it does not explicitly differentiate itself from the sibling tool 'color_extract' or other color-related 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 phrase 'current selection' implies this tool should be used when the agent needs colors from selected objects, rather than from the entire document. However, it provides no explicit when-to-use or when-not-to-use guidance and does not mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variablesB
List all variable collections and their variables.
| 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 the burden of disclosing behavior. 'List' implies a read-only, non-destructive operation, and 'collections and their variables' adds structural context. However, it does not clarify whether 'all' includes only local variables or also team/library variables, nor what the response 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 compact sentence with no filler. It front-loads the action and clearly states the resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list tool, the description is mostly sufficient, but it is incomplete in context: it does not mention return format or explicitly differentiate from `get_local_variables`. Since there is no output schema, the description could have explained what an agent should expect in the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so there are no parameter semantics to explain. The description correctly avoids inventing parameter-related details.
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 action ('List'), a clear resource ('all variable collections and their variables'), and the scope ('all'). It is clear on its own, but it does not explicitly distinguish itself from the sibling `get_local_variables`, so an agent may not know which tool to prefer.
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 `get_local_variables` or other variable-related tools. The word 'all' hints at unfiltered scope, but no explicit context or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_nodesC
Group multiple nodes together.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Group name | |
| nodeIds | Yes | Node IDs to group |
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 only states 'Group multiple nodes together' without explaining that this creates a group node, changes hierarchy, or how existing groups are affected. No mention of mutation, naming behavior, or reversibility.
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 zero filler and front-loads the action. It is efficient, though arguably too brief to carry the behavioral context an agent needs for this type of mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and many related mutation tools, this description is insufficient. It does not state return behavior, whether a new group node is created, or the relationship to ungroup_nodes, leaving an agent without enough information to confidently invoke it in the right 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 already documents nodeIds and name with full coverage, so the baseline is 3. The description adds no parameter-specific meaning 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 uses a specific verb ('Group') and a clear resource ('multiple nodes'), communicating the core operation. It does not explicitly distinguish itself from sibling ungroup_nodes, but the opposing verb provides some implicit contrast.
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 like ungroup_nodes, align_nodes, or move_to_parent. The only usage cue is the verb itself, with no explicit context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_design_systemC
Import a design system from JSON config and create all tokens, styles, and components.
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | JSON config string with colors, fonts, spacing, components |
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 explaining side effects and safety. It says the tool 'creates tokens, styles, and components,' but does not disclose whether existing items are overwritten, merged, duplicated, or preserved, nor what auth or validation requirements exist.
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, and the core action plus outcome are front-loaded. The structure is clean and appropriate for a tool with a single parameter.
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 bulk import operation with no output schema and no annotations, the description is too thin. It does not explain what a valid design-system config looks like, how conflicts with existing tokens/styles/components are handled, what the response contains, or what can go wrong. These are important gaps for correct invocation by 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% for the single config parameter, and the description roughly repeats the schema's categories ('colors, fonts, spacing, components'). It adds no example, accepted JSON structure, or validation detail, so it meets baseline but provides little extra semantic 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 states a clear action ('Import ... from JSON config') and a specific resource (design system) with an explicit result: creating all tokens, styles, and components. This distinguishes it from token-only tools like import_tokens or create_design_tokens, even though no sibling is named.
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 import_tokens, create_design_tokens, or create_style_guide. No prerequisites, exclusions, or contextual conditions are provided, so an agent must infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_tokensB
Import design tokens from JSON (W3C Design Token format).
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | JSON string of design tokens | |
| collectionName | No | Collection name |
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 that tokens are imported but does not explain side effects, whether existing tokens are overwritten, whether a collection is created, or what happens after import. An import operation likely mutates state, but this is left implicit.
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 clear sentence with no filler. The format specification is usefully incorporated in parentheses without bloating the 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?
The tool is a mutation with no annotations and no output schema, but the description omits important behavioral context such as overwrite behavior, collection creation, and interaction with existing token structures. Two parameters are present, one being an optional collectionName, yet the description does not explain when that parameter matters.
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 context about the W3C format for the 'json' parameter, but this is marginal; it does not need to compensate for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Import') and resource ('design tokens') with a concrete input format ('JSON (W3C Design Token format)'). This clearly differentiates it from siblings like export_tokens and create_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?
The description implies when to use the tool: when a user provides design tokens in W3C JSON format. However, it does not explicitly mention when not to use it or compare against alternatives such as create_design_tokens or import_design_system.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interpret_promptA
Analyzes a design prompt and returns the interpretation without generating anything. Shows what mood, industry, colors, and sections would be used. Good for previewing before generating.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Design description to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It states the tool does not generate anything, which clarifies that the tool is read-only in intent, and it describes what will be returned (mood, industry, colors, sections). This covers the most important behavioral traits, though it does not discuss potential limitations or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loads the core action, and wastes no words. Every sentence contributes either a behavioral guarantee, an output summary, or a use case.
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 single-parameter tool with no output schema, the description is complete: it says what the tool does, what it returns, and when to use it. The absence of an output schema is mitigated by the explicit list of interpretation fields (mood, industry, colors, sections).
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 input schema already describes 'prompt' as 'Design description to analyze.' The tool description adds context about what the analysis yields, but it does not materially improve the meaning of the parameter itself 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 states a specific verb ('analyzes a design prompt') and a clear resource, and explicitly says it 'returns the interpretation without generating anything,' which distinguishes it from generation-oriented siblings like design_from_prompt. It names the kind of output (mood, industry, colors, sections), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Good for previewing before generating' gives a clear context in which to use this tool, implying it is the right choice when a non-destructive preview of prompt interpretation is needed. It does not explicitly name an alternative, but the sibling set makes the generation tool obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lint_designB
Run design lint rules: spacing consistency, naming conventions, color usage, font sizes, alignment.
| Name | Required | Description | Default |
|---|---|---|---|
| rules | No | Specific rules to check. Omit for all. | |
| nodeId | Yes | Root node to lint |
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 what is checked but does not reveal whether the operation is read-only, whether it returns a report, or whether it applies fixes. The term 'lint' implies analysis, but the absence of explicit non-destructive or output expectations leaves ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. The core action is front-loaded, and the enumerated rule categories are immediately useful. 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 no annotations and no output schema, the description is incomplete. It does not explain what the tool returns (e.g., a list of issues, a score), whether it modifies the design, or how it relates to more focused sibling tools. The absence of this context makes it harder for an agent to know what to expect after invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by listing concrete rule categories, which likely map to accepted values for the 'rules' parameter, giving the agent a clearer sense of what can be passed. This goes slightly beyond the generic schema description of 'specific rules to check.'
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 action ('Run design lint rules') and enumerates the rule categories (spacing consistency, naming conventions, color usage, font sizes, alignment), making the tool's scope understandable. It doesn't explicitly name a sibling tool, but the breadth of categories implies it is a general lint checker, distinguishing it from narrower tools like check_naming or fix_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?
The description provides no guidance about when to use this tool versus alternatives. It does not mention what to do if only a specific rule category is needed, nor does it reference siblings like check_naming, color_check_all, or fix_spacing. The agent is left to infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_fontsA
Get all fonts available in the Figma file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. 'Get' clearly implies a read-only operation with no mutation, which is useful. However, it does not clarify what 'available' means, whether any file context or authentication is required, or what the returned font list looks like.
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 extraneous words. Every part of the description earns its place by naming the action, the object, and the scope.
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 read-only list tool, the description is close to sufficient: an agent can infer the intended call and the general result. It would benefit from stating the output format or clarifying the source/scope of 'available fonts', especially 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?
The input schema has zero parameters, so there is no parameter documentation burden and the baseline of 4 applies. The description appropriately says nothing about parameters because none need to be supplied.
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 retrieval action ('Get all fonts') and a clear resource scope ('available in the Figma file'), which distinguishes it from tools that list styles, components, pages, or variables. It does not explicitly contrast with sibling font-related tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over alternatives such as type_list_styles, get_local_styles, or search_library. There are no conditions, exclusions, or sibling routing cues, so the agent must infer usage 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.
list_componentsC
List all components in the file.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | No | Filter to specific page |
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 states the basic listing behavior and does not disclose return shape, whether hidden or locked components are included, how pageId filtering affects results, or any read-only or authorization expectations.
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 repetition. It is easy to parse, though it is terse enough that some behavioral details are left unstated.
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 operation with one optional parameter, the description is minimally viable, but it lacks return-value details and does not clarify what counts as a 'component' (local only, component sets, instances?). With no output schema and no annotations, this leaves meaningful ambiguity for an agent choosing among many sibling tools.
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 single optional pageId parameter already has a clear schema description ('Filter to specific page'), giving 100% schema coverage. The tool description adds no additional parameter semantics, so 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 clearly states the action ('List'), the resource ('components'), and the scope ('in the file'). It is specific enough to stand alone, though it doesn't explicitly distinguish components from component sets/instances or from related sibling tools like extract_components or component_audit.
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 list_pages, get_page_structure, or extract_components. The description only states the action; it does not provide exclusions or selection criteria, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_flowsA
List all prototype flows in the file.
| 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 the full burden. 'List' implies a read-only operation and 'all' scopes the behavior, but no details are provided about the return shape, whether hidden flows are included, or any 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 eight-word sentence with no filler. It front-loads the verb and object and is perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless list operation the description is functional, but because there is no output schema or annotations, an agent still lacks information about the return format or whether flows include metadata. It is adequate but leaves meaningful 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?
There are zero parameters, so no parameter documentation is needed. The baseline for a parameterless tool is 4, and the description adds no misleading parameter information.
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 names a specific operation ('List'), an exact resource ('prototype flows'), and a scope ('in the file'). It is clearly distinguishable from siblings like list_pages and create_flow.
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 alternatives or when not to use it. The description only states the function; it does not mention list_pages for pages or create_flow for creating flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesB
List all pages in the 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. The description only states the basic action ('List all pages') and does not disclose return format, ordering, read-only nature, or any edge cases. For a simple read operation this may be sufficient for a human, but for an AI agent it adds little beyond the tool name 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 a single short sentence that is front-loaded with the key action and resource. Every word earns its place, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool with no parameters and no output schema, but the description is bare. It tells the agent what the tool does, but it does not specify what a returned page list looks like, whether it includes only top-level pages, or how this list differs from similar tools like get_page_structure or page_overview. Given no output schema and no annotations, the description alone is only 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?
The tool has zero parameters and the schema description coverage is effectively 100% (an empty schema fully documents that no parameters exist). The description needs to add no parameter details, so the baseline of 4 for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('all pages') with a clear scope ('in the document'). It states exactly what the tool does, though it does not distinguish itself from sibling tools like get_page_structure or page_overview that may also return page-related information.
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: call this when you need a list of all pages in the document. However, it provides no explicit guidance about when not to use it, nor does it reference any alternative tools. With many page-related siblings available, this implicit guidance is weak.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_librariesA
List all available team libraries.
| 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 the full burden. 'List' clearly implies a read-only operation and 'all available' establishes scope, but the description does not disclose return format, pagination, permission requirements, or what 'available' means in practice.
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 earns its place and the key information—listing all team libraries—appears immediately.
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 list operation with no output schema, the description is mostly complete: an agent can invoke it without arguments and know it returns team libraries. However, 'team libraries' and 'available' are not expanded, and the absence of an output schema leaves the exact return shape unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so there is no parameter ambiguity for the description to resolve. This is the baseline case where the description cannot add much parameter-level 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 a specific verb ('List') and a clear resource ('team libraries'), with 'all available' indicating scope. It does not explicitly distinguish itself from sibling tools like search_library or list_components, so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no exclusion criteria, and no mention of prerequisites or context. The usage is only implied by the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lock_nodeC
Lock/unlock a node.
| Name | Required | Description | Default |
|---|---|---|---|
| locked | Yes | Lock state | |
| nodeId | Yes | Target node |
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, and 'Lock/unlock a node' only restates the core mutation. It does not explain what locking does (e.g., prevents selection or editing), whether the operation is reversible, or any side effects. Minimal disclosure 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?
A single short sentence with zero filler and the action front-loaded. It is efficiently sized for a simple tool, though the brevity edges toward under-specification of surrounding behavior rather than tight-but-rich prose.
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 full schema coverage, the core invocation is understandable. However, with no annotations or output schema, the description leaves lock semantics and sibling differentiation (lock_node vs batch_lock) unexplained, so an agent lacks full context for correct selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so nodeId ('Target node') and locked ('Lock state') are already fully documented in the schema. The description adds no parameter-level meaning beyond this, 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 action (lock/unlock) on a specific resource (node), going beyond the bare name by revealing the tool handles both directions of the state change. It does not, however, differentiate itself from the batch_lock sibling or clarify what 'locked' means in the design-tool context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as batch_lock (multiple nodes) or set_visibility (similar single-property mutation). There are no preconditions, exclusions, or selection requirements stated, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_distanceC
Measure distance between two nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId1 | Yes | First node | |
| nodeId2 | Yes | Second node |
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 states the action without revealing units, coordinate system, whether distances are based on bounding boxes or center points, or what the return value looks like. It does not contradict any annotations because none exist, but it provides minimal behavioral insight.
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 wasted words, and the core action is front-loaded. It is slightly under-specified, but that issue is already captured by other dimensions; the structure itself is clean 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 with no output schema and no annotations, the description is not fully complete. An agent would not know the unit of measurement, the reference points used, or the exact shape of the result. Since the output schema is absent, the description should have explained the return value, but it does not.
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 both parameters documented as 'First node' and 'Second node.' The description adds no extra meaning beyond the schema, but the schema already adequately explains the two parameters, so 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 clearly states a specific verb and resource: 'Measure distance between two nodes.' It is not a tautology and conveys the core function. However, it does not explicitly differentiate itself from related sibling tools like create_measurement or annotate_spacing, which could also involve distance-related functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of use cases, prerequisites, or exclusions. For example, it does not clarify the difference between returning a numeric distance and creating a persistent measurement annotation, which is likely relevant given sibling tools like create_measurement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_pagesB
Move all content from one page into another.
| Name | Required | Description | Default |
|---|---|---|---|
| sourcePageId | Yes | Page to merge from | |
| targetPageId | Yes | Page to merge 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 states content is moved but does not explain what happens to the source page afterward, whether the operation is destructive, or whether content is appended or replaced in the target. These are significant side effects for a merge 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 sentence with no filler and conveys the core operation directly. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple parameters, this is a mutating page operation with no output schema and no annotations. The description omits important context such as what happens to the source page, whether merging is reversible, and how content is combined in the target. This is incomplete for safe agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with sourcePageId described as 'Page to merge from' and targetPageId as 'Page to merge into'. The description reinforces the directionality but does not add meaningful information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Move') and resource ('all content from one page into another'), making the operation clear. It is unambiguous and distinct from sibling page operations like duplicate_page 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?
The description gives no guidance on when to use this tool versus alternatives, and no exclusion conditions or prerequisites are mentioned. The intended use is only implied by the tool name and the action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_nodeC
Modify properties of any existing node.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X | |
| y | No | Y | |
| fill | No | Fill color | |
| name | No | Name | |
| width | No | Width | |
| height | No | Height | |
| locked | No | Lock | |
| nodeId | Yes | Target node ID | |
| opacity | No | Opacity 0-1 | |
| visible | No | Visibility | |
| rotation | No | Rotation degrees | |
| cornerRadius | No | Corner radius |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description simply says 'Modify properties' without disclosing behavior like whether unspecified properties are preserved, whether the node must exist, error behavior, undoability, or any side effects. Since no annotations are provided, the description carries the full burden and falls short.
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 efficient, though arguably too sparse for a tool with 12 parameters, so it does not earn a 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?
Given the large parameter count, no annotations, no output schema, and a large set of overlapping sibling setters, the description is incomplete. It does not explain how this bulk modifier relates to the specific setters, whether it performs partial updates, or what happens with null or omitted values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters already have individual descriptions (X, Y, fill, name, etc.). The tool deescription adds no additional parameter meaning beyond 'properties', so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Modify') and a resource ('properties of any existing node'), making the basic purpose understandable. However, it does not distinguish this generic tool from the many specific sibling setters like set_fill, rename_node, or set_opacity, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use modify_node instead of the numerous single-purpose sibling tools such as set_fill, set_rotation, or rename_node. No conditions, exclusions, or alternative suggestions are provided, leaving the agent to infer when this generic tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_to_parentC
Move a node into a different parent frame.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Position index within parent | |
| nodeId | Yes | Node to move | |
| parentId | Yes | New parent ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden but conveys only that a mutation occurs ('Move'). It does not disclose what happens when index is omitted, whether forbidden moves (into itself or a descendant) are blocked, or whether auto-layout parents reflow — all key behaviors for a tree-restructuring 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?
A single eight-word sentence with the verb and object front-loaded and zero filler. Every word earns its place and no information is buried.
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 hierarchy-changing mutation with no annotations and no output schema, the description is too thin. It leaves the behavior of the optional index parameter, valid parent types, and forbidden moves (node into itself or its own descendant) unexplained, so an agent cannot reliably predict the result of a 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?
Schema coverage is 100% and each parameter (index, nodeId, parentId) already carries a usable description, so the baseline of 3 applies. The tool description adds no parameter-level detail beyond restating the move relationship already visible 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 names a specific verb and resource ('Move a node') plus a destination ('a different parent frame'), which clearly signals a re-parenting operation and distinguishes it from reorder_node (same-parent reordering) and delete_node. It falls short of 5 only because it doesn't specify which container types qualify as valid parents, and the boundary with reorder_node is not addressed.
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 is given about when to use this tool versus its close siblings reorder_node, group_nodes, or modify_node. The optional index parameter even blurs the boundary with reorder_node, since this tool can also position a node within its new parent, and the description does nothing to resolve that ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normalize_designB
Auto-fix a design to match the implied design system. Snaps spacing, normalizes colors, fixes font weights.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Preview changes (default: false) | |
| nodeId | Yes | Root node to normalize |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose the essential trait: this is a mutating auto-fix that changes spacing, colors, and font weights. However, it omits the blast radius (the entire subtree under nodeId), the preview path (dryRun), whether changes are reversible, and what 'implied design system' means — important context before invoking a bulk write.
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 totaling roughly 20 words, with the primary purpose front-loaded and concrete behaviors listed second. Every word earns its place; there is no fluff 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 bulk-mutation tool with zero annotations and no output schema, the description is too thin. Missing are sibling-selection guidance, a mutation-breadth warning, any mention of the dryRun preview, and a definition of how the 'implied design system' is derived. The schema covers parameters, but the operational and safety context an agent needs is absent.
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 parameter descriptions ('Root node to normalize', 'Preview changes (default: false)'), establishing the baseline 3. The description adds only marginal meaning by elaborating what 'normalize' does to the nodeId subtree, and nothing about dryRun beyond what the schema already states.
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?
States a specific verb ('auto-fix'), a resource ('a design'), and a target ('match the implied design system'), then enumerates three concrete behaviors: snaps spacing, normalizes colors, fixes font weights. These behaviors distinguish it from narrower siblings like fix_spacing and type_normalize. The only fuzziness is the undefined 'implied design system,' but the core action is unmistakable.
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 no guidance on when to choose this tool over its many overlapping siblings. With fix_spacing, type_normalize, color_harmonize, lint_design, detect_inconsistencies, and compare_to_system all available, an agent cannot tell whether to call this umbrella tool or a targeted one. Usage is only weakly implied by the action verbs, with no exclusions, prerequisites, or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offset_pathC
Offset/expand a vector path.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Vector node | |
| offset | Yes | Offset amount |
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 does not state whether the path is modified in place, whether the operation is destructive/reversible, what units or sign convention 'offset' uses, or what the agent should expect after calling it.
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. Every word contributes to identifying the operation, and the core action is stated immediately.
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-style design tool with no annotations and no output schema, one short clause is not enough context. The agent is not told about side effects, return value, failure conditions, or how the offset behaves visually. Sibling tools are numerous, so more context is needed to avoid misapplication.
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 'Vector node' and 'Offset amount' already documenting both parameters. The description adds only a thin gloss by framing the operation as 'expand', but it does not clarify units, coordinate space, or whether the offset is applied to the path geometry itself.
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 names a specific action, 'Offset/expand', and a specific resource, 'a vector path', which is enough to identify the tool's core purpose. It is distinct from siblings like resize_node or set_corner_radius, though it does not explicitly differentiate itself or mention when this operation is appropriate.
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 alongside alternatives, no exclusions, and no prerequisites. A one-line operation statement gives an agent no help deciding between offset_path, boolean_operation, resize_node, or other path-modification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_overviewA
Get an overview of all pages: name, frame count, component count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of conveying behavior. 'Get' implies a read-only operation and the listed fields describe the return content. However, it doesn't disclose nuances like whether hidden or all nested pages are included, or whether this can be expensive on large documents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the purpose and the exact returned fields without any filler or repetition. 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 parameterless read tool, the description covers the essential information: what it operates on and what it returns. The lack of an output schema means the field list partially compensates, though the exact response shape (e.g., array vs object) is not specified.
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 parameter semantics burden. The description correctly implies that no parameters are needed to obtain the overview.
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 ('overview of all pages'), and specifies the returned fields: name, frame count, component count. It does not explicitly differentiate from siblings like list_pages or get_page_structure, but the resource and fields make the purpose understandable.
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 list_pages, get_page_structure, or get_document_info. The context in which page_overview is preferred is entirely left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_componentsB
Mark components as ready to publish to team library.
| Name | Required | Description | Default |
|---|---|---|---|
| componentIds | Yes | Components to mark |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It reveals that the operation is a state change ('mark as ready'), but does not say whether this actually publishes components, whether it is reversible, what permissions are required, or what happens to components already marked ready.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with a specific verb and resource, no filler or repetition. Every word is informative and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool, the operation and target are adequately clear. However, with no annotations and no output schema, the description leaves out side effects, reversibility, and prerequisite conditions, so it is only minimally complete 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%, and the parameter's own description ('Components to mark') is clear. The tool description adds the 'ready to publish to team library' context, but additional parameter-level semantics are not needed; baseline 3 applies because the schema already documents the single 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 clear action ('mark') on a specific resource ('components') with a clear target state ('ready to publish to team library'). This distinguishes it from related siblings like validate_component or component_audit, which do not mention publication readiness.
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 alternatives. It does not mention prerequisites, such as components being validated first, nor does it describe a workflow involving team library publishing, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_node_cssB
Get CSS representation of a node (for developer handoff).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format (default: css) | |
| nodeId | Yes | Node to get CSS for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavioral disclosure. The verb 'Get' signals a read-only, non-destructive operation, but the description does not detail return format, side effects, format-specific behavior, or any limitations. It adds the developer-handoff context but little else.
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 a front-loaded verb, no filler, and a useful parenthetical context. 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?
The tool is simple and the schema is complete, but the description leaves the return value ambiguous and does not clarify how it relates to overlapping siblings like copy_css or export_design_specs. It is adequate for a basic call but not fully complete for agent decision-making.
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 nodeId and format are described in the schema, including the format enum and default. The description adds no additional parameter meaning beyond what the schema already 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 ('Get') and a clear resource ('CSS representation of a node'), with the parenthetical 'for developer handoff' adding intent. However, it does not explicitly differentiate the tool from overlapping siblings such as copy_css or export_design_specs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or comparisons; the only contextual hint is 'for developer handoff', which implies a use case but does not help an agent choose among similar CSS/export tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_all_effectsA
Remove all effects (shadows, blurs) from a node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly implies a mutating action and tells the agent what gets removed (shadows, blurs, and other effects). With no annotations, the description carries the full burden, but it does not disclose whether the change is reversible, what exact effect types are covered, or whether only the node itself is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the core action and adds clarifying examples without waste. 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 one-parameter tool, the description and schema together give an agent enough to call it correctly. It lacks sibling routing and behavioral caveats, but the operation is straightforward and the missing details are minor rather than blocking.
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 as 'Target node' with 100% coverage, so the description adds no parameter-level detail. It simply relies on the schema, which is an acceptable baseline but not a value-add.
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 concrete action ('Remove all effects') on a clear resource ('a node') and gives helpful examples ('shadows, blurs'). It is unambiguous about scope, though it does not explicitly distinguish itself from siblings like set_effects or batch_remove_effects.
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?
Usage is implied: if you want to clear all visual effects from one node, this tool does that. However, it offers no guidance on when to prefer this over set_effects or batch_remove_effects, and it does not mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_prototype_linkC
Remove a prototype connection.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to remove connection from |
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. 'Remove' signals a destructive operation, but the description does not say whether all prototype connections from the node are removed, whether the operation is reversible, or what side effects may occur on existing flows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded, direct, and contains no filler words. It could include more behavioral detail, but what is present is economically written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description plus schema are minimally sufficient to attempt a call. However, without explaining the scope of removal, impact on flows, or any prerequisites, the description is not fully complete for correct and 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?
The schema has 100% description coverage for the single parameter, describing nodeId as 'Node to remove connection from.' The description adds no additional parameter meaning beyond this, which is acceptable given the schema already documents the parameter clearly.
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 action and resource: 'Remove a prototype connection.' It is clear enough to distinguish from sibling creation tools like create_prototype_link, but it does not explicitly differentiate itself from related prototype-management tools or clarify the exact scope of removal.
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 create_prototype_link or other prototype-flow tools. There are no stated prerequisites, exclusions, or context cues that would help an agent decide this is the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_nodeC
Rename a node.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New name | |
| nodeId | Yes | Target node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the basic mutation (naming) but provides no behavioral context beyond that: no mention of side effects, whether it affects text content, return values, or access requirements. With no annotations, the description carries the full burden but doesn't carry much.
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 with no fluff. It is front-loaded and easy to parse. However, it is so minimal that some usage guidance could have been added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter operation with fully documented parameters, this is minimally viable. However, it fails to clarify the distinction between renaming a node and editing text content, and it doesn't mention any output or side effects, so an agent could still invoke it in ambiguous contexts.
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 parameter descriptions ('New name' and 'Target node') are clear enough. The tool description adds no parameter-level detail, but the schema already handles that, so the 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 uses a specific verb and resource ('Rename a node'), making the core action clear. It distinguishes from obvious siblings by focusing on the name, but does not explicitly differentiate from tools like batch_rename 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 is given about when to use this tool versus alternatives like batch_rename, modify_node, or set_text_content. The description leaves the selection criteria entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_pageC
Rename a page.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New name | |
| pageId | Yes | Page ID |
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, yet 'Rename a page' only restates the operation. It does not indicate whether the rename is immediate, whether references need updating, whether permissions are required, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three words, no filler, and the key information is front-loaded. Every part of the sentence is purposeful, even though more behavioral detail is needed 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?
For a simple mutation tool, this is borderline adequate, but the absence of annotations, output schema, and any relationship to sibling rename tools leaves the agent without enough context. The description does not say what a successful rename returns or how this differs from rename_node.
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 both parameters 100%, so the schema already documents pageId and name. The description adds no additional semantic meaning beyond the schema's own 'Page ID' and 'New name' labels, which keeps it at 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 states a specific verb and resource: 'Rename a page.' It clearly identifies the operation, but it makes no attempt to distinguish itself from sibling tools like rename_node or batch_rename, so it lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus rename_node or batch_rename. The description provides no exclusions, prerequisites, or alternative routing, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_nodeC
Change z-order of a node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| direction | No | Reorder direction |
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 says 'change z-order' without explaining the semantics of FRONT/BACK/FORWARD/BACKWARD, effects on sibling nodes, or whether the operation is reversible. The direction enum exists in the schema but its behaviors are left undefined.
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 fluff and clearly front-loads the purpose. It is appropriately concise, though it is also minimal enough that it sacrifices useful explanatory content, which is more a completeness concern than a conciseness one.
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 moderate complexity (direction semantics, node hierarchy, z-order stacking), no output schema, and no annotations, this description is too sparse. It does not explain what FORWARD/BACKWARD mean, whether the node must have siblings, or what happens in edge cases, so an agent lacks enough context to invoke it confidently.
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% description coverage with 'Target node' and 'Reorder direction', so the baseline is 3. The description adds no additional parameter semantics, but the enum values are relatively self-explanatory, so no meaningful information is missing beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Change') and a clear resource ('z-order of a node'), making the core purpose understandable. It does not explicitly contrast with sibling node-manipulation tools, but no sibling has the exact same function, so it is distinguishable.
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. It does not mention prerequisites (e.g., node must have a parent), how it differs from move_to_parent or align_nodes, or under what conditions a user should pick this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_overridesB
Reset all overrides on a component instance.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Instance node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavioral impact, but it only says 'Reset all overrides'. It does not state that the action is destructive, irreversible, or what specific overrides are cleared, which 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 one short sentence of eight words, front-loaded with the action and target, containing no filler or redundancy. It is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is close to minimal sufficiency, but it lacks explicit behavioral caveats and sibling differentiation. An agent would benefit from knowing whether the instance stays linked and what side effects resetting has, especially given similar sibling tools.
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 as 'Instance node' with 100% coverage. The description adds minimal context by referring to a component instance, but it does not provide any new details about the parameter format, constraints, or accepted values 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 uses a specific verb, 'Reset', and a specific resource, 'all overrides on a component instance', making the core purpose clear. It does not explicitly contrast with sibling tools like detach_instance, but the scope is understandable.
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 detach_instance or set_* style tools. The description does not state whether the instance remains linked after resetting, what prerequisites exist, or when resetting is preferable to other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_nodeB
Resize a node with optional constraint preservation.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | New width | |
| height | No | New height | |
| nodeId | Yes | Node to resize | |
| preserveAspect | No | Maintain aspect ratio |
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 explaining behavior. It states that the node gets resized and that constraint preservation is optional, but it does not disclose side effects, default behavior, or whether the resize is absolute or relative. The phrase 'constraint preservation' is also ambiguous relative to the preserveAsect parameter.
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 wasted words. It front-loads the action and places the optional behavior immediately after. It is appropriately sized for its low complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the schema covers all parameters, and there is no output schema. The description plus schema is enough to understand what the tool does and how to call it. However, it lacks guidance on when to use it over siblings and any behavioral transparency, which limits completeness 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 the baseline is 3. The description adds little parameter meaning beyond the schema; 'constraint preservation' may relate to preserveAsect, but it is vague. The parameter descriptions in the schema already provide the necessary semantics.
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 clear verb and resource: 'Resize a node with optional constraint preservation.' This makes the core operation clear and adds a useful distinguishing detail. However, it does not explicitly differentiate from sibling tools such as batch_resize or modify_node that also involve resizing.
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 that this is for single-node resizing, nor does it point to batch_resize for multiple nodes. There is no implied usage context beyond the tool name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
responsive_checkC
Check if a design handles different viewport widths correctly.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Root frame to check | |
| breakpoints | No | Widths to check, e.g. [375, 768, 1024, 1440] |
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 implies 'check' is read-only but does not explicitly say whether it mutates the design, what 'correctly' means, what criteria are evaluated, or what the result/response contains. This is a meaningful transparency gap for an analysis 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 front-loaded sentence with no filler, which is efficient. It is somewhat minimal, but the brevity is not problematic in itself; the missing details are more a completeness issue than a structure 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?
With no annotations, no output schema, and only a one-line description, the tool definition lacks important context: what the check returns, how correctness is determined, whether it is read-only, and what the role of breakpoints is. The schema provides good parameter documentation, but an agent cannot fully anticipate the tool's behavior or output.
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 nodeId and breakpoints. The description adds marginal context by connecting the task to viewport widths, but it does not explain how breakpoints are used, whether they override defaults, or what the expected format for nodeId should be beyond 'root frame to check.'
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 and resource: 'Check if a design handles different viewport widths correctly.' This clearly identifies it as a responsive-layout diagnostic, distinct from creation tools like create_responsive_variant or convert_to_responsive. However, it does not explicitly differentiate itself from other audit/check siblings such as check_consistency or audit_accessibility, so it stops short of full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer this tool over alternatives, what prerequisites apply (e.g., nodeId should be a frame), or when the breakpoints parameter should be supplied. Sibling tools like set_breakpoint, convert_to_responsive, and annotate_responsive are not mentioned, leaving the agent to infer the tool's role from its name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_design_systemB
Scan a file and extract the implied design system: colors, fonts, spacing, components.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | No | Page to scan |
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 implies a read-only 'scan/extract' operation but does not explicitly state that it does not modify the file, what scope it covers (page vs. entire file), or what the returned result looks like.
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 concise, front-loaded sentence with no wasted words. It conveys the action and the key output categories in under fifteen 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 single-parameter tool, the description is mostly adequate, but no output schema exists and the description does not explain return structure, the optional nature of pageId, or what happens when pageId is omitted. The 'file' vs. 'pageId' wording also introduces slight 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?
The schema already documents the single parameter with 100% coverage, so the description need not add much. It adds no extra semantic detail beyond the schema, and there is a minor mismatch between the description's 'file' and the schema's 'pageId'.
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 resource ('a file') and lists the extracted outputs ('colors, fonts, spacing, components'). It clearly communicates what the tool does, though it doesn't explicitly differentiate itself from similar siblings like extract_components or get_design_craft_guide.
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 alternatives such as export_design_specs, get_local_styles, or extract_components. There are no conditions, exclusions, or recommended contexts provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshotB
Take a screenshot of the current canvas view or a specific node.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Scale factor (default: 2) | |
| nodeId | No | Node to screenshot (uses viewport if omitted) |
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 states the action and target but does not reveal the output format, whether the operation is read-only, resolution behavior, or any side effects. The term 'screenshot' weakly implies an image result, but that is not enough detail for a tool with no annotation safety net.
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 contributes to identifying what the tool does and what it operates on.
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 optional parameters and no nested objects, the description plus schema is sufficient to invoke it correctly. It does not describe the return value or output format, and there is no output schema, but the noun 'screenshot' makes an image result the natural expectation, so this is a minor gap rather than a serious one.
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 scale and nodeId. The description adds a small amount of context by distinguishing viewport capture from node capture, but it does not meaningfully extend the parameter semantics 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 uses a specific verb ('Take') and names a clear resource ('current canvas view or a specific node'), so an agent can understand the tool's core function. It falls short of a 5 because it does not distinguish this from similar capture/export siblings like export_as_png or export_as_svg.
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 when to use the tool: when a visual capture of the current view or a particular node is needed. However, it offers no explicit when-not-to-use guidance or references to alternative tools, which is a gap given the large set of export and capture siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_libraryA
Search for components across local file and team libraries.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| scope | No | Search scope (default: ALL) |
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. Beyond implying a read-oriented search action, it does not describe matching behavior, result shape, limitations, or whether team libraries require additional permissions or 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 front-loaded sentence with no filler. Every word contributes to the core purpose and scope.
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 low complexity, a fully described schema, and no output schema, the one-sentence description is minimally adequate. Yet it leaves out behavioral details and when to choose this over nearby search/list siblings, so it is not fully complete for safe autonomous 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%, with both 'query' and 'scope' documented in the schema itself. The description adds no extra parameter meaning, but the baseline of 3 applies because the schema already carries the parametric context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a clear resource ('components'), and a precise scope ('across local file and team libraries'). This semantically distinguishes it from sibling tools like list_components and list_team_libraries, which focus on listing rather than searching.
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 clear context for when to use the tool: searching for components across local and team libraries. However, it does not explicitly state exclusions or name alternative tools such as find_nodes or list_components, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_all_by_typeC
Select all nodes of a specific type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Node type | |
| withinId | No | Scope node |
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 does not state whether this mutates the current selection, whether it returns selected nodes, whether hidden or locked nodes are included, or what the default scope is. The word 'select' is ambiguous enough that an agent cannot fully predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant phrasing. It is compact and easy to parse, though it is terse enough to omit useful behavioral and scoping 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?
For a tool with optional parameters, no annotations, and no output schema, the description is too thin. An agent cannot determine what the function returns, what the default scope is, or whether calling it changes the current selection. This is a meaningful gap for a mutating-looking selection 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 schema already describes both parameters with 100% coverage: 'type' has an enum of node types and 'withinId' is described as 'Scope node.' The description adds no new parameter details beyond the concept of 'specific type,' so the schema carries the burden and 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 clearly states the verb and resource: 'Select all nodes of a specific type.' It identifies the selection criterion and the tool's function, making it easy to understand what it does. However, it does not explicitly differentiate itself from similar siblings like find_nodes, set_selection, 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?
No guidance is given on when to use this tool versus alternatives, nor does it explain preconditions or exclusions. The description implies basic usage but does not mention when withinId should be used, what happens if it is omitted, or how this compares to find_nodes or set_selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_annotationC
Create or update an annotation with markdown support.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Annotation text (markdown supported) | |
| nodeId | Yes | Node to annotate |
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 behavior. It reveals a write operation and markdown support, but does not state whether updates replace all existing annotation text, whether there are permissions/requirements, whether annotations are attached to specific node types, or what the response looks like.
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, front-loaded with the action and resource. It avoids fluff, though it could earn more value by adding a usage hint or clarifying the update semantics without adding much length.
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 two-parameter write tool with no output schema and no annotations, the description is thin. It does not clarify overwrite behavior, scope, or required context. Given the large sibling list and the presence of related annotation tools, more context is needed to invoke 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 description coverage is 100%, so the schema already documents both parameters. The description's mention of markdown support adds small context about the text format (markdown), but it does not explain what nodeId accepts beyond 'Node to annotate'. The description adds a bit of value but does not compensate for the minimal 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 'Create or update an annotation with markdown support' states a clear verb (create/update) and resource (annotation), and specifies markdown support. It distinguishes somewhat from the sibling get_annotations, but not as sharply as it could—it doesn't clarify the target object (nodeId) or the difference from related annotation 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 or related operations. There is no mention of whether nodeId refers to a node, page, or other entity, or whether existing annotations are overwritten. An agent would have to infer usage from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_auto_layoutB
Configure auto-layout on a frame. All spacing is 8px grid-snapped.
| Name | Required | Description | Default |
|---|---|---|---|
| gap | No | Gap between children | |
| nodeId | Yes | Target node ID | |
| padding | No | Uniform padding | |
| direction | No | Direction | |
| paddingTop | No | ||
| paddingLeft | No | ||
| paddingRight | No | ||
| paddingBottom | No | ||
| counterAxisAlignItems | No | Cross axis | |
| counterAxisSizingMode | No | Cross sizing | |
| primaryAxisAlignItems | No | Main axis | |
| primaryAxisSizingMode | No | Main sizing |
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 adds one useful behavioral fact: 'All spacing is 8px grid-snapped.' However, it does not explain side effects, whether non-frame nodes are rejected, whether omitted parameters reset existing values, or what happens when values are not multiples of 8.
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, front-loaded with the action and followed by a useful constraint. There is no redundant repetition of schema information or filler content.
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 12 parameters, no annotations, and no output schema, two sentences are insufficient. It lacks defaults, enum guidance, frame-type prerequisites, and any explanation of how the layout configuration interacts with existing frame settings or the sibling set_layout_sizing 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 67%, so the schema already documents many parameters. The description adds meaningful context for spacing parameters by stating the 8px grid-snapping rule, which is not present in the schema, but it does not clarify the enum semantics or the distinction between the various padding fields beyond what their names imply.
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 clear verb-and-resource structure: 'Configure auto-layout on a frame.' It is specific enough to identify the tool's purpose and distinguish it from generic layout or sizing tools, though it does not explicitly name or contrast with related siblings like set_layout_sizing.
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 set_layout_sizing, set_constraints, or resize_node. The only contextual hint is 'on a frame', but no exclusions, prerequisites, or conditions are provided, leaving selection primarily to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_blend_modeD
Set blend mode.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| blendMode | No | Blend mode |
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. 'Set blend mode' only restates the implied operation and does not disclose whether the change is persistent, whether blendMode is effectively required despite the schema listing only nodeId as required, what happens if blendMode is omitted, or any error conditions. This is effectively no behavioral 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?
At three words, the description is under-specified rather than concisely informative. It repeats the tool name and contains no structural value such as scope, conditions, or examples.
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, no annotations, and only a tautological description, an agent cannot determine how to correctly invoke the tool, whether blendMode is optional, what the target node refers to, or what result to expect. The extensive sibling list provides no disambiguating help.
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 is described as 'Target node' and blendMode as 'Blend mode'. The description adds no extra parameter meaning, but the high schema coverage sets the baseline at 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 'Set blend mode.' merely restates the tool name set_blend_mode, making it a tautology. It identifies the target property but gives no scope, context, or differentiation from sibling set_* tools such as set_fill or set_opacity.
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 the many sibling set_* operations. No conditions, exclusions, prerequisites, or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_breakpointB
Resize a frame to a standard breakpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame to resize | |
| breakpoint | No | Breakpoint |
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 conveying behavior. It only says 'Resize a frame,' revealing a mutation but not disclosing what happens to the frame's current dimensions, position, constraints, or whether any responsive behavior is actually being set behind the scenes.
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 short sentence with no filler. Every word contributes to the purpose, making it easily scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers both parameters, so basic invocation is possible. However, with no annotations and no output schema, the description omits side effects, the meaning of 'standard breakpoint' dimensions, and any differentiation from related resize and responsive tools.
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 applies. The description adds little beyond the schema: nodeId is already described as 'Frame to resize,' and breakpoint is already an enum. The word 'standard' is the only slight addition.
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 action ('Resize') on a specific resource ('a frame') to a known target ('a standard breakpoint'). It is clear and not a tautology, though it does not explicitly differentiate from the sibling tool resize_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?
The purpose implies usage when a frame should be set to a standard breakpoint size, but there is no explicit guidance about when to prefer this over resize_node, set_constraints, or responsive-related siblings. The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_clip_contentB
Toggle clip content on a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| clip | Yes | Clip content | |
| nodeId | Yes | Frame node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Toggle clip content on a frame' does disclose that this is a state-changing operation on a frame's clip property. However, it does not mention side effects, return value, or that 'clip' is a boolean to be set explicitly rather than toggled from its current state.
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 redundant wording. For a two-parameter boolean setter, 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 simple tool shape and 100% schema coverage, the description is minimally viable for constructing a correct call. However, it lacks usage guidance and behavioral nuance around the boolean parameter, and with no output schema the return behavior is entirely unstated.
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 semantic detail beyond what the schema already provides: 'clip' is described as 'Clip content' and 'nodeId' as 'Frame node.' The phrase 'on a frame' merely mirrors 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 uses a specific verb-resource pair ('Toggle clip content') and names the target ('on a frame'), so an agent can identify the operation. It is distinct from the many set_* siblings because 'clip content' is a unique resource, though it does not explicitly contrast with any sibling or clarify that the boolean parameter sets rather than inverts the value.
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 set_fill, set_overflow, set_visibility, or similar setters. The only context is 'on a frame,' and 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_constraintsC
Set responsive constraints on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node ID | |
| vertical | No | Vertical constraint | |
| horizontal | No | Horizontal constraint |
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 does not mention whether the node must already be in an auto-layout container, whether existing constraints are overwritten, or what side effects occur on the node's position or size.
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 repetition. It is appropriately sized for a simple 3-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is too sparse to give an agent complete confidence about behavior. It does not explain what happens when only one constraint axis is provided, whether constraints apply only within a parent frame, or what the node layout must look like for this call to succeed.
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 even though the description adds little beyond the schema. The description's mention of 'responsive constraints' gives some context to the vertical and horizontal parameters, but it does not enrich the meaning of individual enum options beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action ('Set') and resource ('responsive constraints') on a node, and the enum values (MIN, CENTER, MAX, STRETCH, SCALE) make the intent reasonably clear. It does not explicitly differentiate from responsive-related siblings such as set_layout_sizing or convert_to_responsive, so it falls short of a perfect score.
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 alternatives like set_layout_sizing or create_responsive_variant. The description simply states what it does with no context about prerequisites, scenarios, or excluded cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_corner_radiusC
Set corner radius with per-corner control.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| radius | No | Uniform radius | |
| topLeft | No | ||
| topRight | No | ||
| bottomLeft | No | ||
| bottomRight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden, but it only states the mutation ('set') and per-corner control. It does not disclose what happens when both radius and per-corner values are supplied, units, supported node types, or side effects/reversibility.
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 is lean, front-loaded, and free of filler. However, for six parameters and no annotations, it is so terse that it omits material guidance an agent would need to invoke the tool correctly across parameter combinations.
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 six-parameter mutation tool with no output schema and no annotations, the description should explain uniform radius vs per-corner behavior, unit expectations, and when to prefer the batch sibling. The current description is too sparse for reliable invocation in all cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%; nodeId and radius have descriptions, but topLeft, topRight, bottomLeft, and bottomRight are empty. The phrase 'per-corner control' offers a hint, but it does not explain relationships between radius and corner values, defaults, or units, so the description fails to compensate for the low 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 uses a specific verb and resource ('Set corner radius') and adds 'per-corner control' to signal granularity. It is clear what the tool does, though it does not explicitly differentiate it from the sibling batch_set_corner_radius or mention that it applies to a single 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?
There is no guidance on when to use this tool versus batch_set_corner_radius or other styling tools. The description only implies usage by naming the operation; it does not state when uniform radius should be used instead of per-corner values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_effectsC
Add shadows, blur, or background blur effects.
| Name | Required | Description | Default |
|---|---|---|---|
| blur | No | Layer blur amount | |
| nodeId | Yes | Target node ID | |
| preset | No | Use preset shadow size | |
| shadow | No | { color, offsetX, offsetY, blur, spread } | |
| innerShadow | No | { color, offsetX, offsetY, blur, spread } | |
| backgroundBlur | No | Background blur (glassmorphism) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only says 'Add'. It does not disclose whether the operation replaces existing effects or appends to them, how preset interacts with shadow, or whether multiple effect types can be set in one call.
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 eight-word sentence that front-loads the key effect types. Every word adds signal, and there is no redundant boilerplate.
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 six parameters, one enum, nested objects, no output schema, and no annotations, but the description only names the effect categories. Missing context includes parameter combination rules, effect replacement behavior, and usage boundaries between this tool and its effect-related siblings.
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 parameter meaning beyond what the schema already provides; it does not explain the relationship between preset and shadow or the nested structure 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 gives a specific verb and resource: it adds shadows, blur, or background blur effects to a node, which separates it from fill/stroke/transform tools. It does not, however, explain how it differs from the overlapping siblings apply_backdrop_blur or create_shadow_system.
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 set_effects versus apply_backdrop_blur, create_shadow_system, set_blend_mode, or the remove_effects tools. There are no exclusions, prerequisites, or alternative routing clues in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fillC
Set fill on a node. Supports solid, linear gradient, radial gradient, and multiple fills.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Fill type (default: SOLID) | |
| color | No | Solid fill hex color | |
| fills | No | Array of fill objects for multiple fills | |
| nodeId | Yes | Target node ID | |
| opacity | No | Fill opacity 0-1 | |
| gradient | No | { angle, stops: [{ position: 0-1, color: "#hex" }] } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It implies a mutating action but does not state whether the operation replaces existing fills, merges them, or how it applies when multiple fill objects are supplied. Existing fill behavior and side effects are left completely unspecified.
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 immediately states the action, then summarizes supported fill kinds. Every word contributes to the 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?
The tool has 6 parameters, nested objects, no output schema, and close sibling tools, so the description must do more. It fails to explain how parameters interact (e.g., when to pass fills vs color vs gradient), whether multiple fills replace the existing fill list, or what the result/return value is. This is insufficient for correct invocation in ambiguous cases.
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 a small amount of context by naming solid, linear, radial, and multiple fills, which maps loosely to the type enum and fills parameter. However, it also omits ANGULAR and DIAMOND which the schema lists, and it does not clarify relationships between color, gradient, fills, and opacity.
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 ('Set fill on a node') and enumerates supported fill families (solid, linear gradient, radial gradient, multiple fills). It does not explicitly distinguish itself from the sibling set_gradient_fill or set_image_fill, but the core purpose is 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 usage guidance is provided. The description does not say when to use this tool versus set_gradient_fill or set_image_fill, nor does it mention prerequisites, exclusions, or preferred scenarios. The agent must infer selection purely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fixed_positionA
Pin a layer so it stays fixed during scroll (sticky nav, floating button).
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to pin | |
| position | No | Fixed position |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the core effect (pinning during scroll) but does not mention potential side effects such as overriding constraints, layout behavior, stacking order, or prerequisites like a scrollable parent. Adequate but 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?
A single, front-loaded sentence that states the action, the effect, and relevant examples. Every word contributes to understanding the tool, 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?
The tool is simple with only two parameters and no output schema, and the description plus schema provide enough information for correct invocation. Minor gaps like the default position when omitted or interaction with layout constraints keep it from being 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 the schema already documents both parameters adequately. The description adds no extra parameter-level meaning beyond what the schema provides; the position parameter is left entirely to the enum values.
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?
Uses a specific verb ('Pin') with a clear resource ('layer') and a concrete behavioral outcome ('stays fixed during scroll'). The examples ('sticky nav, floating button') make the tool's purpose immediately obvious and distinguish it from layout/constraint siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool: when a layer should remain fixed during scrolling. It also gives concrete use cases, but does not explicitly mention alternatives or when not to use it, so it stops short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_focusA
Focus viewport on a specific node.
| Name | Required | Description | Default |
|---|---|---|---|
| zoom | No | Zoom level 0.1-10 | |
| nodeId | Yes | Node to focus on |
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 states the high-level effect and does not clarify whether selection changes, what happens if zoom is omitted, or how invalid node IDs 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?
A single sentence with no filler. The action is front-loaded and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple viewport operation, this is minimally viable, but it omits useful context such as whether focus changes selection, what the default zoom behavior is, and whether the tool returns any confirmation. With no output schema and no annotations, slightly more detail 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?
Schema description coverage is 100%, with both parameters already documented. The description adds little beyond framing the operation as viewport-focused, which is the expected baseline when the schema handles parameter 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 states a specific action ('Focus viewport') and target ('a specific node'), making it easy to distinguish from siblings like set_selection or set_visibility. It clearly identifies both the operation and the object it affects.
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 is implied: use this when the agent needs to move the viewport to a node. However, there is no explicit guidance about when to prefer this over alternatives such as set_selection, nor any exclusions or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_gradient_fillA
Set a gradient fill with a simple angle + 2 colors API.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | Gradient angle in degrees (default: 180) | |
| nodeId | Yes | Target node | |
| endColor | Yes | End color hex | |
| startColor | Yes | Start color hex |
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 does not explain whether the gradient replaces the existing fill, what happens to unsupported node types, or what the tool returns. Mutation side effects are not 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?
One concise, front-loaded sentence that conveys the operation, the resource, and the API's simplicity without filler. 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 four-parameter tool with fully documented schema, the description is serviceable: an agent knows what to call and with which parameter categories. However, with no annotations and no output schema, it lacks important behavioral context such as side effects and return 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?
Schema description coverage is 100%, so the schema already documents all parameters perfectly. The description adds minimal semantic value beyond listing 'angle + 2 colors', which merely echoes the schema structure.
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 identifies the exact resource ('gradient fill'), plus the distinctive API shape ('simple angle + 2 colors'). This clearly differentiates it from siblings like set_fill 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 tool's purpose implies when to use it: whenever a gradient fill with two colors and an angle is needed. However, it does not explicitly state when not to use it or mention alternatives like set_fill for solid fills or set_image_fill for image fills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_image_fillA
Set an image fill on a node from URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Image URL | |
| nodeId | Yes | Target node ID | |
| scaleMode | No | Scale mode (default: FILL) |
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 only says what the tool does, not whether it replaces existing fills, how it handles invalid URLs, whether image loading is synchronous, or any side effects beyond the basic mutation.
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 or redundant wording. Every word earns its place, and the core operation is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema fully documents all parameters, but with no annotations and no output schema, the description leaves out useful operational context like whether the image fill replaces existing fills or whether the URL must be publicly accessible. Adequate for basic invocation, but not complete for confident autonomous 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%, with each parameter already documented meaningfully: nodeId is 'Target node ID', url is 'Image URL', and scaleMode has an enum plus default. The description adds no additional parameter semantics beyond reinforcing the URL source.
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 specific resource ('an image fill'), and the source mechanism ('from URL'). It clearly distinguishes this from sibling tools like set_fill or set_gradient_fill by specifying the image-fill 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?
The description implies the tool should be used when an image fill is desired, but it does not explicitly state when to choose this over alternatives such as set_gradient_fill or set_fill. No exclusion criteria or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layout_sizingB
Set how a child behaves in auto-layout.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Child node | |
| vertical | No | Vertical sizing | |
| horizontal | No | Horizontal sizing |
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, but it only restates the operation without explaining effects, limitations, default behavior, or side effects. It does not state what happens when vertical or horizontal are omitted, whether FILL requires a parent auto-layout, or whether this mutates the node in place.
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 wasted words and gets directly to the point. It is appropriately sized for a simple tool, though it lacks structured elaboration that could have been added without much cost.
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 annotations, no output schema, and a design-domain tool with enum parameters, the description is too thin to fully support correct invocation. The agent is left without definitions of the sizing modes, prerequisites, or consequences of partial parameters, making this incomplete for reliable 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%, so the schema already documents nodeId, vertical, and horizontal at a basic level. The description adds no meaning beyond the schema, and the enum values FIXED, HUG, and FILL are not explained, so the agent must infer their semantics from domain knowledge.
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 how a child behaves in auto-layout' clearly identifies the verb and resource, and the context of auto-layout distinguishes it from generic sizing tools. It is slightly vague because 'behaves' could refer to constraints or layout behavior, but the title and schema parameters make the sizing 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?
The description implies the tool is for child nodes within an auto-layout parent, giving a clear contextual trigger. However, it provides no explicit guidance about when to prefer this tool over related siblings like set_auto_layout, set_constraints, or resize_node, and no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_opacityC
Set node opacity.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| opacity | Yes | Opacity 0-1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure, but it only states the operation itself. It does not reveal what happens with out-of-range opacity values, whether changes are reversible, whether the node must exist, or any rendering side effects. For a mutation 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?
A single clear sentence with no wasted words. It is front-loaded with the core purpose and is efficient for a simple 2-parameter tool, though not as sparse as to become tautological.
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 2-parameter tool with full schema coverage, the description is minimally adequate. However, as a mutating setter with no annotations and no output schema, it omits behavioral details such as range enforcement, reversibility, and node-existence requirements.
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 documented as 'Target node' and opacity as 'Opacity 0-1'. The description adds no meaning beyond what the schema already provides, so the baseline score of 3 is correct.
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 — 'set' plus 'node opacity' — making the tool's purpose unambiguous. The property 'opacity' is clearly distinct from sibling setters like set_visibility, set_blend_mode, and set_fill, though the description doesn't explicitly name that differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or context about typical scenarios, so the agent must infer usage purely from the tool name and the schema's 0-1 range.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_overflowB
Set overflow clipping on a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| clip | Yes | Clip content | |
| nodeId | Yes | Frame node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It does convey the basic action—toggle overflow clipping on a frame—but it does not explain the visual consequence (e.g., content outside the frame is hidden when clip is true) 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 a single, front-loaded sentence with no filler: it names the action, the property, and the target. Every word earns its place for such a simple setter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter boolean setter with full schema coverage, the description is minimally viable on its own. However, it lacks any usage differentiation from similar siblings and provides no behavioral context beyond the literal action.
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 both parameters clearly: nodeId is 'Frame node' and clip is 'Clip content'. The description adds no additional parameter-level meaning, so the baseline of 3 applies due to 100% schema description 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 states a specific action ('Set overflow clipping') and target ('on a frame'), so the core function is clear. However, it does not differentiate from the closely related sibling set_clip_content, which likely controls the same or overlapping property.
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, when not to, or which alternatives to prefer. Given the sibling set_clip_content, the description leaves a real ambiguity unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_rotationC
Rotate a node.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | Yes | Rotation in degrees | |
| nodeId | Yes | Target node |
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 says 'Rotate a node' with no detail on whether rotation is relative/absolute, whether it affects children, or any side effects. The agent is left completely uninformed about 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 short sentence, which is concise and not verbose. However, it lacks substance and earns its place only minimally; it is not overly long, so a mid score is appropriate.
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, no annotations, and only two simple parameters, the description should still explain usage context, expected effects, or constraints. It provides none, leaving the agent with insufficient information to use the tool correctly in a complex design environment.
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 both parameters (angle in degrees, nodeId as target node), so the baseline of 3 applies. The description itself adds no extra meaning 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 states a clear verb ('Rotate') and resource ('a node'), so the basic purpose is understandable. However, it does not distinguish itself from the many sibling set_* tools, and the phrase is essentially a restatement of the tool name with minimal added value.
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, no mention of prerequisites, or any context for selecting it among the numerous sibling tools. The description offers no indication of appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_selectionB
Select nodes and optionally scroll viewport to them.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeIds | Yes | Node IDs to select | |
| zoomToFit | No | Scroll and zoom to show selection (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the core action and the optional viewport scroll, but it does not mention whether the current selection is replaced, how invalid nodeIds are handled, or that zoomToFit defaults to true (the schema states the default, not the description). No contradiction with annotations exists.
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 phrase communicates either the purpose or a key optional behavior, making it highly scannable for an agent.
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 2-parameter tool with full schema coverage and no output schema, the definition is minimally viable. However, it lacks guidance about selection replacement, invalid IDs, and when to prefer sibling tools, leaving clear gaps that the agent must infer.
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: 'optionally scroll viewport to them' loosely maps to zoomToFit, but the schema already says 'Scroll and zoom to show selection (default: true)'. The nodeIds parameter is fully described 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 states a specific verb ('Select') and resource ('nodes'), and adds the optional viewport-scrolling behavior. It is clear enough to distinguish from most style/creation siblings, though it does not explicitly differentiate itself from similarly named select_all_by_type 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?
There is no guidance on when to use this tool versus alternatives such as get_selection or select_all_by_type, and no mention of prerequisites or exclusions. The usage context is only implied by the phrase 'Select nodes', which is not enough for an agent choosing among many selection-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_strokeB
Add border/stroke to a node.
| Name | Required | Description | Default |
|---|---|---|---|
| align | No | Stroke alignment (default: INSIDE) | |
| color | No | Stroke color hex | |
| nodeId | Yes | Target node ID | |
| weight | No | Stroke weight (default: 1) | |
| opacity | No | Stroke opacity | |
| dashPattern | No | Dash pattern array, e.g. [4, 4] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only restates the basic action. It does not disclose whether an existing stroke is overwritten, what happens when only nodeId is passed, that this is a mutating operation, or how unspecified optional properties behave.
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, direct sentence with no filler; the core purpose is stated immediately and 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?
The description is too thin for a six-parameter mutation tool with no annotations and no output schema. The important qualification that nodeId is the only required field is left entirely to the schema, and the agent gets no context about the stroke being updated vs added or about parameter interactions such as dashPattern with weight.
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 all six parameters with descriptions, names, a required marker for nodeId, and defaults for align and weight, so the description need not repeat this. The description itself adds no parameter-level meaning, which is acceptable given 100% 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 uses a specific verb ('Add') and a clear resource ('border/stroke to a node'), immediately distinguishing this tool from fill- and effect-oriented siblings such as set_fill and set_effects. It fully conveys what visual property is being modified.
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 choose set_stroke over related alternatives, nor any mention of when not to use it. Even though sibling names hint at related tools, the description leaves all selection reasoning to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_contentA
Update text content of a text node without changing styles.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | New text content | |
| nodeId | Yes | Text node ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses a meaningful behavioral trait: styles are preserved ('without changing styles'). It does not mention side effects like undo behavior or error cases, but the main side-effect boundary is clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence with no filler. It front-loads the action and resource, then adds the most relevant constraint. 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 two-parameter tool with no output schema and no annotations, the description covers the core action, target resource, and a key behavioral boundary. It is not exhaustive about failure modes or return values, but it is sufficient for correct basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (nodeId and text), with 100% coverage. The description adds only the context that text updates are style-preserving, not additional parameter-level detail, so the 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 uses a specific verb ('Update') and resource ('text content of a text node'), and adds a clear scope boundary ('without changing styles'). This distinguishes it from style-focused siblings like style_text_range and set_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 this tool is for text-only changes and explicitly excludes style changes, but it does not name alternative tools or provide explicit when-to-use/when-not-to-use guidance. An agent would have to infer when to choose this over siblings like batch_replace_text or create_text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transitionB
Set the default transition for all prototype links on a frame.
| Name | Required | Description | Default |
|---|---|---|---|
| easing | No | Easing (default: EASE_OUT) | |
| nodeId | Yes | Frame node | |
| duration | No | Duration ms (default: 300) | |
| transition | No | Transition |
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 behavioral disclosure burden. It states the action but does not clarify whether this overrides existing per-link transitions, whether it affects only future links or retroactively applies to all current links, or what side effects occur. The ambiguity of 'default transition' vs 'all prototype links' is a notable gap for a mutating 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?
A single sentence that is short, grammatically clear, and front-loaded with the main verb and target. No filler or redundant explanations.
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 four parameters and no output schema, the description and schema leave important operational context unclear: whether this updates all existing links or only sets a default for future ones, whether the transition parameter is mandatory, and what happens if some parameters are omitted. The description is too skeletal to fully guide correct invocation without additional reasoning.
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 each parameter having at least a basic description and enums providing allowed values. The tool description adds little semantic value beyond confirming the operation involves a frame and transition. Baseline 3 is appropriate because the schema already carries the parameter 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?
Describes a specific action ('Set the default transition') on a specific resource ('all prototype links on a frame'). It clearly distinguishes itself from sibling tools like create_prototype_link or remove_prototype_link because it targets the default transition for all links on a 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 implies usage: use it when you want to set the default transition for all prototype links on a frame. However, it does not explicitly state when to choose this over related tools such as create_prototype_link, create_flow, or remove_prototype_link, nor does it mention 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.
set_visibilityB
Show/hide a node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Target node | |
| visible | Yes | Visibility |
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 only states the basic show/hide effect and does not mention whether the operation mutates state, whether visible=true means shown, any permission needs, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler and the action front-loaded. For a simple two-parameter setter, this is appropriately compact.
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 mutation with no output schema, this is borderline adequate: the core operation is clear and the schema documents both parameters. However, there is no behavioral context, no mention of single-node scope, no return behavior, and no alternative routing, leaving notable 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 description coverage is 100%, so nodeId and visible are already documented. The 'show/hide' wording adds a small clarifying mapping between the boolean and its effect, but it does not go beyond the schema's own 'Visibility' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Show/hide a node' clearly identifies the action and target. It does not explicitly distinguish itself from sibling tools like batch_set_visibility, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as batch_set_visibility or lock_node. No conditions, exclusions, or context about single-node vs batch usage are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort_pagesC
Sort pages alphabetically or by custom order.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Sort order | |
| customOrder | No | Array of page IDs in desired order |
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 states the action but does not reveal what sorting does to the document—whether it reorders the page list, persists, or is reversible—nor what happens when order=CUSTOM is chosen without customOrder. For a mutating operation 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 efficient sentence with no wasted words, front-loading the verb and resource. It is well-sized for what it states, though the brevity comes at the cost of behavioral and dependency 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?
With no annotations, no output schema, and an ambiguous CUSTOM/customOrder dependency, the description leaves the agent without key invocation details. It does not clarify the scope of the sort (document-level page list), the consequences of the mutation, or how customOrder interacts with order. The definition is not complete enough 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?
Schema description coverage is 100%, so both parameters are already documented in the input schema. The description adds minimal meaning beyond echoing the alphabetical/custom modes already exposed by the enum, and it does not clarify the dependency between order=CUSTOM and customOrder. The baseline of 3 is appropriate given the high 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 uses a specific verb ('sort') and resource ('pages') and names the two modes: alphabetical or custom order. This clearly communicates the tool's function. However, it does not explicitly differentiate itself from related siblings like reorder_node, so it earns a 4 rather than a 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 such as reorder_node, merge_pages, or page_overview. There are no prerequisites, scope conditions, or when-not-to-use instructions. An agent must infer appropriate usage 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.
stack_for_mobileA
Convert horizontal layouts to vertical stacking for mobile.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Frame with horizontal layout |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It communicates the core transformation (horizontal to vertical stacking), but does not disclose side effects, whether the operation mutates or replaces layout, what happens to spacing or sizing, or whether the change affects only the selected node or its children.
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 carries meaning and the core operation is stated immediately.
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 single-parameter tool with no output schema, the description is minimally adequate but not fully complete. It explains the main operation but lacks usage alternatives, side-effect disclosure, and enough behavioral detail to support confident invocation without further inspection.
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 covers the single parameter with 100% description coverage, so the baseline applies. The description adds little beyond schema's 'Frame with horizontal layout' guidance, and it does not clarify the parameter's format or additional constraints.
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 action ('Convert'), resource ('horizontal layouts'), and outcome ('vertical stacking for mobile'). It is clear and conceptually distinct from the many responsive-layout siblings, though it does not explicitly name or differentiate itself from those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a horizontal layout needs to become a vertical stacked layout for mobile. However, it gives no explicit guidance about when not to use it or which alternatives (e.g., convert_to_responsive, generate_mobile, set_breakpoint) might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
style_text_rangeB
Apply mixed styling within a text node. Style specific character ranges differently.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Text node ID | |
| ranges | Yes | Array of { start, end, fontSize, fontWeight, color, textDecoration } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden of behavioral disclosure. 'Apply' implies mutation, but the description never states whether existing character formatting is replaced or merged, how overlapping ranges are resolved, or what happens to style properties not listed in a range. For a mutation 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?
Two sentences totaling roughly 14 words with zero filler. The primary action is front-loaded in the first sentence, and the clarifying range-level detail follows immediately. 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 2-param mutation with no output schema and nested range objects, the description plus schema is minimally viable for basic invocation. Missing context includes range merge/overlap semantics, whether the font must already be available, and return value expectations—none fatal, but an agent must infer them.
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 genuine meaning by clarifying that start/end in the ranges array refer to character offsets within the text node—information the terse schema description ('Array of { start, end, fontSize, fontWeight, color, textDecoration }') does not convey.
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') and resource ('mixed styling within a text node'), and the second sentence adds the key capability: styling specific character ranges differently. This implicitly distinguishes it from whole-node styling siblings like set_text_content and batch_set_font, though it never names an alternative explicitly.
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?
Usage context is implied: use this when different parts of one text node need different styling. However, there is no explicit when-to-use/when-not-to-use guidance, no mention of alternatives (e.g., batch_set_font for whole-node changes, set_text_content for content), and no prerequisites such as font availability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_color_paletteC
Generate a color palette from a single brand color.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode (default: both) | |
| brandColor | Yes | Brand color hex |
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 states that a palette is generated; it does not disclose whether this mutates the document, returns a palette, creates styles, or how the 'mode' affects behavior. This is minimal and leaves key behavioral traits unspecified.
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 wasted words, and the primary action and input are front-loaded. It is appropriately sized for a tool with only two simple 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?
There is no output schema and no annotations, yet the description does not explain return shape, side effects, or how mode is used. For an agent to invoke this tool confidently, more context is needed about what 'generate' produces and when this tool should be chosen over similar palette-related siblings.
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 'brandColor' as a hex value and 'mode' as dark/light/both. The description adds little beyond 'single brand color', so it does not exceed the baseline value 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 states a clear verb ('Generate'), a resource ('color palette'), and an input constraint ('from a single brand color'). It is specific enough to convey the core operation, but it does not differentiate this tool from the very similarly named sibling 'color_palette_generate'.
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 when-to-use guidance, no exclusions, and no mention of alternatives. With siblings like 'color_palette_generate' and 'export_color_palette', an agent has no basis for deciding when this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_improvementsC
AI-powered design improvement suggestions based on the design intelligence engine.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node to analyze |
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 says the tool is AI-powered but does not disclose whether it mutates, what it returns, latency, permissions, or failure modes. The phrase 'based on the design intelligence engine' gives minimal context but not enough for an agent to predict 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 one short sentence and is easily scanned. It is concise, though 'AI-powered' and 'based on the design intelligence engine' are somewhat redundant filler rather than high-value operational content.
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 is thin for a tool with no output schema and no annotations. It does not explain what the suggestions look like, whether they are returned as text or structured data, or how the tool relates to the many similar audit/suggestion/check tools. An agent has too little context to call it confidently.
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 the only parameter,nodeId, as 'Node to analyze'. The description adds no extra parameter-level meaning, so the baseline 3is 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 identifies the tool's purpose: generating AI-powered design improvement suggestions. However, it does not explicitly say the suggestions target a node or how they differ from more specific sibling tools like suggest_color_palette or suggest_type_scale, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as detect_inconsistencies, lint_design, or compare_to_system. An agent must infer usage from the schema and sibling names, which is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_type_scaleC
Generate a typography scale.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | Scale ratio (default: major2) | |
| baseSize | No | Base font size (default: 16) |
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, but 'Generate a typography scale' does not say whether this is a read-only calculation that returns values or a mutation that writes/applies a scale to the document. It does not describe the result shape (array of font sizes? step names?) or whether it depends on the current selection, yet sibling type_scale_apply implies a separate tool does the applying — an agent cannot predict side effects or output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four words with zero redundancy, and the core action is front-loaded. However, the brevity is under-specification rather than disciplined conciseness: for a tool with no annotations and no output schema, the single sentence is too thin to carry the necessary context, so while efficient, it is not appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 optional params) and the schema fully covers inputs, but the description does not say what the generated scale consists of or how it is returned, and there is no output schema to fill that gap. It also fails to clarify the relationship to type_scale_apply (does this apply or just suggest?), so an agent can guess the call shape but cannot confidently predict the outcome or side effects.
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 ratio (with enum values, default major2) and baseSize (default 16) are described in the input schema. The description adds no parameter-level detail, but with full schema coverage the baseline of 3 applies — the schema does the heavy lifting and the agent has what it needs to construct the call.
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 and resource ('Generate a typography scale') and is accurate, but it essentially restates the tool name (suggest_type_scale) with near-synonyms, adding little new information. It does not distinguish the tool from type-related siblings such as type_scale_apply, type_set_hierarchy, or export_typography, any of which could plausibly be described the same way.
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. An agent facing a dense family of type tools (type_scale_apply, type_pair_suggest, type_set_hierarchy, export_typography) gets no decision criteria — for instance, 'use this to compute a scale as a suggestion without applying it; use type_scale_apply to apply one to the selection.' The single sentence provides no context, no exclusions, and no alternative names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_componentC
Swap one component instance for another.
| Name | Required | Description | Default |
|---|---|---|---|
| instanceId | Yes | Instance to swap | |
| newComponentId | Yes | New component ID | |
| preserveOverrides | No | Keep existing overrides (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden, but it only states the bare action. It does not disclose whether existing instance overrides survive the swap (only the parameter description hints at this), whether the operation is reversible, whether instance-specific data is lost, or what happens to the selection after swap. For a mutation 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 seven-word sentence is maximally efficient, front-loads the verb, and contains no filler. It leans toward under-specification, but as a structure/conciseness matter it earns full credit for economy.
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, this is incomplete. An agent cannot tell when to prefer this over batch_swap_component, what the side effects on overrides/children are, or what the operation returns. The minimal phrasing is adequate for intent but not 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%, so the schema already documents all three parameters (instance to swap, new component ID, preserve overrides defaulting to true). The description adds nothing beyond the schema, but at full coverage 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 uses a specific verb ('Swap') and a concrete resource ('component instance'), and the phrase 'one ... for another' signals single-instance scope. It does not explicitly contrast with sibling batch_swap_component or swap_mode, but the singular phrasing gives an agent enough to distinguish the core 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?
No guidance is given on when to use this tool versus alternatives. The sibling list includes batch_swap_component, which performs the same operation in bulk, and detach_instance/reset_overrides, which touch similar concerns; the description offers no routing cues or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_modeA
Switch the active mode on a variable collection.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Mode name to activate | |
| collectionId | Yes | Collection ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only states the operation itself and says nothing about side effects, failure conditions, whether the mode must already exist in the collection, or whether the change persists. For a mutating tool, this is a notable 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 repetition. It states the verb and resource immediately and communicates the core purpose efficiently.
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 low-complexity tool with only two fully documented parameters, the definition is minimally viable. However, with no annotations and no output schema, it would benefit from clarifying that the mode must be a valid mode on the collection and what the effect of switching modes is on variables.
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 parameter descriptions already explain that 'mode' is the mode name to activate and 'collectionId' is the collection ID. The tool description adds little beyond linking these to the concept of an 'active mode' on a variable collection, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Switch'), a specific resource ('variable collection'), and a specific property ('active mode'). It is clearly distinguishable from sibling tools like set_blend_mode or update_variable because it names the variable-collection context explicitly.
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 is implied by the description: use this when you want to change which mode is active on a variable collection. However, there is no explicit guidance about when not to use it or which alternative should be preferred in related scenarios, such as when creating modes or updating collection settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_pageB
Switch to a different page.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID or name |
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 says 'Switch to a different page' and does not reveal whether this changes persistent state, affects the current selection, returns a value, or has any side effects. This is thin for a state-changing navigation 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, front-loaded sentence with no wasted words. It conveys the core action immediately, which is appropriate for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description is minimally viable, but it lacks behavioral and usage context. Since there is no output schema or annotations, a bit more explanation about the effect and when to use it would make the tool meaningfully easier 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%, and the schema already documents pageId as a string with 'Page ID or name'. The description adds no extra parameter detail, but the baseline of 3 applies because the schema handles the parameter semantics 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 action ('Switch') and a clear resource ('a different page'), so an agent can infer this changes the active page context. However, it does not explicitly distinguish this from related page tools like set_focus, page_overview, or list_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?
There is no guidance about when to use this tool versus alternatives, nor any mention of prerequisites such as the page needing to exist or the current document needing to be open. The agent is left to infer the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_auditA
Find every unique text style in a page. Flag off-scale sizes, inconsistent weights, and orphaned styles.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Scope node (page if omitted) |
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 communicates a read-only audit by saying 'Find' and 'Flag,' and it names specific flag categories, but it does not state what the returned output looks like or how scoping works beyond the schema. Some behavior is disclosed, but not fully.
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 short sentences with no filler. The core purpose is front-loaded, and the second sentence lists specific audit outcomes. Every word contributes 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?
This is a simple one-parameter tool, but without an output schema or annotations, the agent still lacks details on the return format or how flags are represented. The description is usable 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 description coverage is 100%, and the nodeId parameter is already documented as 'Scope node (page if omitted).' The description adds no new parameter semantics beyond the same page context, so the 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 uses a specific verb and resource: 'Find every unique text style in a page.' It then adds a clear audit purpose with 'Flag off-scale sizes, inconsistent weights, and orphaned styles,' which distinguishes it from list-only siblings like type_list_styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for typography consistency audits at page level, but it never explicitly says when to prefer this tool over alternatives like type_list_styles, type_check_measure, or type_normalize. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_check_measureA
Check line length (45-75 chars optimal), line-height, and letter-spacing for readability.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Text node or frame to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It clearly indicates a read-only checking operation via the verb 'Check' and mentions specific metrics, but it does not explicitly state that no mutation occurs, nor what the tool returns (e.g., report, pass/fail, 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 with no filler. It immediately states the action and the specific typographic properties, including an optimal character range, making it highly scannable 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 one-parameter check tool with no output schema, the description is nearly complete: it says what is checked and the nodeId parameter is fully documented in the schema. It falls slightly short by not mentioning whether the tool returns recommended fixes or just measurements, but this is a minor gap given the 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 description coverage is 100%: the single parameter nodeId is already documented as 'Text node or frame to check.' The description adds no additional parameter-level semantics beyond the schema, so 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 states a specific action ('Check') and a well-defined resource (line length, line-height, letter-spacing) with a concrete optimal range (45-75 chars). This is specific enough to distinguish it from sibling typography tools like type_audit or type_set_hierarchy, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as type_audit, check_contrast, or measure_distance. The description only defines what it checks, leaving the agent to infer usage context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_create_styleB
Create a local text style from a text node.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Style name | |
| nodeId | Yes | Text node to create style from |
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 indicates a mutating action ('Create') and a 'local' scope, but it does not mention side effects, name conflicts, whether the style is applied to the node, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence containing only essential information, with no filler or redundancy. It is front-loaded and 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?
The tool is simple with only two fully described parameters, so the description plus schema is adequate for basic invocation. However, with no annotations and no output schema, there are still gaps around behavioral expectations, return values, and prerequisites beyond what is minimally stated.
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 both parameters have clear descriptions: 'Style name' and 'Text node to create style from.' The description adds no additional parameter meaning, which is acceptable given the high 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 uses a specific verb ('Create') with a clear resource ('local text style') and source ('from a text node'). It distinguishes itself from color-related style tools like color_create_style by specifying 'text style,' but it does not explicitly contrast with any 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 given about when to use this tool versus alternatives such as color_create_style, type_list_styles, or create_style_guide. The description only states what the tool does, leaving the agent to infer appropriate usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_list_stylesB
List all text styles with usage count.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | No | Scope |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'List' clearly implies a read-only operation, and 'usage count' adds useful output context. However, it does not explain scoping behavior around nodeId, return structure, or any limitations, which would be helpful for a tool that likely traverses a document.
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. The action and resource are front-loaded, and it earns its place without 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?
The tool is simple, but the optional nodeId scope is left vague and no alternative selection guidance is provided. Given there is no output schema and no annotations, the description is adequate for basic invocation but does not fully explain how scope affects the 'all text styles' promise.
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 100% description coverage: nodeId is described as 'Scope.' The description does not add further meaning to that parameter, but because the schema already documents it, the 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 and resource: 'List all text styles with usage count.' It clearly indicates what the tool does and the usage-count detail helps distinguish it from broader style-related siblings, though it does not directly contrast with alternatives like get_local_styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus related siblings such as get_local_styles, type_audit, or type_scale_apply. The description states an action but provides no context about when it is the right choice or what conditions might make another tool preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_normalizeB
Normalize all text to the nearest type scale value. Fix off-scale sizes.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | Scale ratio (default: major2) | |
| nodeId | Yes | Root frame |
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. 'Normalize all text' suggests mutation but does not state what property is changed, whether the operation is reversible, what scope 'all text' covers, or how 'nearest' is determined when values are off-scale.
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 short sentences with no filler. The main action is front-loaded and the second sentence emphasizes the user-facing benefit, making it efficiently scannable.
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 mutating tool with no annotations and no output schema, the description is too thin. It does not clarify whether the tool affects only text nodes under the root frame, whether it also adjusts related properties, or what happens if no off-scale sizes are found.
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 is documented as 'Root frame' and ratio has an enum plus default description. The tool description adds no parameter semantics beyond the schema, 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 clearly states a specific action and target: normalize text to the nearest type scale value and fix off-scale sizes. It is more specific than generic siblings like normalize_design, though it does not explicitly differentiate from closely related type tools like type_scale_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?
The phrase 'Fix off-scale sizes' implies the tool should be used when text sizes fall outside the intended type scale. However, it provides no explicit guidance about when to prefer this over related tools such as type_scale_apply, type_audit, or suggest_type_scale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_pair_suggestB
Suggest font pairings based on currently loaded fonts.
| Name | Required | Description | Default |
|---|---|---|---|
| primaryFont | No | Primary font family |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It reveals only the input source ('currently loaded fonts') and the suggestive/non-destructive nature, but does not disclose what happens when no fonts are loaded, whether suggestions are returned as data or applied directly, 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?
One sentence with no filler, front-loading the core behavior. Every word adds information, and the brevity is appropriate for a tool this simple.
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-optional-parameter suggestion tool with no output schema, the description gives the essential call context: recommend font pairings from loaded fonts. It is adequate at a basic level, though it could name a close sibling and specify the form of the returned suggestions to be 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?
The schema already documents primaryFont at 100% coverage, so the description does not need to restate it. However, the description adds no meaning to the optional primaryFont value, such as how providing one constrains or biases the pairing suggestions.
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 ('suggest') and object ('font pairings'), and adds a clear source scope ('currently loaded fonts'). It distinguishes itself from broader type-scale tools, though it does not explicitly name a sibling 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?
The description implies when to call this tool: to get pairing recommendations among fonts already loaded in the document. However, it gives no explicit conditions, prerequisites, or exclusions relative to related tools like suggest_type_scale or type_scale_apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_replace_fontB
Replace one font family with another across all text nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | Font to replace | |
| nodeId | No | Scope | |
| replace | Yes | Replacement font |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, and the description only states the core action. It does not disclose whether the operation is destructive or reversible, whether it also updates associated text styles, how missing fonts are handled, or what 'all text nodes' means when nodeId is provided. This is lean disclosure 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 focused sentence with no filler. It front-loads the action and resource. However, it is so terse that it sacrifices useful behavioral and usage context, so it is not a perfect score.
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 global replace operation with no output schema and no annotations, the description lacks essential context: scoping behavior with nodeId, interaction with existing text styles, potential side effects, and how this relates to batch font operations. An agent would need to infer too much before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds the context that replacement happens 'across all text nodes,' but it does not clarify the matching semantics of find, the validity requirements of replace, or the exact role of nodeId beyond 'Scope.' The schema descriptions are minimal, and the tool description does not materially enrich them.
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 action ('Replace one font family with another') and a clear scope ('across all text nodes'). It is immediately distinguishable from sibling tools like batch_set_font or style_text_range because it emphasizes global font-family replacement rather than styling a selection or applying a style to text ranges.
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 explicit guidance on when to choose this tool over alternatives such as batch_set_font, type_style_apply, or style_text_range. It implies global replacement, but it does not state when this is preferable, whether nodeId limits the scope, or what the relationship is to text styles versus raw font properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_scale_applyA
Apply a type scale to all text in a frame. Maps headings, body, and caption sizes to the scale.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | Scale ratio (default: major2) | |
| nodeId | Yes | Root frame | |
| baseSize | No | Base font size (default: 16) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states that all text in a frame is modified, which is a significant side effect, but it does not explain whether existing styles are overwritten, whether nested frames are included, whether named styles are created, or if the operation is reversible. This is a meaningful transparency gap for a mutating 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?
Two short sentences with no redundant wording. The main action and scope are front-loaded, and 'maps headings, body, and caption sizes' adds useful semantic context without clutter.
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 is adequate for a simple apply operation and the schema covers parameter meanings and defaults. However, it leaves key behavioral questions unanswered, such as how headings/body/caption are detected, whether nested text is affected, and what happens to existing styles. Given no output schema and no annotations, a bit more context would make selection and invocation safer.
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 the conceptual mapping of 'headings, body, and caption sizes' but does not add practical param details beyond what the schema already provides for ratio, nodeId, or baseSize.
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 ('Apply a type scale') and the resource ('all text in a frame'), and clarifies how it works by mapping headings, body, and caption sizes to the scale. This distinguishes it from sibling tools like suggest_type_scale or type_set_hierarchy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when the agent needs to apply a predefined type scale to text within a frame. However, it provides no explicit when-to-use vs. alternatives, no exclusions, and no mention of when a different tool such as type_create_style or type_set_hierarchy would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_set_hierarchyC
Set heading levels with proper size, weight, and line-height ratios.
| Name | Required | Description | Default |
|---|---|---|---|
| levels | No | Number of heading levels (default: 6) | |
| nodeId | Yes | Root frame |
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 says the tool sets heading typography. It does not state whether existing text styles are overwritten, what scale 'proper' refers to, whether the effect is recursive over text descendants, or what happens if the root frame has no matching text nodes.
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 11-word sentence that leads with the verb and resource, then enumerates the affected properties. There is zero wasted text and the core behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with no annotations and no output schema, so the description should explain the scope of the effect and the meaning of 'levels' in context, but it does not. An agent cannot tell whether the tool restyles existing text nodes, assigns heading roles, or creates styles, nor what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 since both 'levels' (number of heading levels, default 6) and 'nodeId' (root frame) are already documented in the schema. The description adds no additional meaning about how the two parameters interact, such as how 'levels' controls the hierarchy applied to the root frame.
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 action ('Set heading levels') and enumerates the affected properties ('size, weight, and line-height ratios'), making the tool's purpose clear. However, it does not explicitly differentiate itself from type-related siblings like type_scale_apply or suggest_type_scale, so an agent must infer which one to pick.
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 alternatives such as type_scale_apply, suggest_type_scale, or type_normalize. There are no stated exclusions, prerequisites (e.g., text nodes must exist), or conditions that would route an agent to a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ungroup_nodesC
Ungroup a group node.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Group node to ungroup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure, but it only restates the operation. It does not say what happens to children after ungrouping, whether the operation is reversible, or what response or errors to expect.
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 front-loaded sentence with no filler, which is appropriate for a simple one-parameter operation. It could have added a short behavioral note without becoming verbose, which keeps it from a 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?
For a one-parameter mutation with no annotations or output schema, the description is minimally viable but incomplete. It clarifies what the tool targets but not the outcome for child nodes or what occurs if the node is not a valid group.
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 already has a clear description. The tool description adds no extra meaning beyond what the schema provides, so 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 'Ungroup a group node' states a specific verb and resource, making the core operation clear. It does not explicitly distinguish itself from neighboring tools like flatten_node or group_nodes, so it misses the full sibling-differentiation bar.
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 instead of alternatives, and no prerequisites or exclusion conditions are mentioned. The description relies entirely on the tool name to convey the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_variableC
Update a variable value.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode to update (updates default if omitted) | |
| value | Yes | New value | |
| variableId | Yes | Variable ID |
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 says 'update' without mentioning side effects, whether changes propagate to bound usages, whether the operation is reversible, or whether special permissions are required.
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 economical at one sentence and has no filler. However, it is under-specified rather than information-dense: it only restates the tool's core action and does not mention the important mode parameter or any usage conditions.
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, no output schema, and a short generic description, the definition leaves meaningful gaps for a mutation tool. It does not clarify what happens when mode is omitted, whether variable name updates are supported, or what success looks like.
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 covers all parameters with 100% description coverage, including variableId, value, and mode. The description adds no parameter meaning beyond the schema, so the 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 states a specific verb and resource: 'Update a variable value.' This clearly conveys that the tool modifies an existing variable's value rather than creating or deleting one. However, it does not differentiate among sibling tools like bind_variable, swap_mode, or create_variable, all of which are conceptually related.
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 prefer this tool over alternatives such as create_variable, bind_variable, or delete_variable. It also does not explain when the optional mode parameter should be used relative to the default update path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_componentC
Validate a component follows design system rules.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Component to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. 'Validate' suggests a read-only operation but does not state whether the tool returns a report, throws an error, modifies anything, or requires a selected component context. The behavior after a failed or passing validation is entirely unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, which is concise. However, the brevity reflects under-specification rather than efficient completeness: it lacks criteria, output, and usage context, so it is not fully earning its place as an informative definition.
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 large set of overlapping sibling tools, the description is too thin to let an agent confidently select and invoke this tool. It does not state what 'design system rules' means, what result to expect, or how this differs from component_audit and similar tools.
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 property description 'Component to validate' adds minimal meaning beyond the parameter name 'nodeId', and the tool description does not clarify what kind of node ID is expected or how to obtain it. No significant extra semantic value is added.
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 ('Validate') and resource ('component') and clarifies that validation is against design system rules. However, it does not distinguish itself from siblings such as component_audit, check_consistency, or lint_design, all of which could plausibly perform a similar validation.
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 the many related siblings (e.g., component_audit, compare_to_system, detect_inconsistencies). The description neither states when it is the right choice nor when an alternative should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
203 tool updates
v3.3.3- First observed
align_nodes - First observed
annotate_colors - First observed
annotate_grid - First observed
annotate_hierarchy - First observed
annotate_responsive - First observed
annotate_spacing - First observed
annotate_typography - First observed
apply_backdrop_blur - First observed
audit_accessibility - First observed
batch_align - First observed
batch_delete - First observed
batch_duplicate - First observed
batch_lock - First observed
batch_remove_effects - First observed
batch_remove_strokes - First observed
batch_rename - First observed
batch_replace_color - First observed
batch_replace_text - First observed
batch_resize - First observed
batch_round_values - First observed
batch_set_corner_radius - First observed
batch_set_font - First observed
batch_set_visibility - First observed
batch_style - First observed
batch_swap_component - First observed
bind_variable - First observed
boolean_operation - First observed
check_consistency - First observed
check_contrast - First observed
check_naming - First observed
clean_hidden_layers - First observed
color_apply_style - First observed
color_blindness_check - First observed
color_check_all - First observed
color_create_style - First observed
color_darkmode - First observed
color_extract - First observed
color_generate_semantic - First observed
color_harmonize - First observed
color_lightmode - First observed
color_palette_generate - First observed
color_replace_global - First observed
compare_to_system - First observed
component_audit - First observed
convert_to_responsive - First observed
copy_css - First observed
create_arrow - First observed
create_border_gradient - First observed
create_card_grid - First observed
create_changelog - First observed
create_component - First observed
create_component_docs - First observed
create_component_instance - First observed
create_component_set - First observed
create_design_tokens - First observed
create_divider - First observed
create_ellipse - First observed
create_flow - First observed
create_footer - First observed
create_form - First observed
create_frame - First observed
create_glassmorphism - First observed
create_header - First observed
create_hover_state - First observed
create_icon - First observed
create_line - First observed
create_measurement - First observed
create_nav_bar - First observed
create_neumorphism - First observed
create_new_page - First observed
create_noise_texture - First observed
create_overlay - First observed
create_page - First observed
create_polygon - First observed
create_prototype_link - First observed
create_rectangle - First observed
create_responsive_variant - First observed
create_scroll_behavior - First observed
create_section - First observed
create_shadow_system - First observed
create_sidebar_layout - First observed
create_smart_component - First observed
create_spec_sheet - First observed
create_star - First observed
create_style_guide - First observed
create_svg_node - First observed
create_table_frame - First observed
create_text - First observed
create_variable - First observed
create_variable_collection - First observed
create_vector - First observed
delete_node - First observed
delete_page - First observed
delete_variable - First observed
design_from_prompt - First observed
detach_instance - First observed
detect_inconsistencies - First observed
duplicate_node - First observed
duplicate_page - First observed
export_as_png - First observed
export_as_svg - First observed
export_assets - First observed
export_color_palette - First observed
export_component_inventory - First observed
export_design_specs - First observed
export_spacing_tokens - First observed
export_to_react - First observed
export_tokens - First observed
export_typography - First observed
extract_components - First observed
find_nodes - First observed
fix_spacing - First observed
fix_touch_targets - First observed
flatten_node - First observed
generate_a11y_report - First observed
generate_mobile - First observed
generate_stylesheet - First observed
get_annotations - First observed
get_design_craft_guide - First observed
get_document_info - First observed
get_local_styles - First observed
get_local_variables - First observed
get_node_info - First observed
get_nodes_info - First observed
get_page_structure - First observed
get_selection - First observed
get_selection_colors - First observed
get_variables - First observed
group_nodes - First observed
import_design_system - First observed
import_tokens - First observed
interpret_prompt - First observed
lint_design - First observed
list_available_fonts - First observed
list_components - First observed
list_flows - First observed
list_pages - First observed
list_team_libraries - First observed
lock_node - First observed
measure_distance - First observed
merge_pages - First observed
modify_node - First observed
move_to_parent - First observed
normalize_design - First observed
offset_path - First observed
page_overview - First observed
publish_components - First observed
read_node_css - First observed
remove_all_effects - First observed
remove_prototype_link - First observed
rename_node - First observed
rename_page - First observed
reorder_node - First observed
reset_overrides - First observed
resize_node - First observed
responsive_check - First observed
scan_design_system - First observed
screenshot - First observed
search_library - First observed
select_all_by_type - First observed
set_annotation - First observed
set_auto_layout - First observed
set_blend_mode - First observed
set_breakpoint - First observed
set_clip_content - First observed
set_constraints - First observed
set_corner_radius - First observed
set_effects - First observed
set_fill - First observed
set_fixed_position - First observed
set_focus - First observed
set_gradient_fill - First observed
set_image_fill - First observed
set_layout_sizing - First observed
set_opacity - First observed
set_overflow - First observed
set_rotation - First observed
set_selection - First observed
set_stroke - First observed
set_text_content - First observed
set_transition - First observed
set_visibility - First observed
sort_pages - First observed
stack_for_mobile - First observed
style_text_range - First observed
suggest_color_palette - First observed
suggest_improvements - First observed
suggest_type_scale - First observed
swap_component - First observed
swap_mode - First observed
switch_page - First observed
type_audit - First observed
type_check_measure - First observed
type_create_style - First observed
type_list_styles - First observed
type_normalize - First observed
type_pair_suggest - First observed
type_replace_font - First observed
type_scale_apply - First observed
type_set_hierarchy - First observed
ungroup_nodes - First observed
update_variable - First observed
validate_component
TDQS
Dozens of tools overlap substantially: set_fill already supports gradients while set_gradient_fill duplicates it; create_vector, create_svg_node, and create_icon cover similar ground; and generic modify_node overlaps with dozens of specific setters. Export, annotation, check, and batch families further blur together, making reliable tool selection extremely difficult.
The majority of tools follow a readable snake_case verb_noun pattern like create_frame, delete_node, and export_as_png. However, conventions are mixed: color_palette_generate, type_scale_apply, and color_apply_style place the noun first, and generic verbs like set, create, get, and export are used broadly and sometimes interchangeably.
203 tools is an extreme count for a single MCP server and far exceeds reasonable coherence. Many operations could be consolidated behind parameters, such as shape types, export formats, and batch scopes, and the server bundles several distinct domains into one massive surface.
The server covers nearly every major Figma workflow: nodes, pages, components, variables, styles, prototyping, exports, accessibility, responsive design, and design-system generation. Minor lifecycle gaps remain, such as no explicit style update/delete and no delete annotation, but agents can generally work around them.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Free MCP tools: the only MCP linter, health checks, cost estimation, and trust evaluation.
- CanvaOAuthcom.canva.mcp
The Canva MCP server connects AI assistants (like Claude, ChatGPT, and Cursor) to Canva's API, enabling them to create and manage designs directly within chat conversations. Key capabilities include generating new designs from prompts, autofilling templates, searching and resizing existing designs, importing files from URLs, exporting designs as PDFs or images, and managing folders and comments without switching between tools.
Related MCP Servers
- AlicenseAqualityBmaintenanceFigma MCP server with full read/write access via plugin bridge — no API token, no rate limits. 58 tools for design automation: styles, variables, components, prototypes, and content.731,267MIT
- AlicenseCqualityCmaintenanceA design-intelligent MCP server for Figma with 201 tools and built-in design rules, works with Cursor and Claude Code.10011MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that simplifies Figma design data, generates code in multiple frameworks, and provides accessibility audits and drift detection, all using a free Figma Personal Access Token without a paid Dev Mode seat.1013MIT
- AlicenseNot gradedqualityAmaintenanceFigma MCP server with full read/write access via plugin bridge — no API token, no rate limits. 83 tools for design automation: styles, variables, components, prototypes, and content.11MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dragoon0x/conductor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server