Skip to main content
Glama
yhc984

Talk to Figma MCP

by yhc984

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between 'get_node_info', 'get_nodes_info', and 'read_my_design' which all retrieve node details, potentially causing confusion. Additionally, 'set_multiple_annotations' and 'set_annotation' serve similar functions with minor scaling differences. Overall, the set is well-differentiated with only a few ambiguous pairs.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., 'create_frame', 'delete_node', 'get_styles'). The naming is highly predictable and uniform across all 40 tools, making it easy for agents to understand and use them.

    Tool Count2/5

    With 40 tools, this server feels overloaded for a Figma integration. Many tools could be consolidated (e.g., multiple 'set_' tools for styling or layout), leading to a bloated interface that may overwhelm agents. A more streamlined set of 15-25 tools would better suit the domain without sacrificing functionality.

    Completeness5/5

    The tool set provides comprehensive coverage for Figma operations, including CRUD for nodes (create, get, update, delete), styling, layout management, annotations, exports, and prototyping. There are no obvious gaps; agents can perform full design workflows from creation to export and collaboration.

  • Average 3/5 across 40 of 40 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'clone' implies a write operation that creates a duplicate, the description doesn't mention whether this requires edit permissions, what happens to the original node, whether the clone inherits properties, or if there are rate limits. This leaves significant gaps for a mutation tool.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly. Every word earns its place in conveying the core functionality.

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

    Completeness2/5

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

    Given that this is a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the clone operation returns, whether it preserves node properties, or any error conditions. For a tool that modifies the design state, more behavioral context is needed to use it effectively.

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

    Parameters3/5

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

    Schema description coverage is 100%, with clear parameter descriptions in the schema itself. The description adds no additional parameter semantics beyond what's already documented in the schema (nodeId, x, y positions). This meets the baseline score of 3 since the schema adequately covers parameter meanings.

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

    Purpose4/5

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

    The description clearly states the verb ('clone') and resource ('an existing node in Figma'), making the purpose immediately understandable. However, it doesn't differentiate from siblings like 'create_frame' or 'create_rectangle' which also create new visual elements, missing an opportunity to clarify that cloning duplicates an existing node rather than creating a new one from scratch.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like 'create_frame', 'create_rectangle', and 'move_node', there's no indication whether cloning is preferred for duplicating existing nodes versus creating new ones or moving existing ones. No context about prerequisites or limitations is mentioned.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't specify permissions required, whether this affects the original component, what happens on failure, or what the expected output looks like. For a mutation tool with zero annotation coverage, this leaves significant 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that states exactly what the tool does without any wasted words. It's appropriately sized for a straightforward tool and gets directly to the point with no unnecessary elaboration.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'creating an instance' means in Figma context, what the tool returns, error conditions, or how this operation fits within the broader Figma workflow. Given the complexity of component instantiation and lack of structured metadata, more contextual information would be helpful.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with all three parameters clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema descriptions. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

    Purpose4/5

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

    The description clearly states the action ('Create an instance') and target resource ('component in Figma'), making the tool's purpose immediately understandable. It distinguishes itself from siblings like 'create_frame' or 'create_rectangle' by specifying it's for component instantiation rather than creating new elements from scratch. However, it doesn't explicitly differentiate from 'clone_node' which might have overlapping functionality.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing component), when not to use it, or how it differs from similar tools like 'clone_node' or 'create_frame'. The agent must infer usage context 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool creates connections but lacks behavioral details: it doesn't specify if this is a write operation (implied by 'create'), what permissions are needed, whether it's idempotent, how errors are handled (e.g., invalid node IDs), or what happens if connections already exist. The mention of 'default connector style' hints at styling but doesn't explain if this is configurable elsewhere.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core action ('create connections between nodes') and adds a useful constraint ('using the default connector style'). There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.

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

    Completeness2/5

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

    Given no annotations and no output schema, the description is incomplete for a tool that performs a write operation ('create'). It lacks context on behavioral aspects (e.g., side effects, error handling), output format, or integration with sibling tools. While the schema covers parameters well, the description doesn't compensate for missing annotation and output information, leaving gaps for an AI agent to infer usage.

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

    Parameters3/5

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

    Schema description coverage is 100%, with clear parameter documentation in the schema. The description adds minimal value beyond the schema—it implies the 'connections' parameter is an array and mentions 'default connector style', which relates to styling not explicitly covered in the schema. However, it doesn't elaborate on parameter semantics like node ID formats or text display behavior, so it meets the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the verb ('create') and resource ('connections between nodes'), specifying it uses 'default connector style'. It distinguishes from siblings like 'create_rectangle' or 'create_text' by focusing on connections rather than nodes. However, it doesn't explicitly differentiate from potential connection-related tools not present in the sibling list.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing nodes), exclusions, or compare with siblings like 'set_default_connector' (which might configure styles) or 'clone_node' (which might duplicate nodes with connections). Usage is implied only by the action itself.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. 'Create a new frame' implies a write/mutation operation, but it doesn't specify permissions needed, whether it's destructive to existing content, rate limits, or what happens on success/failure. For a mutation tool with 20 parameters, 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information.

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

    Completeness2/5

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

    For a complex mutation tool with 20 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what a frame is in Figma context, doesn't mention return values or error conditions, and provides no behavioral context beyond the basic action.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all 20 parameters thoroughly. The description adds no parameter information beyond what's in the schema, which is acceptable given the comprehensive schema documentation. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Create') and resource ('new frame in Figma'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like create_rectangle or create_component_instance, which would require mentioning what distinguishes a frame from other node types.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like create_rectangle or create_component_instance. The description doesn't mention prerequisites, context, or typical use cases for creating frames versus other node types.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. 'Create a new rectangle' implies a write/mutation operation, but the description doesn't disclose important behavioral traits like: whether this requires specific permissions, what happens if parentId is invalid, whether the rectangle becomes part of the current selection, or what the tool returns (though no output schema exists). For a mutation tool with zero annotation coverage, this is inadequate.

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

    Conciseness5/5

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

    The description is extremely concise at just 5 words, front-loading the essential information with zero waste. Every word earns its place, making it easy for an AI agent to parse quickly while understanding the core purpose.

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

    Completeness2/5

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

    For a mutation tool with 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects, usage context, return values, or error conditions. While concise, it fails to provide the contextual information needed for an AI agent to use this tool effectively in the broader Figma tool ecosystem.

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

    Parameters3/5

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

    Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no parameter-specific information beyond what's already in the schema. The baseline score of 3 is appropriate when the schema does all the parameter documentation work, even though the description doesn't add any value in this area.

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

    Purpose4/5

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

    The description clearly states the action ('Create a new rectangle') and the resource ('in Figma'), providing specific verb+resource information. However, it doesn't differentiate this tool from similar sibling tools like 'create_frame' or 'create_component_instance' which also create visual elements in Figma, so it doesn't fully distinguish from alternatives.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools for creating visual elements (create_frame, create_component_instance, create_text), but the description doesn't indicate when a rectangle is preferred over other shapes or elements, nor does it mention any prerequisites or constraints.

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

  • Behavior2/5

    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 provides minimal information. It states this is a creation operation but doesn't mention whether it requires specific permissions, what happens on failure, whether the text becomes part of the document immediately, or what the return value might be. 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.

    Conciseness5/5

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

    The description is a single, clear sentence that states exactly what the tool does without any wasted words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point with no unnecessary elaboration.

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

    Completeness2/5

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

    For a mutation tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., returns a node ID), error conditions, or behavioral constraints. The agent would need to guess about important aspects of tool behavior despite the good schema coverage.

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

    Parameters3/5

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

    The description adds no parameter information beyond what's already in the schema, which has 100% coverage with detailed descriptions for all 8 parameters. The baseline score of 3 is appropriate since the schema does all the heavy lifting. The description doesn't provide additional context about parameter relationships or usage patterns.

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

    Purpose4/5

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

    The description clearly states the verb ('Create') and resource ('new text element in Figma'), making the purpose immediately understandable. It distinguishes this tool from other creation tools like create_frame or create_rectangle by specifying it's for text elements. However, it doesn't explicitly differentiate from set_text_content (which modifies existing text) or other text-related tools, preventing 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.

    Usage Guidelines2/5

    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's no mention of when to choose create_text over set_text_content (for modifying existing text) or other text manipulation tools. It also lacks prerequisites like needing to be in a Figma document context or having appropriate permissions.

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

  • Behavior2/5

    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 tool deletes nodes, implying a destructive mutation, but doesn't mention whether deletions are permanent, reversible, require specific permissions, or have rate limits. It also doesn't describe the response format or error handling, leaving significant gaps for a destructive operation.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place.

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

    Completeness2/5

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

    For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It lacks critical information about behavioral traits (e.g., permanence, permissions), usage context, and expected outcomes. Given the complexity of deleting multiple nodes in a design tool, more completeness is needed to guide safe and effective use.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with 'nodeIds' clearly documented as an array of node IDs to delete. The description adds no additional parameter semantics beyond what's in the schema, such as format examples, constraints, or relationships to other tools. Baseline 3 is appropriate given the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Delete multiple nodes') and resource ('from Figma'), making the purpose immediately understandable. It distinguishes from the sibling 'delete_node' by specifying 'multiple nodes at once', though it doesn't explicitly contrast with other sibling tools like 'move_node' or 'resize_node'.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'delete_node' for single deletions, or how it relates to other destructive operations like 'move_node' or 'resize_node'. The description offers no context about prerequisites, permissions, or typical use cases.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool deletes a node, implying a destructive mutation, but doesn't disclose behavioral traits like whether deletion is permanent, requires specific permissions, or has side effects (e.g., affecting connected elements). 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.

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

    Completeness2/5

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

    For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical context like deletion consequences, error handling, or return values, which are essential for safe and effective use. The high schema coverage doesn't compensate for these behavioral gaps.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with 'nodeId' clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate as the schema handles the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Delete') and target resource ('a node from Figma'), which is specific and unambiguous. However, it doesn't differentiate from the sibling tool 'delete_multiple_nodes', which handles multiple deletions, so it misses full sibling distinction.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'delete_multiple_nodes' for bulk operations or other deletion-related tools. There's no mention of prerequisites, such as needing node permissions or being in an editable context, leaving usage unclear.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention authentication requirements, rate limits, error conditions, or what 'all annotations' includes (format, pagination, etc.). The description is minimal and leaves significant behavioral aspects unspecified.

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

    Conciseness4/5

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

    The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a simple retrieval tool, though it could potentially be more front-loaded with critical information about the tool's scope.

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

    Completeness2/5

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

    For a tool with no annotations, no output schema, and multiple sibling tools, the description is insufficiently complete. It doesn't explain what 'annotations' means in this context, what format they're returned in, or how this tool differs from other get_* tools. The agent would need to guess about important behavioral aspects.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional parameter semantics beyond what's in the schema descriptions. The baseline of 3 is appropriate when the schema does all the parameter documentation work.

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

    Purpose4/5

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

    The description clearly states the action ('Get all annotations') and target ('in the current document or specific node'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'set_annotation' or 'set_multiple_annotations' which are write operations, leaving some ambiguity about uniqueness.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives is provided. The description mentions 'current document or specific node' but doesn't clarify when to use nodeId parameter versus omitting it, nor does it reference sibling tools like 'get_document_info' or 'get_node_info' that might provide related information.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get detailed information' implies a read-only operation, it doesn't specify what 'detailed information' includes, whether there are rate limits, authentication requirements, or error conditions for invalid node IDs. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that immediately communicates the core purpose without unnecessary words. It's appropriately sized for a simple lookup tool and front-loads the essential information. Every word earns its place in this concise formulation.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete for proper tool understanding. While concise, it doesn't explain what 'detailed information' includes, how results are structured, or any behavioral constraints. For a tool in a complex Figma environment with many sibling alternatives, more context about scope and output would be valuable.

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

    Parameters3/5

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

    The description adds no parameter information beyond what's already in the schema, which has 100% coverage for the single 'nodeId' parameter. The schema clearly describes it as 'The ID of the node to get information about.' With high schema coverage, the baseline score of 3 is appropriate since the description doesn't need to compensate but also adds no extra semantic context.

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

    Purpose4/5

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

    The description clearly states the action ('Get detailed information') and resource ('about a specific node in Figma'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_nodes_info' (plural) or 'get_document_info', which could cause confusion about when to use this singular node info tool versus those alternatives.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_nodes_info' (plural nodes), 'get_document_info' (broader scope), and 'get_selection' (selected nodes), there's no indication whether this tool is for single nodes only, requires specific node types, or has different performance characteristics. The agent must infer usage from the name alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose whether this is a read-only operation, rate limits, authentication needs, error handling, or what 'detailed information' includes (e.g., node properties, metadata).

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

    Completeness2/5

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

    Given the complexity (querying multiple nodes) and lack of annotations and output schema, the description is insufficient. It doesn't explain what 'detailed information' includes, how results are structured, or any limitations (e.g., maximum node IDs). For a tool with no structured output documentation, this leaves significant gaps.

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

    Parameters3/5

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

    The schema description coverage is 100%, with the single parameter 'nodeIds' well-documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline for high coverage but doesn't provide extra value.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('detailed information about multiple nodes in Figma'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'get_node_info' (singular vs. plural), which is a missed opportunity for clarity.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'get_node_info' (for single nodes) or 'get_document_info' (for broader document data). There's no mention of prerequisites, limitations, or context for choosing this specific tool.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('join') but doesn't explain what joining entails—whether it's a one-time action, if it requires specific permissions, what happens after joining, or any side effects. This leaves significant gaps in understanding 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.

    Conciseness5/5

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

    The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficiently conveys the essential information, earning a top score for conciseness.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'join' means in this context, what the expected outcome is, or how this tool fits with the sibling design tools. For a tool with potential behavioral implications, more context is needed.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with the single parameter 'channel' documented as 'The name of the channel to join'. The description doesn't add any additional meaning beyond this, such as examples or constraints, so it meets the baseline for high schema coverage without compensating further.

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

    Purpose4/5

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

    The description clearly states the action ('join') and resource ('a specific channel to communicate with Figma'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings, which are all Figma design manipulation tools, so it doesn't reach the highest score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context for joining a channel. Without annotations or explicit usage instructions, the agent must infer when this tool is appropriate.

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

  • Behavior2/5

    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 action ('Move') but doesn't cover critical traits like whether this requires edit permissions, if it's destructive (likely yes, as it modifies node position), what happens on failure, or rate limits. This leaves significant gaps for a mutation tool.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that directly states the tool's function with zero wasted words. It efficiently communicates the core action without unnecessary elaboration, 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.

    Completeness2/5

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

    Given the tool's complexity (a mutation operation with no output schema and no annotations), the description is insufficient. It lacks details on behavioral traits, error handling, return values, or integration with sibling tools, leaving the agent under-informed for safe and effective use.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with clear parameter definitions (nodeId, x, y). The description adds no additional semantic context beyond implying positional movement, which aligns with the schema. This meets the baseline for high schema coverage without extra value.

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

    Purpose4/5

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

    The description clearly states the verb ('Move') and resource ('a node') with the specific action ('to a new position in Figma'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'resize_node' or 'set_focus' that also modify node properties, which prevents 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.

    Usage Guidelines2/5

    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 doesn't mention prerequisites (e.g., needing node IDs from other tools), exclusions, or comparisons to similar tools like 'resize_node' or 'set_selections', leaving the agent without contextual usage cues.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose if this is a destructive mutation, requires specific permissions, has rate limits, or what happens on failure (e.g., invalid node ID). The description is minimal and lacks critical context for safe use.

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

    Conciseness5/5

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

    The description is extremely concise with a single sentence that directly states the tool's purpose. It's front-loaded with no wasted words, making it easy to parse quickly.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error conditions, or return values, leaving significant gaps for an AI agent to use it correctly in context.

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

    Parameters3/5

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

    Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning about parameters beyond implying they're for resizing. This meets the baseline for high schema coverage but doesn't enhance understanding.

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

    Purpose4/5

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

    The description clearly states the action ('resize') and target ('a node in Figma'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'move_node' or 'set_layout_sizing' which also modify node dimensions or positioning, so it lacks sibling distinction.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid node ID), exclusions (e.g., not working on locked nodes), or compare to similar tools like 'set_layout_sizing' for automatic resizing.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It mentions 'scan' but doesn't clarify what 'scan' entails—e.g., whether it returns text content, metadata, or errors; if it's read-only or has side effects; or any performance considerations. This leaves behavioral traits largely undisclosed.

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

    Conciseness5/5

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

    The description is a single, direct sentence with no wasted words, efficiently conveying the core action and target. It's appropriately sized for a simple tool and front-loaded with essential information.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the scan returns (e.g., text content, node IDs, errors), how results are structured, or any limitations (e.g., depth of scanning, handling of nested nodes). For a tool with no structured output information, this leaves significant gaps.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with 'nodeId' clearly documented. The description adds no additional meaning beyond the schema, such as explaining what constitutes a valid node ID or how selection relates to it. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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

    Purpose4/5

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

    The description clearly states the action ('scan') and target ('all text nodes in the selected Figma node'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'scan_nodes_by_types' or 'get_node_info', which could also involve scanning or retrieving node information.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as 'scan_nodes_by_types' (which might filter by type) or 'get_node_info' (which might retrieve broader node details). It lacks context on prerequisites, exclusions, or specific use cases.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create or update' implies mutation, it doesn't specify permissions required, whether operations are idempotent, what happens when updating vs creating, or what the response looks like. This leaves significant behavioral gaps for a mutation tool.

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

    Conciseness5/5

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

    The description is perfectly concise at just 4 words ('Create or update an annotation'). It's front-loaded with the core action and wastes no words. Every element earns its place in this minimal but complete statement of purpose.

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

    Completeness2/5

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

    For a mutation tool with 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what constitutes successful creation/update, error conditions, or how to interpret the annotationId parameter's conditional nature. The agent would need to guess about behavioral aspects.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.

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

    Purpose4/5

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

    The description clearly states the verb ('Create or update') and resource ('an annotation'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'set_multiple_annotations' or 'get_annotations', which would require more specific scope information.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'set_multiple_annotations' for batch operations or 'get_annotations' for retrieval. There's no mention of prerequisites, context, or typical use cases for annotation management.

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

  • Behavior2/5

    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 tool modifies a node, implying mutation, but doesn't clarify whether this requires specific permissions, if changes are reversible, what happens to existing corner settings, or potential side effects (e.g., visual updates). For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Set the corner radius of a node in Figma') directly contributes to understanding the tool's function, with zero waste or redundancy.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like error conditions, permissions, or what the tool returns (e.g., success confirmation or updated node data). Given the complexity of modifying Figma nodes and the lack of structured safety hints, more context is needed for reliable agent use.

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

    Parameters3/5

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

    Schema description coverage is 100%, with all parameters clearly documented in the schema (nodeId, radius, corners). The description adds no additional parameter semantics beyond what's already in the schema—it doesn't explain units for 'radius', typical values, or practical examples for the 'corners' array. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and resource ('corner radius of a node in Figma'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'set_fill_color' or 'set_stroke_color' by specifying the exact property being modified. However, it doesn't explicitly differentiate from other geometry-modifying tools like 'resize_node' beyond the property name.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid node ID), exclusions (e.g., nodes that don't support corner radius), or related tools (e.g., 'set_layout_mode' for other geometry adjustments). The agent must infer usage from the tool name and parameters alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a mutation ('Set') but doesn't disclose permissions needed, side effects, or what 'default connector' means operationally. This is inadequate for a tool that likely changes system state.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action, making it easy to parse quickly.

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

    Completeness2/5

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

    Given the tool likely performs a mutation (setting a default) with no annotations and no output schema, the description is incomplete. It doesn't explain what 'default connector' affects, success/failure conditions, or return values, leaving significant gaps for the agent.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the parameter 'connectorId' is documented in the schema. The description adds no additional meaning about the parameter (e.g., format, sourcing, or constraints), meeting the baseline of 3 where schema does the work.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and the resource ('a copied connector node as the default connector'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from its many siblings (like 'set_focus' or 'set_selections'), which would require a 5.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a copied connector node first) or exclusions, leaving the agent to 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.

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but provides minimal behavioral context. It states the tool modifies nodes but doesn't disclose whether this is a destructive/mutative operation (implied by 'Set'), what permissions are needed, whether changes are reversible, error conditions, or what happens if applied to incompatible nodes. For a mutation tool with zero annotation coverage, this is inadequate transparency.

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

    Conciseness4/5

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

    The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more structured by separating purpose from constraints. Every word earns its place, making it easy to parse quickly.

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

    Completeness2/5

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

    For a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what happens after setting the color (success response, error cases), doesn't mention the tool's effect on the design (immediate visual change?), and provides no context about Figma's color system or how this interacts with other properties. The description alone is insufficient for safe, effective use.

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

    Parameters3/5

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

    Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no parameter-specific information beyond mentioning node types (TextNode/FrameNode), which relates to the 'nodeId' parameter but doesn't explain format or constraints. With complete schema coverage, baseline 3 is appropriate as the description provides minimal additional semantic value.

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

    Purpose4/5

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

    The description clearly states the action ('Set the fill color') and target resource ('a node in Figma'), specifying applicable node types ('TextNode or FrameNode'). It distinguishes from similar tools like 'set_stroke_color' by focusing on fill color, but doesn't explicitly differentiate from other color-related tools or explain why this tool exists versus general property-setting tools.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing nodeId from selection or other tools), doesn't specify when fill color applies versus other color properties, and provides no comparison to sibling tools like 'set_stroke_color' or general modification tools. The description only states what it does, not when to choose it.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden. It describes the mutation action ('swapped', 'applied') but lacks critical behavioral details: whether this is destructive (overwrites existing overrides), requires specific permissions, has rate limits, or what happens on failure. The phrase 'target instances will be swapped' hints at modification but doesn't fully disclose risks or side effects.

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

    Conciseness4/5

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

    Two sentences that are front-loaded with the core action and efficiently explain the process. No wasted words, though it could be slightly more structured by separating prerequisites from the action. Every sentence adds value, making it appropriately concise for a mutation tool.

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

    Completeness2/5

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

    Given no annotations and no output schema, this is a mutation tool with incomplete context. The description covers the basic operation but lacks details on permissions, error handling, return values, or how it interacts with sibling tools like 'get_instance_overrides'. For a tool that modifies component instances, more behavioral transparency is needed to be complete.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds minimal value beyond the schema by implying 'previously copied overrides' context for sourceInstanceId and 'selected instances' for targetNodeIds, but no additional syntax or format details. Baseline 3 is appropriate as the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Apply previously copied overrides') and target ('selected component instances'), with specific details about swapping to source component and applying override properties. It doesn't explicitly differentiate from siblings like 'get_instance_overrides' or 'set_axis_align', but the verb 'apply' is specific enough to understand the core function.

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

    Usage Guidelines2/5

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

    The description mentions 'previously copied overrides' and 'currently selected instances will be used', which implies prerequisites but doesn't explicitly state when to use this tool versus alternatives like 'set_axis_align' for different property types or 'clone_node' for duplication. No clear exclusions or alternative recommendations are provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool modifies a frame, implying mutation, but does not cover critical aspects like permissions needed, whether changes are reversible, error conditions, or response format. This is a significant gap for a mutation tool with zero 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.

    Conciseness5/5

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

    The description is a single, direct sentence that efficiently conveys the core function without unnecessary words. It is front-loaded and wastes no space, 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.

    Completeness2/5

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

    Given the complexity of a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error handling, and return values, leaving the agent with incomplete context for safe and effective tool invocation.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any meaning beyond what the schema provides, such as explaining interactions between parameters or practical implications. Baseline 3 is appropriate when the schema handles parameter documentation effectively.

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

    Purpose4/5

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

    The description clearly states the action ('Set distance') and target ('children in an auto-layout frame'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'set_layout_mode' or 'set_layout_sizing', which may also affect layout properties, leaving some ambiguity in sibling differentiation.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, such as other layout-related tools in the sibling list. It lacks context about prerequisites, exclusions, or typical scenarios for application, leaving the agent without usage direction.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation ('Set'), but doesn't specify if this requires special permissions, whether changes are reversible, or what happens to existing settings. For a tool that modifies design elements, this lack of detail 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and 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.

    Completeness2/5

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

    Given the tool modifies frame properties (a mutation) with no annotations and no output schema, the description is incomplete. It doesn't cover error conditions, side effects, or return values, leaving the agent with insufficient context for reliable use in a design environment.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters (nodeId, layoutMode, layoutWrap) with enums and descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining interactions between parameters or default behaviors, meeting the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and the target ('layout mode and wrap behavior of a frame in Figma'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'set_layout_sizing' or 'set_axis_align', which also configure frame properties, leaving some ambiguity about when to choose this specific tool.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a frame node), exclusions, or compare it to similar tools like 'set_layout_sizing', leaving the agent to infer usage from context alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a mutation tool ('Set'), implying it modifies the design, but doesn't mention permissions, side effects, error conditions, or what happens if invalid parameters are provided. This is inadequate for a mutation tool with zero 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, or important behavioral aspects like whether changes are reversible. The 100% schema coverage helps with parameters, but overall context is incomplete.

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

    Parameters3/5

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

    Schema description coverage is 100%, providing complete documentation for all parameters. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and the target ('horizontal and vertical sizing modes for an auto-layout frame in Figma'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'set_layout_mode' or 'resize_node', but the specificity of 'sizing modes' provides some implicit distinction.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'set_layout_mode' or 'resize_node'. It mentions 'auto-layout frame' as the target, but doesn't specify prerequisites, constraints, or typical use cases, leaving the agent to infer usage context.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a mutation (implied by 'Set'), what happens on errors (e.g., partial updates), authentication needs, or rate limits. The term 'parallelly' is vague—does it mean concurrent processing or atomic batch? More context is needed for safe invocation.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste—'Set multiple annotations parallelly in a node' directly conveys the core action and scope. It's front-loaded and appropriately sized for the tool's complexity.

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

    Completeness2/5

    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 incomplete. It doesn't explain what annotations are used for, return values (e.g., success/failure indicators), error handling, or side effects. Given the complexity of batch updates and lack of structured safety hints, more context is needed for reliable agent use.

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

    Parameters3/5

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

    Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying batch processing via 'multiple annotations parallelly', which aligns with the 'annotations' array parameter. No syntax or format details beyond the schema are provided, meeting the baseline for high coverage.

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

    Purpose4/5

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

    The description clearly states the action ('Set multiple annotations') and target ('in a node'), with 'parallelly' hinting at batch/parallel processing. It distinguishes from sibling 'set_annotation' by emphasizing multiple annotations, but doesn't specify what annotations are (e.g., labels, comments) or their purpose in the node context.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives like 'set_annotation' (for single annotations) or 'get_annotations' (for reading). The description implies batch operations but doesn't specify scenarios (e.g., bulk updates, initialization) or prerequisites (e.g., node existence, permissions).

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

  • Behavior2/5

    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 mentions 'parallelly', hinting at concurrent updates, but fails to detail critical aspects like whether this is a destructive operation (replacing text), error handling for invalid node IDs, or performance implications. This leaves significant gaps in understanding 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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

    Completeness2/5

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

    Given the complexity of a batch update operation with no annotations and no output schema, the description is inadequate. It lacks details on return values, error conditions, side effects (e.g., whether changes are reversible), and how it interacts with sibling tools, leaving the agent with insufficient context for reliable use.

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

    Parameters3/5

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

    The input schema has 100% description coverage, clearly documenting both parameters ('nodeId' and 'text' array). The description adds no additional semantic context beyond what the schema provides, such as explaining the relationship between the parent node and text nodes or usage examples. Thus, it meets the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('Set multiple text contents parallelly') and the target ('in a node'), which is specific and unambiguous. However, it does not explicitly differentiate from its sibling 'set_text_content', which appears to be a single-text version, leaving some room for improvement in sibling distinction.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'set_text_content' for single updates or other text-related tools. It lacks context about prerequisites, such as needing existing text nodes, or exclusions, making it minimally helpful for decision-making.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden. It discloses that this is a mutation tool (implied by 'Set') and that it scrolls the viewport, but lacks critical behavioral details: whether it requires specific permissions, if it's destructive to existing selections, what happens on invalid node IDs, or any rate limits. The description is minimal and misses key operational context.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core action and secondary effect. Every word earns its place with zero waste, 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.

    Completeness2/5

    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 mutation tool with potential side effects (viewport scrolling), the description is incomplete. It lacks details on error handling, response format, or interaction with other tools (e.g., 'get_selection'). For a tool that modifies state in a design environment, more context is needed for safe and effective use.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the parameter 'nodeIds' fully documented in the schema. The description adds no additional meaning about parameters beyond what the schema provides (e.g., no format examples, constraints, or relation to the scrolling behavior). Baseline 3 is appropriate as the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Set selection to multiple nodes') and the resource ('in Figma'), with an additional effect ('scroll viewport to show them'). It distinguishes from sibling 'get_selection' by being a write operation, but doesn't explicitly differentiate from other node manipulation tools like 'move_node' or 'delete_node' beyond the specific selection focus.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing valid node IDs), when not to use it, or how it relates to other selection or viewport tools. The agent must infer usage from the purpose alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose whether this is a destructive operation, what permissions are needed, whether changes are reversible, what happens if the node doesn't exist, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's perfectly front-loaded and appropriately sized for this tool.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens on success/failure, what permissions are required, or how this operation fits into the broader Figma context. The agent would be left guessing about important behavioral aspects.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents all 6 parameters. The description doesn't add any additional meaning about parameters beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the work.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and target ('stroke color of a node in Figma'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'set_fill_color' or 'set_corner_radius' beyond the obvious difference in what property is being set.

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

    Usage Guidelines2/5

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

    No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a valid node ID), when not to use it, or how it relates to similar tools like 'set_fill_color' or 'set_corner_radius'.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It states the action ('Export') but doesn't clarify critical details like whether this downloads a file, requires specific permissions, has rate limits, or what happens on failure (e.g., invalid nodeId). For a tool with potential side effects like file generation, 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.

    Conciseness5/5

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

    The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information without redundancy.

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

    Completeness3/5

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

    Given 3 parameters with full schema coverage and no output schema, the description is minimally complete but lacks depth. It doesn't explain what the tool returns (e.g., a file path, binary data, or success status), which is critical for an export operation. For a tool with no annotations and potential behavioral complexity, it should provide more context about outcomes and constraints.

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

    Parameters3/5

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

    Schema description coverage is 100%, with clear descriptions for nodeId, format, and scale in the input schema. The description adds no additional parameter semantics beyond what's already documented in the schema, such as explaining what 'scale' means in practical terms or format implications. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Export') and resource ('a node as an image from Figma'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings like 'get_node_info' or 'scan_nodes_by_types' that might also involve nodes but don't export them, so it lacks explicit sibling distinction.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't specify if this is for downloading images versus viewing them in-app, or if other tools like 'get_node_info' should be used first to verify node existence. There's no mention of prerequisites or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It mentions that overrides 'can be applied to other instances', hinting at a read-only operation, but doesn't clarify permissions, rate limits, or what happens if no instance is selected when nodeId is omitted. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness4/5

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

    The description is two sentences with zero waste, front-loading the core purpose. It efficiently explains what the tool does and a potential use case. However, it could be slightly more structured by separating usage notes from the primary function.

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

    Completeness3/5

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

    Given no annotations and no output schema, the description is incomplete. It doesn't explain the return format (e.g., structure of overrides), error conditions, or dependencies. For a retrieval tool in a design context, more context about the output and behavior would help the agent use it correctly.

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

    Parameters4/5

    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 single optional parameter. The description adds no parameter-specific information beyond what the schema provides, but with only one parameter and high coverage, the baseline is strong. No additional semantics are needed for adequate understanding.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('override properties from a selected component instance'), making the purpose understandable. It distinguishes from siblings by focusing on retrieving overrides rather than creating, modifying, or deleting nodes. However, it doesn't explicitly differentiate from tools like 'get_node_info' or 'get_styles' that also retrieve data about nodes.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a component instance), exclusions, or compare it to similar retrieval tools like 'get_node_info'. The agent must infer usage from the purpose alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states a read operation ('Get') but doesn't mention any behavioral traits such as permissions needed, rate limits, pagination, or what 'local components' entails (e.g., scope, format). This leaves significant gaps for a tool with no structured safety hints.

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

    Conciseness5/5

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

    The description is a single, direct sentence with no wasted words, front-loading the core action and resource. It's efficiently structured and appropriately sized for a simple tool, earning full marks for conciseness.

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

    Completeness2/5

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

    Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'local components' means, the return format, or any behavioral context like errors or limitations. For a tool in a complex environment with many siblings, this leaves the agent under-informed.

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

    Parameters4/5

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

    The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it could have clarified implicit inputs like document context. Baseline is 4 for zero parameters, as it avoids redundancy.

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

    Purpose4/5

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

    The description clearly states the action ('Get') and resource ('all local components from the Figma document'), making the purpose immediately understandable. However, it doesn't distinguish itself from sibling tools like 'get_document_info' or 'get_node_info' that might also retrieve component-related data, missing full differentiation.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_document_info' or 'get_node_info' that might overlap in functionality, there's no indication of specific use cases, prerequisites, or exclusions, leaving the agent to infer usage.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose if this is a read-only operation, what information is returned, error conditions, or dependencies like requiring an active selection, which are critical for a tool with no input parameters.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded and wastes no words, 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.

    Completeness2/5

    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 simple purpose, the description is incomplete. It doesn't explain what 'information' includes, return format, or behavioral aspects like what happens with no selection, leaving significant gaps for the agent to operate effectively.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add param info, but that's acceptable here, earning a baseline score above 3 due to the lack of parameters.

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

    Purpose4/5

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

    The description clearly states the action ('Get information') and target ('current selection in Figma'), making the purpose understandable. However, it doesn't differentiate from siblings like 'get_node_info' or 'get_nodes_info' that might also retrieve information about nodes, which prevents 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.

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives such as 'get_node_info' or 'get_nodes_info'. The description implies usage for selections but lacks explicit context or exclusions, leaving the agent to infer based on tool names alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' data, implying a read-only operation, but doesn't clarify permissions, rate limits, or what 'styles' encompass (e.g., text, color, effect styles). This leaves significant gaps for a tool that likely returns complex data.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Get all styles from the current Figma document') directly contributes to understanding the tool's function.

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

    Completeness2/5

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

    Given the complexity of retrieving 'all styles' from a design tool, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'styles' include, the return format, or potential limitations (e.g., pagination), making it inadequate for an agent to use effectively without additional context.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter documentation in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant parameter details.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('all styles from the current Figma document'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_annotations' or 'get_document_info' that also retrieve document metadata, which prevents 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.

    Usage Guidelines2/5

    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 doesn't mention prerequisites (e.g., needing an open document), exclusions, or comparisons to similar sibling tools like 'get_document_info', leaving the agent to infer usage context.

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

  • Behavior2/5

    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 tool scans for child nodes but lacks details on what 'scan' entails (e.g., depth of search, whether it includes nested children, or if it's a shallow scan). It doesn't cover error conditions, permissions, rate limits, or the format of results (e.g., list of node IDs or full node data).

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

    Conciseness5/5

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

    The description is a single, clear sentence that front-loads the core purpose without unnecessary words. It efficiently conveys the tool's function and scope, making it easy to parse and understand quickly.

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

    Completeness3/5

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

    Given the tool's moderate complexity (scanning with type filtering), no annotations, and no output schema, the description is minimally adequate but has gaps. It covers the basic purpose but lacks behavioral details (e.g., scan depth, result format) and usage guidelines. For a tool with two required parameters and no structured output info, more context would improve completeness.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents both parameters ('nodeId' and 'types') adequately. The description adds minimal value beyond the schema by implying the tool scans within the selected node, but it doesn't provide additional context like valid type examples beyond the schema's mention of 'COMPONENT' and 'FRAME', or explain how the scan behaves with empty types arrays.

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

    Purpose4/5

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

    The description clearly states the action ('scan for child nodes') and target resource ('selected Figma node'), specifying the filtering criterion ('with specific types'). It distinguishes from siblings like 'scan_text_nodes' by focusing on general node types rather than text nodes specifically. However, it doesn't explicitly contrast with other scanning or retrieval tools like 'get_node_info' or 'get_nodes_info'.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid node ID), compare with similar tools like 'scan_text_nodes' or 'get_nodes_info', or specify scenarios where this tool is preferred (e.g., filtering by type vs. retrieving all child nodes).

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Set' operation (implying mutation) but doesn't describe permissions needed, whether changes are reversible, error conditions, or what happens to existing alignment settings. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that immediately conveys the core purpose without any wasted words. It's appropriately sized for a tool with well-documented parameters in the schema.

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

    Completeness3/5

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

    For a mutation tool with no annotations and no output schema, the description provides basic purpose but lacks important context about behavioral implications, error handling, and relationships with other auto-layout configuration tools. The comprehensive parameter documentation in the schema helps, but doesn't fully compensate for the missing behavioral transparency.

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

    Parameters3/5

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

    The schema description coverage is 100%, with detailed parameter descriptions including enum values and their meanings. The tool description adds no additional parameter information beyond what's already in the schema, so it meets but doesn't exceed the baseline expectation when schema documentation is comprehensive.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and target ('primary and counter axis alignment for an auto-layout frame in Figma'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from similar sibling tools like 'set_layout_mode' or 'set_item_spacing', which also configure auto-layout properties.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that the node must be an auto-layout frame), exclusions, or relationships with sibling tools like 'set_layout_mode' or 'set_item_spacing' that might affect alignment behavior.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Set' implies a mutation, the description doesn't specify whether this operation is destructive, requires specific permissions, has side effects, or what happens if invalid values are provided. It lacks details on error conditions, rate limits, or response format.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero wasted content.

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

    Completeness3/5

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

    Given the tool's moderate complexity (5 parameters, mutation operation) and lack of annotations or output schema, the description is minimally adequate but incomplete. It covers the basic purpose but misses behavioral details, usage context, and error handling that would help an agent use it correctly in real scenarios.

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

    Parameters3/5

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

    Schema description coverage is 100%, with clear parameter descriptions in the schema (e.g., 'The ID of the frame to modify', 'Top padding value'). The description adds no additional parameter semantics beyond what's already documented in the schema, so it meets 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.

    Purpose4/5

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

    The description clearly states the action ('Set padding values') and target resource ('for an auto-layout frame in Figma'), which is specific and actionable. However, it doesn't distinguish this tool from other sibling tools that also modify frame properties (like set_axis_align, set_item_spacing, set_layout_mode), so it doesn't fully differentiate from alternatives.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the frame must already exist or be in auto-layout mode), exclusions, or comparisons to similar tools like set_item_spacing or set_layout_mode that also affect frame layout.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states it 'gets' information, implying a read-only operation, but doesn't disclose behavioral traits like whether it requires authentication, has rate limits, or what 'detailed information' entails (e.g., format, scope). This leaves gaps in understanding 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized, making it easy to parse quickly.

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

    Completeness3/5

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

    Given 0 parameters and no output schema, the description is minimal but adequate for a simple read operation. However, with no annotations and siblings that overlap in purpose, it lacks completeness in guiding usage and behavioral context, making it just viable but with clear gaps.

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

    Parameters4/5

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

    The input schema has 0 parameters with 100% coverage, so no parameter information is needed. The description doesn't add param details, which is appropriate, but it could hint at implicit context (e.g., 'current' document). Since 0 params baseline is 4, this meets expectations without extra value.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and the resource 'detailed information about the current Figma document', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_node_info' or 'get_annotations', which also retrieve information but for different resources, 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.

    Usage Guidelines2/5

    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. With siblings like 'get_node_info' for specific nodes and 'get_annotations' for annotations, there's no indication of context or exclusions, leaving usage unclear beyond the basic purpose.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions 'Get detailed information' which suggests a read-only operation, but does not disclose behavioral traits like permissions needed, rate limits, or what 'detailed information' entails (e.g., format, depth). This is a significant 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose ('Get detailed information about the current selection in Figma') and adds a clarifying detail ('including all node details'). There is no wasted verbiage, making it highly concise and well-structured.

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

    Completeness3/5

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

    Given no annotations, no output schema, and 0 parameters, the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or usage context. For a read operation in a complex environment like Figma, more completeness would be helpful, but it meets a basic threshold.

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

    Parameters4/5

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

    The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, which is acceptable here as there are no parameters to explain, aligning with the baseline for zero parameters.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('detailed information about the current selection in Figma'), specifying it includes 'all node details'. It distinguishes from siblings like 'get_selection' by emphasizing detailed node information, though not explicitly contrasting them.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives such as 'get_selection' or 'get_node_info'. The description implies usage for detailed selection data but lacks explicit context or exclusions, leaving the agent to infer based on tool names alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It mentions 'selecting' and 'scrolling viewport', which implies UI interaction and potential side effects, but lacks details on permissions, error handling, or what happens if the node is already selected. For a mutation tool with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose ('Set focus on a specific node in Figma') and adds necessary behavioral detail ('by selecting it and scrolling viewport to it'). Every word earns its place with no redundancy.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain the return value, error conditions, or side effects beyond basic actions. Given the complexity of UI interaction in Figma, more context on behavior and outcomes is needed.

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

    Parameters3/5

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

    Schema description coverage is 100% for the single parameter 'nodeId', which is documented as 'The ID of the node to focus on'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, 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.

    Purpose5/5

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

    The description clearly states the action ('Set focus'), the resource ('a specific node in Figma'), and the specific behaviors ('by selecting it and scrolling viewport to it'). It distinguishes from siblings like 'get_selection' (reads selection) or 'set_selections' (sets multiple selections) by focusing on a single node with viewport adjustment.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid node ID), exclusions (e.g., not for multiple nodes), or sibling tools that might be relevant (e.g., 'set_selections' for multiple nodes, 'get_node_info' for info without focusing).

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as permissions needed (e.g., edit access), whether changes are reversible, error handling (e.g., invalid nodeId), or side effects (e.g., text formatting retention). This is inadequate for a mutation tool with zero 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.

    Conciseness5/5

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

    The description is a single, front-loaded sentence with zero waste—every word contributes to defining the tool's purpose. It's appropriately sized for a simple tool with two parameters and no complex behavior to explain.

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

    Completeness2/5

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

    Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral context (e.g., permissions, errors), usage guidelines versus siblings, and output details. The high schema coverage doesn't compensate for these gaps in a tool that modifies data.

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

    Parameters3/5

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

    Schema description coverage is 100%, with clear parameter descriptions in the schema. The description adds no additional meaning beyond implying 'nodeId' refers to an existing text node and 'text' is the new content, which is already covered by the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

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

    Purpose5/5

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

    The description clearly states the specific action ('Set the text content') and resource ('an existing text node in Figma'), distinguishing it from sibling tools like 'create_text' (which creates new text nodes) and 'set_multiple_text_contents' (which handles multiple nodes). It precisely defines the tool's scope and target.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'set_multiple_text_contents' for bulk operations or 'create_text' for new nodes. It mentions 'existing text node' but doesn't clarify prerequisites (e.g., node must be a text type) or exclusions (e.g., not for other node types).

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

  • Behavior3/5

    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 the tool retrieves reactions and that the output requires immediate processing, which adds some behavioral context. However, it lacks details on permissions, rate limits, or error handling, leaving gaps for a mutation-related tool.

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

    Conciseness5/5

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

    The description is front-loaded with the core purpose and includes a critical instruction in a clear, imperative sentence. Every sentence earns its place by providing essential information without waste, making it highly efficient.

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

    Completeness4/5

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

    Given the complexity (retrieving reactions for potential mutations), no annotations, and no output schema, the description is fairly complete by specifying the purpose and downstream usage. However, it could improve by detailing the output format or error cases, slightly reducing completeness.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents the 'nodeIds' parameter. The description doesn't add any meaning beyond what the schema provides, such as explaining what node IDs are or how to obtain them, but it meets the baseline since the schema is comprehensive.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and the resource 'Figma Prototyping Reactions from multiple nodes', making the purpose understandable. However, it doesn't explicitly differentiate from siblings like 'get_annotations' or 'get_node_info', which might also retrieve node-related data, so it's 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.

    Usage Guidelines5/5

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

    The description provides explicit guidance on when to use this tool by stating that the output MUST be processed with 'reaction_to_connector_strategy' prompt to generate parameters for the 'create_connections' tool. This clearly links it to a specific workflow and alternative tool, offering strong usage context.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

cursor-talk-to-figma-mcp-main MCP server

Copy to your README.md:

Score Badge

cursor-talk-to-figma-mcp-main MCP server

Copy to your README.md:

Latest Blog Posts

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/yhc984/cursor-talk-to-figma-mcp-main'

If you have feedback or need assistance with the MCP directory API, please join our Discord server